硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1245|回复: 1
收起左侧

[FileX] FileX的sram disk的特殊用法

[复制链接]

10

主题

75

回帖

120

积分

初级会员

积分
120
发表于 2024-6-18 18:08:01 | 显示全部楼层 |阅读模式
本帖最后由 egoistaw 于 2024-6-18 18:14 编辑

在X-CUBE-AZRTOS 包里,ST提供了名为 fx_stm32_sram_dirver 的驱动文件。
这个驱动,可以让用户在sram里创建一个指定大小的磁盘,并挂载,进而测试FileX的各种文件操作。
如果你把这个建立在sram中的磁盘完整提取出来,例如通过 fx_media_read 读取,再写入到sd卡的一个文件里,就可以得到一个bin文件。
把bin文件复制到电脑上,可以顺利地使用UltraISO软件打开。并且可以删除或添加文件到磁盘中,也可以看到磁盘的总容量以及占用率。
如图我把web server里提供的网页文件复制了进去。
1.png


那这个更改过内容的磁盘文件还能被挂载吗?
当然是可以的。
只需要将bin文件的内容重新复制回内存中,再挂载即可。


不过在这番操作前需要修改一下fx_stm32_sram_dirver驱动代码:
在使用ST的 fx_stm32_sram_dirver 驱动文件时,需要通过宏定义指定磁盘内存位置和总大小:
[C] 纯文本查看 复制代码
 #define FX_SRAM_DISK_BASE_ADDRESS         SRAM3_BASE
 #define FX_SRAM_DISK_SIZE                          32 * 1024
写死的,并不是很灵活。
另外查看驱动代码可以看到,FX_DRIVER_INIT 事件下,驱动将sram的内容都清零了,是为了让用户强制fx_media_format一下。
这两处我们需要修改。
  • 通过media_ptr->fx_media_driver_info来传入实际的内存地址,替代写死的宏定义。
  • 屏蔽掉FX_DRIVER_INIT 下的清零操作。

2.png

之后我们随意申请内存,复制磁盘内容,传入内存地址并挂载磁盘了。
3.png

测试其当作网页服务器磁盘,可以顺利访问到网页。
4.png


当然这有什么用处呢,我很难说......
附上提取的磁盘文件 1M大小

ram_fs.bin

1 MB, 下载次数: 2

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-6-19 09:40:19 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 03:35 , Processed in 0.041806 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表