Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SPI
spi_flash
文件系统
【ART-PI】文件系统在SPI Flash上的使用
发布于 2021-09-15 10:46:03 浏览:1187
订阅该版
[tocm] ## 一、ENV使能SPI_Flash ### 1.1.添加Kconfig配置 ```makefile menu "Onboard Peripheral Drivers" config BSP_USING_SPI_FLASH bool "Enable SPI FLASH (spi1)" select BSP_USING_SPI select BSP_USING_SPI1 select PKG_USING_FAL select FAL_USING_SFUD_PORT select RT_USING_SFUD default n endmenu menu "On-chip Peripheral Drivers" menuconfig BSP_USING_SPI bool "Enable SPI" default n select RT_USING_SPI if BSP_USING_SPI config BSP_USING_SPI1 bool "Enable SPI1" default n endif endmenu ``` ### 1.2.ENV配置 输入menuconfig ![spi](https://img-blog.csdnimg.cn/a3a8f1b6ad4b455a92fbaacf6360ebc9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) ![spi](https://img-blog.csdnimg.cn/cc57c9c4e77f41ec9343a672c1c713c6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) 因为板载的 W25Q128 是挂载在 SPI1 总线上的,所以这里我们使能 SPI1 ![enable spi](https://img-blog.csdnimg.cn/1f440471bcce4fb0a17234e857af3740.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) 使能串行 Flash 通用驱动程序(SFUD) ![在这里插入图片描述](https://img-blog.csdnimg.cn/5211598ca1e449b7bac53c48e93d0ef4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) 当我们使能硬件 SPI 的时候 FAL 的软件包也默认为我们使能了。 > FAL是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及分区操作的 API 。 ![fal](https://img-blog.csdnimg.cn/3247b799d22c47e0a9adf8661bc4cdc1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) 使用 **pkgs --target** 拉取软件包,最后使用 **scons --target=mdk5** 生成代码 ## 二、使用CubeMX配置SPI ### 2.1.查看 SPI_FLASH 对应的引脚 打开电路原理图 ![SPI_FLASH](https://img-blog.csdnimg.cn/55593d30859f464bb901e91cec493cf1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_19,color_FFFFFF,t_70,g_se,x_16) ![SPI_FLASH](https://img-blog.csdnimg.cn/fa886e207e1746df8e933d3540283fb0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) 打开 CubeMX,使能 SPI1 外设。 ![CubeMX](https://img-blog.csdnimg.cn/5a5d2fe8d1d449948b62380d1ebd424a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) ## 三、添加SConscript脚本 以上配置完成之后,默认是不会将设备挂载到 SPI 总线的,需要我们手动的添加代码去绑定 SPI 设备,为了防止每次 mdk 生成代码之后重复添加,所以我们需要在 **SConscript** 中配置,让其自动生成代码。 打开 **bsp\stm32\stm32h750-artpi-h750\board\SConscript** 添加如下代码 ![SConscript](https://img-blog.csdnimg.cn/275484672c734c118a7a344febd36c0a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) ## 四、编译验证 可以看到,SPI_Flash 已经成功的挂载到了 SPI 总线,并且识别出其大小为16M,同时fal为我们展示了 flash 中的分区,可以清晰的看到 wifi,ble 等等固件存放的地址。 ![download](https://img-blog.csdnimg.cn/7909af2950ad401abe35ea0e83af17da.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) 输入 **list_device** 查看系统中的设备,同样也是可以看到 SPI 设备的,也可以使用 **sf probe** 来探测 SPI_Flash。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/60f609f42bad4a94a9acfb606fea5bc2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) ## 五、添加文件系统 使能虚拟文件系统 DFS ![在这里插入图片描述](https://img-blog.csdnimg.cn/65727dd9fbe646238229f4df83e1d714.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) ![dfs](https://img-blog.csdnimg.cn/be1c66efeacb41b28ed7ae16cbd29b78.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) ![dfs](https://img-blog.csdnimg.cn/819ef1b6a8ed48c9b74b8dc67c0bb841.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) 打开 **littlefs** 软件包 ![在这里插入图片描述](https://img-blog.csdnimg.cn/82c70495a34a4d33a602467eed01e47d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16) 下载到开发板,可看到文件系统已经挂载到了/flash下面了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/db78f2f11e544e369383b0d2fae58a16.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Rb君
这家伙很懒,什么也没写!
文章
21
回答
40
被采纳
2
关注TA
发私信
相关文章
1
BBB的SPI驱动
2
求个SPI上挂两个或多个设备的使用例子
3
SPI设备有个bug
4
spi flash 的fatfs使用一段时间后读写文件出现故障
5
SPI驱动
6
请教rt_spi_configure函数理解
7
SPI FLASH挂载的问题
8
SPI-FLASH 文件系统 SPIFFS
9
求助一个完整的 spi flash 驱动
10
关于同时使用文件系统与SPI FLASH的问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
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组件
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
Bootloader
AT
ART-Pi
Hardfault
CAN总线
FinSH
USB
文件系统
RT-Thread
DMA
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
ota在线升级
WIZnet_W5500
I2C_IIC
UART
flash
cubemx
packages_软件包
freemodbus
潘多拉开发板_Pandora
PWM
定时器
ADC
BSP
中断
keil_MDK
编译报错
socket
MicroPython
GD32
msh
Debug
ulog
SDIO总线
SFUD
rt_mq_消息队列_msg_queue
C++_cpp
本月问答贡献
xiaorui
7
个答案
3
次被采纳
sakumisu
4
个答案
3
次被采纳
三世执戟
31
个答案
1
次被采纳
梦笑真美
18
个答案
1
次被采纳
踩姑娘的小蘑菇
14
个答案
1
次被采纳
本月文章贡献
Z_Y
2
篇文章
5
次点赞
Alipay
2
篇文章
3
次点赞
2345vor
2
篇文章
1
次点赞
比特饼干
1
篇文章
6
次点赞
Vangaoven
1
篇文章
3
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部