Keil MDK自带RL-FlashFS文件系统初始化问题

最近在用Keil MDK自带的文件系统 RL-FlashFS,我需要配置成基于NandFlash的文件系统,但在File_Config.c中没找到如何定义文件系统在nandflash的起始块之类的配置项。
原因是我已经把nandflash的Block0和block1用来存储boot,所以只能用一部分nandflash做为文件系统使用。
问题是 RL-FlashFS 是否支持用一部分nandflash?如果可以,如何配置?
请用过的大神不吝赐教。

可以进行配置。你需要修改两个地方:
1.修改File_Config.c中nandflash块的大小,即总块数减去你作为系统程序的块数。如使用K9F1G08,总块数为2048,系统程序占用前100块,文件系统从第101块开始,那么在配置文件中的块数为2048-100=1948;
2.修改nandflash底层驱动程序文件NAND_xxx.c中的SetPgAddr函数和SetBlAddr函数。由于RL-flashFS是按页操作的,所以在这两个函数中的起始页应为你实际使用分配用作文件存储块的起始页。如1所示的例子中,这两个函数的参数row应加上6400;
完成以上两处修改即可实现nandflash的分区功能了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-21
File_Config.c中有关于目标起始地址以及大小的设置:

// <o>Base address <0x0-0xFFFFF000:0x1000>
// <i>Define the target device Base address
// <i>Default: 0x80000000
#define FL0_BADR 0x80000000

// <o>Device Size <0x4000-0xFFFFF000:0x4000>
// <i>Define the size of Flash device in bytes
// <i>Default: 0x100000 (1MB)
#define FL0_SIZE 0x0200000

起始地址向后移动两个block、闪盘容量减小两个block,修改试试能否正常工作。追问

首先感谢您的回答,但您所提及的配置项是关于Embedded Flash Drive(应该是Nor flash吧),而不是我使用的 NAND Flash Drive。

相似回答