Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SFUD
使用easyflash出现错误:[SFUD] Error: Flash address is out of bound.
发布于 2019-09-17 09:26:13 浏览:2386
订阅该版
* 本帖最后由 aozima 于 2019-9-17 14:26 编辑 * 野火的F103开发板 使用easyflash出现错误:[SFUD] Error: Flash address is out of bound. > \ | / - RT - Thread Operating System / | \ 3.1.3 build Sep 16 2019 2006 - 2019 Copyright by rt-thread team [SFUD] Find a Winbond flash chip. Size is 8388608 bytes. [SFUD] W25Q64 flash device is initialize success. [Flash] (packages\EasyFlash-v4.0.0\src\ef_env.c:1764) ENV start address is 0x00080000, size is 8192 bytes. [SFUD] Error: Flash address is out of bound. [Flash] Warning: Sector header check failed. Format this sector (0x00080000). [SFUD] Error: Flash address is out of bound. [SFUD] Error: Flash address is out of bound. [SFUD] Error: Flash address is out of bound. [Flash] EasyFlash V4.0.0 is initialize success. [Flash] You can get the latest version on [https://github.com/armink/EasyFlash](https://github.com/armink/EasyFlash) . [SFUD] Error: Flash address is out of bound. [SFUD] Error: Flash address is out of bound. [SFUD] Error: Flash address is out of bound. [SFUD] Error: Flash address is out of bound. [SFUD] Error: Flash address is out of bound. [SFUD] Error: Flash address is out of bound. 在msh下,使用sf命令可以正常对0x00080000开始的地址进行读写及扇区擦除,请问会是哪里问题? 上面的错误是在easyflash尝试读取ENV时(ef_get_env_blob())出现这个错误
查看更多
4
个回答
默认排序
按发布时间排序
sunwan
2019-09-17
这家伙很懒,什么也没写!
SFUD配置: [attach]11009[/attach] easyflash配置: [attach]11010[/attach]
sunwan
2019-09-17
这家伙很懒,什么也没写!
后来更改easyflsh的起始地址为 0x10000,没有出现[SFUD] Error: Flash address is out of bound.错误,但是出现usage fault:SCB_CFSR_UFSR:0x02 INVSTATE,根据lr指针,发现是在sfud_read()中: /* check the flash address bound */ if (addr + size > flash->chip.capacity) { SFUD_INFO("Error: Flash address is out of bound."); return SFUD_ERR_ADDR_OUT_OF_BOUND; } /* lock SPI */ if (spi->lock) { spi->lock(spi); } 运行到红色这句时,出现 usage fault:SCB_CFSR_UFSR:0x02 INVSTATE。 在前一句中断调试,发现flash的规格都不对: [attach]11012[/attach] 进一步发现,只要运行 easyflash_init(),到 红色的这句, #ifdef EF_USING_ENV if (result == EF_NO_ERR) { result = ef_env_init(default_env_set, default_env_set_size); } #endif flash->chip的内容就被改不正确,就出现 usage fault:SCB_CFSR_UFSR:0x02 INVSTATE。 我这里默认的default_env_set,没有改动: /* default ENV set for user */ static const ef_env default_env_set[] = { {"iap_need_copy_app", "0"}, {"iap_need_crc32_check", "0"}, {"iap_copy_app_size", "0"}, {"stop_in_bootloader", "0"}, }; 大家有出现这个问题吗?
sunwan
2019-09-18
这家伙很懒,什么也没写!
[i=s] 本帖最后由 sunwan 于 2019-9-18 15:36 编辑 [/i] 已解决。 入门不易!! 这个示例太少了,以为只要menuconfig就可以了,其它的SFUD和easyflash会自己搞定,只在main.c里定义了一个w25q64: rt_spi_flash_device_t w25q64; 并且没有初始化指针,easyflash也没有说一定要 probe 这个flash,结果造成 easyflash_init()时把内存的某一段数据当作flash的参数,造成错误。 后来在main()里加了一下: rt_spi_flash_device_t w25q64 = RT_NULL; int main(void) { w25q64 = rt_sfud_flash_probe("W25Q64", "spi10"); ... } 结果看起来正常,但保存和读取ENV时还是不正常,后来发现好像是 probe 了2次的原因,最后直接在spi_flash_init.c里改,原来的: ``` #if defined(BSP_USING_SPI_FLASH) static int rt_hw_spi_flash_init(void) { __HAL_RCC_GPIOA_CLK_ENABLE(); rt_hw_spi_device_attach("spi1", "spi10", GPIOA, GPIO_PIN_4); if (RT_NULL == rt_sfud_flash_probe("W25Q64", "spi10")) { return -RT_ERROR; } return RT_EOK; } INIT_COMPONENT_EXPORT(rt_hw_spi_flash_init); #endif ``` 以下是我修改后的: ``` #if defined(BSP_USING_SPI_FLASH) rt_spi_flash_device_t w25q64 = RT_NULL; static int rt_hw_spi_flash_init(void) { __HAL_RCC_GPIOC_CLK_ENABLE(); rt_hw_spi_device_attach("spi1", "spi10",
GPIOC, GPIO_PIN_0
); if (RT_NULL == (w25q64 = rt_sfud_flash_probe("W25Q64", "spi10"))) { return -RT_ERROR; } return RT_EOK; } INIT_COMPONENT_EXPORT(rt_hw_spi_flash_init); #endif ```
a1072619378
2020-03-05
这家伙很懒,什么也没写!
我也遇到这个问题,多亏看了你这个解决方法。话说例子程序是怎么跑通的,还是只是写完,没跑。
撰写答案
登录
注册新账号
关注者
0
被浏览
2.4k
关于作者
sunwan
这家伙很懒,什么也没写!
提问
10
回答
91
被采纳
0
关注TA
发私信
相关问题
1
【分享】如何使用 SFUD 库来操作 SPI Flash 设备
2
SFUD怎么使用
3
请教大家一下关于 SFUD 的的问题
4
移植sfud
5
使用SFUD操作FLASH
6
env使用easyflash不是3.2.4版本,而且没有type插件?
7
新增了W25X32设备成功,无法格式化
8
easyflash随着数据存储量增加,耗费时间加长
9
关于SFDP的问题
10
spi nand flash 能使用SFUD驱动吗
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
freemodbus主机在freertos的适配,参考rtthread例程
2
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
3
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
4
RT-Thread EtherKit开源以太网硬件正式发布
5
还在担心bsp不好维护吗?快使用yml管理主线bsp
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
12
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
用户名由3_15位
13
个答案
2
次被采纳
rv666
9
个答案
2
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
8
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部