本帖最后由 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里提供的网页文件复制了进去。
那这个更改过内容的磁盘文件还能被挂载吗? 当然是可以的。 只需要将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一下。 这两处我们需要修改。
之后我们随意申请内存,复制磁盘内容,传入内存地址并挂载磁盘了。
测试其当作网页服务器磁盘,可以顺利访问到网页。
当然这有什么用处呢,我很难说...... 附上提取的磁盘文件 1M大小
|