Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
FAL
SFUD
RT-Thread SFUD与FAL调试记录
发布于 2024-10-11 16:55:53 浏览:222
订阅该版
[tocm] ## SFUD配置 1.在组件中启用SFUD ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20241011/910393030e46715d6edcd1fe139f2c3c.png) 2.由于外部W25Q128使用的是SPI2,所以需要在board.h中开启。注意在STM32CUBE中打开SPI功能,我外部 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20241011/5fc2c745228c79f00f9487ce145b001c.png) 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,按照硬件来 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20241011/0f4888aa60968275da655d2082454788.png) 终端提示挂在成功并显示内存容量,W25q128,是128兆位,需除以8就是实际容量即16MB ## FAL配置 1.配置FAL ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20241011/d54bd7f215b27ed83bb94a8381a203ee.png) 注意这里的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 ``` 终端调试正常 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20241011/fb17c96e64298f59bf2c6b15cc1351ac.png.webp) 另外在调试中发现(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
被浏览
222
关于作者
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
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
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
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部