初级会员

- 积分
- 117
- 金钱
- 117
- 注册时间
- 2015-4-27
- 在线时间
- 39 小时
|
25金钱
在官网上面下载了一个NAND FLASH并加载了文件系统。现在U盘模拟成功,文件读写正常。但是呢!我现在想把U盘的容量减小点,以留点内存处理其他事情。我的NAND FLASH是64M的。我分别注意到了这三个函数。在mass_mal.c的文件下有三个函数
***************************1*******************
uint16_t MAL_Write(uint8_t lun, uint32_t Memory_Offset, uint32_t *Writebuff, uint16_t Transfer_Length) 函数1
uint16_t MAL_Read(uint8_t lun, uint32_t Memory_Offset, uint32_t *Readbuff, uint16_t Transfer_Length) 函数2
uint16_t MAL_GetStatus (uint8_t lun) 函数2
以上三个函数就分别是给U盘的一些容量处理,
那么我们来看该 uint16_t MAL_GetStatus (uint8_t lun) 这个函数就是给U盘内存的容量大小定义,
其中这三个数组,就是分配U盘容量的数组。 我试过修改这些参数值。但是我的U盘容量没变。
Mass_Block_Count[0] = (NAND_ZONE_SIZE * NAND_BLOCK_SIZE * NAND_MAX_ZONE);
Mass_Block_Size[0] = NAND_PAGE_SIZE;//512 byte
Mass_Memory_Size[0] = (Mass_Block_Count[0] * Mass_Block_Size[0]);
因为我以前做SPI FLASH的时候,也是给这个三个数组分配值修改U盘容量的大小值。 但是操作NAND FLASH 竟然无效。
想请教一下各位大兄弟。有没有做过NAND FALSH模拟U盘并改变U盘容量。
再请教一个问题,也麻烦一下各位大兄弟。 一个U盘分成2个盘符可以实行么?
最后,祝各位大兄弟生活愉快。汪汪 汪汪 哈哈
[img]file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\1184207257\QQ\WinTemp\RichOle\`CCV{[QBOS91~RQ{F6I99S8.png[/img]
[img]file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\1184207257\QQ\WinTemp\RichOle\`CCV{[QBOS91~RQ{F6I99S8.png[/img]
|
-
最佳答案
查看完整内容[请看2#楼]
看看你的程序中是不是只有这一处声明
Mass_Block_Count[0] = (NAND_ZONE_SIZE * NAND_BLOCK_SIZE * NAND_MAX_ZONE);
Mass_Block_Size[0] = NAND_PAGE_SIZE;//512 byte
Mass_Memory_Size[0] = (Mass_Block_Count[0] * Mass_Block_Size[0]);
还是有其他的地方有定义:
Mass_Block_Count[1] = (NAND_ZONE_SIZE * NAND_BLOCK_SIZE * NAND_MAX_ZONE);
Mass_Block_Size[1] = NAND_PAGE_SIZE;//512 byte
...
|