|
楼主 |
发表于 2014-5-15 11:53:04
|
显示全部楼层
搞定了,呵呵!
当MFS中选择除了除RAM外的其它的存储设备的时候,不能用默认格式化,需要根据自己的存储设备作格式化,因为我选用的是片内的Flash,格式化函数如下:
- void Format(MQX_FILE_PTR mfs_fd_ptr)
- {
- int32_t error_code;
- uint32_t bad_cluster_count;
- MFS_IOCTL_FORMAT_PARAM format_struct;
- MFS_FORMAT_DATA MFS_format =
- {
- 0x80, //PHYSICAL_DRIVE—0x00:软盘;0x80:硬盘,对于SD卡或CF卡等设备可以选择0x80
- 0xF8, //MEDIA_DESCRIPTOR---0xFD:5.25寸360K磁盘;0xF9:5.25寸1200K磁盘或3.5寸720K磁盘;0xF0:3.5寸1.44M磁盘或其它可移动存储设备;0xF8:硬盘或其它不可移动设备
- 1024, //BYTES_PER_SECTOR---扇区的大小,通常512字节
- 1, //SECTORS_PER_TRACK---一个轨道上的扇区数,对SD卡来说设为1
- 1, //NUMBER_OF_HEADS---磁头的数目,对SD卡来说设为1
- 32, //NUMBER_OF_SECTORS---:存储设备上的扇区数(或page数目)
- 0, //HIDDEN_SECTORS---隐藏扇区数,对软盘和SD卡设为0,对于硬盘指的是从硬盘开始位置到分区起始位置之间的扇区数
- 0 //RESERVED_SECTORS---保留扇区数
- };
- format_struct.FORMAT_PTR = &MFS_format;
- format_struct.COUNT_PTR = &bad_cluster_count;
- error_code = ioctl(mfs_fd_ptr, IO_IOCTL_FORMAT, (uint32_t *)&format_struct);
- if(!error_code)
- {
- printf("the count of bad clusters is:%d\n", bad_cluster_count);
- }
- }
复制代码
我只是使用了DFlash,所以没有做分区管理功能,如果要将空余的PFlash与DFlash一起做的话,就要做分区管理,呵呵,以后有空再研究了!
可以结贴了,但楼主位已经不能编辑了! |
|