#define SD_CARD 0 //SD卡,卷标为0
#define EX_FLASH 1 //外部flash,卷标为1 10*1024*1024/512
#define FLASH_SECTOR_SIZE 512
//对于W25Q128
//前10M字节给fatfs用,10M字节后,用于存放字库,字库占用3.09M. 14M字节以后,给客户自己用
u16 FLASH_SECTOR_COUNT=2048*10; //W25Q1218,前10M字节给FATFS占用
#define FLASH_BLOCK_SIZE 8 //每个BLOCK有8个扇区
问题1:为什么说前10M字节给FATFS占用。我在代码中没有看到把FATFS写到外部Flash的过程啊,这个FATFS好像是直接解压后添加到工程中做点小的修改就可以调用了啊。请大神解释下。
问题2:我能够把字库直接放在单片机内部的FLASH中吗,不想在外面挂着外部的FLASH。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
前10M用于文件系统的意思是说前面10MB的空间由文件系统来管理,不是说文件系统就占用了10MB的空间,而是利用文件系统的读写函数操作时前10M的空间是由文件系统自由分配的,用户不需要关心文件数据具体写入了前10M的哪个地址里,W25Q的读写函数不能进行读写否则就会破坏文件系统导致文件丢失,必须要使用文件系统的读写函数。后6MB可以用W25Q读写函数操作,当然如果你不想用文件系统也是可以的,16MB的空间可以全部由你自己分配那么你就必须要自己去管理地址。
2:可以放到单片机内部FLASH,不过要将完整的汉字库放到内部flash的话我估计只有傻子才会这么做,1是FLASH容量有限,一个字库小之250k、大则几M甚至几十M。2:就算内部flash够用,这么大的程序每次调试时等程序下载好了心都凉了。
针对第一个问题,前10M字节意思全部被文件系统占用了,前10M里面存的是什么代码呢?我好像发现文件系统没有写到flash里面吧。它就在根文件下面,我可以直接调用,并没有通过W25Q128去调用文件系统的函数啊。麻烦告诉下,谢谢。
如果你操作W25Q_128的时候直接调用的W25Q的读写函数,那么就跟FATFS没有关系!如果用到f_open()之类的就是用了文件系统,文件系统是用来管理W25Q128的。如果0扇区的第一个字节是0XEB一般可以说明就有文件系统。
一周热门 更多>