Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
FAL
SFUD
RT-Thread SFUD与FAL调试记录
发布于 2024-10-11 16:55:53 浏览:858
订阅该版
[tocm] ## SFUD配置 1.在组件中启用SFUD  2.由于外部W25Q128使用的是SPI2,所以需要在board.h中开启。注意在STM32CUBE中打开SPI功能,我外部  3.新建一个源文件w25q128.c ``` #include
#include
#include "main.h" int rt_hw_spi_flash_init(void) { __HAL_RCC_GPIOA_CLK_ENABLE(); rt_hw_spi_device_attach("spi2", "spi20", GPIOB, GPIO_PIN_11); if (RT_NULL == rt_sfud_flash_probe("W25Q128", "spi20")) { return -RT_ERROR; }; return RT_EOK; } ``` w25q128.h ``` #ifndef APPLICATIONS_W25Q128_H_ #define APPLICATIONS_W25Q128_H_ int rt_hw_spi_flash_init(void); #endif /* APPLICATIONS_W25Q128_H_ */ ``` 4.mian中初始化 rt_hw_spi_flash_init();编译后通过终端可发送sf产看命令 先初始化硬件 发送sf probe spi20 因为是SPI2的第一个设备所以是spi20,按照硬件来  终端提示挂在成功并显示内存容量,W25q128,是128兆位,需除以8就是实际容量即16MB ## FAL配置 1.配置FAL  注意这里的W25Q128要和 rt_sfud_flash_probe("W25Q128", "spi20")一致 编译之后如果会报错,找不到fal_cfg.h;放到drivers下就可以了 由于只对外部SPI FLASH进行分区管理,所以删除原来关于片上stm32f2_onchip_flash等定义 修改后fal_cfg.h代码如下,分区默认没有设计,按照自己要求分区即可 ``` #ifndef _FAL_CFG_H_ #define _FAL_CFG_H_ #include
#include
#define NOR_FLASH_DEV_NAME "W25Q128" /* ===================== Flash device Configuration ========================= */ extern const struct fal_flash_dev stm32f2_onchip_flash; extern struct fal_flash_dev nor_flash0; /* flash device table */ #define FAL_FLASH_DEV_TABLE \ { \ &nor_flash0, \ } /* ====================== Partition Configuration ========================== */ #ifdef FAL_PART_HAS_TABLE_CFG /* partition table */ #define FAL_PART_TABLE \ { \ {FAL_PART_MAGIC_WORD, "easyflash", NOR_FLASH_DEV_NAME, 0, 1024*1024, 0}, \ {FAL_PART_MAGIC_WORD, "download", NOR_FLASH_DEV_NAME, 1024*1024, 1024*1024, 0}, \ } #endif /* FAL_PART_HAS_TABLE_CFG */ #endif /* _FAL_CFG_H_ */ ``` main函数中加入 rt_hw_spi_flash_init(); fal_init(); 进行初始化,另外需要修改存储器容量搜索如下进行修改 ``` const struct fal_flash_dev nor_flash0 = { "norflash0", 0, 16*1024*1024, 4096, {NULL, read, write, erase} }; 将8修改成16,对应16M ``` 终端调试正常  另外在调试中发现(sfud_norflash0.init_ok) has assert failed at read.错误,搞了半天。后来发现是自己在RT-Thread studio,中启用了FAL但是调试的时候编译不通过,怀疑默认的FAL固件有问题,于是从GITHUB上移植的FAL程序,把之前的删除了。最后总是提示这个,名称也对应了找不到问题点。于是觉得移植过程可能跟它自己生成的fal在某些地方匹配不了,于是还原了默认生成的fal。这里注意如果你删除自带的fal,通过配置停用再启用是不会还原默认的fal的。我没办法重新创建了工程重新生成,最后解决了。
查看更多
1
个回答
默认排序
按发布时间排序
xiaorui
认证专家
2024-10-11
小睿手办 https://item.taobao.com/item.htm?id=674889867009
点个赞👍 这类分享,建议楼主下次发布为文章更合适些
撰写答案
登录
注册新账号
关注者
0
被浏览
858
关于作者
AJS琥珀清年
这家伙很懒,什么也没写!
提问
1
回答
0
被采纳
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
Wireshark抓包EtherCAT报文
2
RISC-V hardfault分析工具,RTTHREAD-RVBACKTRACE 原理讲解
3
基于RT-Thread的STM32G4开发第二讲第二篇——ADC
4
基于RT-Thread的STM32F4开发第二讲第一篇——ADC
5
RT-Thread studio的驱动5.1.0报错修改
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
I2C_IIC
cubemx
UART
ESP8266
WIZnet_W5500
BSP
ota在线升级
PWM
flash
packages_软件包
freemodbus
潘多拉开发板_Pandora
ADC
GD32
定时器
编译报错
flashDB
keil_MDK
socket
中断
rt_mq_消息队列_msg_queue
Debug
ulog
SFUD
msh
C++_cpp
at_device
本月问答贡献
出出啊
1524
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
818
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部