Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
flash
原创征文
fatdisk
STM32如何将文件放到内部flash里面
发布于 2022-09-17 00:52:59 浏览:1347
订阅该版
[tocm] # STM32如何将文件放到内部flash里面 ## 背景介绍 上一篇讲到如何将STM32的FLASH改成文件系统: [如何不用外设在STM32片上FLASH做一个文件系统](https://blog.csdn.net/lt6210925/article/details/125195066?spm=1001.2014.3001.5501 ) https://club.rt-thread.org/ask/article/677bbf280fa0718f.html 后来用了一下,发现文件系统是有了,怎么往里面存文件呢?难道每个文件都一个一个打么? 很多小伙伴在用micropython或者动态模块加载的时候,经常要把文件放到文件系统里面,这个时候有的小伙伴想到了用Ymodem来进行数据传输,当然这是一种方法, 不过这种方法在多文件的时候,就比较麻烦了。今天给大家介绍一个比较方便的方法,当然这个也是参考的文档中心的文档,受其启发,来运用到STM32等其他MCU中去 该文档目标人群: - 希望比较方便的将文件烧入到片上或者片外FLASH上去的 - 希望能够将文件转化成bin烧入到flash中去 ## 如何实现 那就要想办法如何将文件放到内部flash里面了。其实说出来很简单,只需要学会用一个exe文件即可。 ### 第一步 使能文件系统 首先第一步做的是,我们要按照之前的教程,先把STM32片上文件系统这个功能搞出来,参考之前的文章。这个是前提条件, ### 第二步 将需要存放的文件放到目录中去 这个软件参考 https://github.com/RT-Thread/env-windows/tree/v1.3.0-beta/tools/fatdisk ![在这里插入图片描述](https://img-blog.csdnimg.cn/a6194cb4b15c46239cd6eb7a4bf01ae4.png#pic_center) 可以在这里新建一个文件夹`rofs` 文件夹内放你需要的文件 这个时候双击一下`fatdisk.exe` 可以发现生成了一个`root.bin`文件,当然过程是这个过程,不过我们要根据不同的开发板来配置不同的xml文件。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d03cb439e1a34e53927e5431d1d86106.png) ### 第三步配置XML文件 打开`fatdisk.xml`文件,例子内容如下: ```
5120
4096
rofs
rofs.bin
1
``` - disk_size: 这个就是你最后想要生成的目标root.bin大小 单位是Kbytes. - sector_size: 这个是bin的扇区大小,这个要根据自己开发板来,根据上一篇文章,不同芯片的扇区不一样,这里STM32L496ZG 扇区是2KB。 这里填2048 - root_dir就是指定要转换的目录名称 - output就是要生成的bin的名称 - strip: 这个如果是`1`就是代表会根据你文件夹里面的文件大小来进行缩减,就是你的文件夹多大最后生成的bin大小就是多大。如果是`0` 代表 后面空白数据填0xff, 填充到想要的大小。 好, 根据STM32L496ZG-NUCLEO的开发板,我们得出下面的配置: ```
512
2048
sd
sd.bin
1
``` 最大512KB,生成的sd.bin大小为212KB. 双击fatdisk.exe 生成sd.bin ### 第四步烧入文件 很多工具可以烧入BIN文件,根据调试器的不同: - STLINK 和IAP可以选stm32cubeprogrammer - JLINK 可以选 jlink flash lite 这里我用STLINK 打开stm32cubeprogrammer 先将芯片全部擦除(如果flash被写过的话,需要擦除才能烧入) ![在这里插入图片描述](https://img-blog.csdnimg.cn/b5e769a8d6ca4f3cab33bc5f2c7701eb.png#pic_center) 然后烧入bin,这里的地址要根据你FAL里面填的地址来选,这边我用的是FLASH偏移是`0x00080000` ,STM32的起始地址是0x08000000, 所以文件系统偏移是`0x8080000` ![在这里插入图片描述](https://img-blog.csdnimg.cn/a7a6e5d071f54859b100e249d002d3be.png#pic_center) ### 第五步烧入程序验证 这一步就要烧入上一篇讲的带有flash功能的的程序了,这里注意烧入的时候,不要整个芯片擦除,要选择`sector erase` ,一般默认是部分擦除。因为整个擦除就把文件系统也擦掉了 烧入之后输入命令`ls` ![在这里插入图片描述](https://img-blog.csdnimg.cn/5b73ca09e16344c7890588984d4d8952.png#pic_center) 可以看到文件系统在里面。 ## 参考: - [ 使用 QEMU 运行动态模块组件](https://gitee.com/rtthread/docs-online/blob/master/rt-thread-version/rt-thread-standard/application-note/components/dlmodule/an0023-dlmodule.md) https://gitee.com/rtthread/docs-online/blob/master/rt-thread-version/rt-thread-standard/application-note/components/dlmodule/an0023-dlmodule.md
3
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
RTT_逍遥
https://github.com/supperthomas
文章
36
回答
499
被采纳
75
关注TA
发私信
相关文章
1
OTA 片上FLASH擦除失败
2
请问 怎么实现flash的FIFO存储呢
3
FAL初始化输出调试信息bug
4
spi1挂载w25q32失败
5
SD卡与外置flash(dg25q32)一起应用,挂载spi2总线上
6
w25q128 flash 怎么在电脑和开发板上切换挂载
7
RTT没有对FLASH进行操作的指令吗
8
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
9
使用FAL接口写的片内flash的擦除函数会死掉
10
关于潘多拉flash操作例程的
推荐文章
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组件
热门标签
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
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
807
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部