求助:MQX中的MFS模块,RAMDisk例程RAM换成Flash不行(已解决)

2020-02-21 21:22发布

本帖最后由 FSL_TICS_ZJJ 于 2014-6-4 13:14 编辑

这几天在研究MFS模块,想利用MCU上多余的空间做一个U盘,另外还要MQX系统认识,可以进行文件读写,将文件中的内容再通过串口发出去。

目前的硬件用的是TWR-K20D72M的板子,将RAMDisk的例程中的RAM部分屏掉,改为Flashx,而且在Config文件中已经打开了Flashx驱动,结果是可以格式化,甚至可以创建文件,但是就是不能创建路径,而且创建路径失败后,前面创建的文件也没有了,不知道什么原因?

坛子里如果有研究MQX的,可以一起看一下!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
FSL_TICS_ZJJ
1楼-- · 2020-02-22 16:58
wangpengcheng 发表于 2014-5-13 21:58
没事,呵呵,我还在想办法!谢谢啊!要是搞定了,我会在此说明方法的! ...

好的,多谢你一直以来对坛子的关照!
wangpengcheng
2楼-- · 2020-02-22 18:26
FSL_TICS_ZJJ 发表于 2014-5-14 08:58
好的,多谢你一直以来对坛子的关照!

呵呵,我也是想弄个塔式开发板什么的玩玩
FSL_TICS_ZJJ
3楼-- · 2020-02-22 20:20
wangpengcheng 发表于 2014-5-14 09:18
呵呵,我也是想弄个塔式开发板什么的玩玩

照现在的情况,你坚持下去很有希望哦,坛子中没有人比你更活跃了。
wangpengcheng
4楼-- · 2020-02-23 00:54
 精彩回答 2  元偷偷看……
FSL_TICS_ZJJ
5楼-- · 2020-02-23 04:24
wangpengcheng 发表于 2014-5-14 11:07
可以混个脸熟

你的账号已经很熟了,因为当时我是额外帮你搞的邀请码,哈哈!
看你这么活跃,邀请码也是非常值得给你的。
wangpengcheng
6楼-- · 2020-02-23 08:22
FSL_TICS_ZJJ 发表于 2014-5-14 11:13
你的账号已经很熟了,因为当时我是额外帮你搞的邀请码,哈哈!
看你这么活跃,邀请码也是非常值得给你的 ...

搞定了,呵呵!

当MFS中选择除了除RAM外的其它的存储设备的时候,不能用默认格式化,需要根据自己的存储设备作格式化,因为我选用的是片内的Flash,格式化函数如下:

  1. void Format(MQX_FILE_PTR mfs_fd_ptr)
  2. {
  3.     int32_t                 error_code;
  4.     uint32_t                bad_cluster_count;
  5.     MFS_IOCTL_FORMAT_PARAM  format_struct;
  6.     MFS_FORMAT_DATA         MFS_format =
  7.     {
  8.         0x80,        //PHYSICAL_DRIVE—0x00:软盘;0x80:硬盘,对于SD卡或CF卡等设备可以选择0x80
  9.         0xF8, //MEDIA_DESCRIPTOR---0xFD:5.25寸360K磁盘;0xF9:5.25寸1200K磁盘或3.5寸720K磁盘;0xF0:3.5寸1.44M磁盘或其它可移动存储设备;0xF8:硬盘或其它不可移动设备
  10.         1024, //BYTES_PER_SECTOR---扇区的大小,通常512字节
  11.         1,      //SECTORS_PER_TRACK---一个轨道上的扇区数,对SD卡来说设为1
  12.         1,      //NUMBER_OF_HEADS---磁头的数目,对SD卡来说设为1
  13.         32,    //NUMBER_OF_SECTORS---:存储设备上的扇区数(或page数目)
  14.         0,      //HIDDEN_SECTORS---隐藏扇区数,对软盘和SD卡设为0,对于硬盘指的是从硬盘开始位置到分区起始位置之间的扇区数
  15.         0       //RESERVED_SECTORS---保留扇区数
  16.     };
  17.     format_struct.FORMAT_PTR = &MFS_format;
  18.     format_struct.COUNT_PTR = &bad_cluster_count;
  19.     error_code = ioctl(mfs_fd_ptr, IO_IOCTL_FORMAT, (uint32_t *)&format_struct);
  20.     if(!error_code)
  21.     {
  22.         printf("the count of bad clusters is:%d ", bad_cluster_count);
  23.     }
  24. }
复制代码

我只是使用了DFlash,所以没有做分区管理功能,如果要将空余的PFlash与DFlash一起做的话,就要做分区管理,呵呵,以后有空再研究了!

可以结贴了,但楼主位已经不能编辑了!

一周热门 更多>