Keil MDK自带RL-FlashFS文件系统初始化问题
最近在用KeilMDK自带的文件系统RL-FlashFS,我需要配置成基于NandFlash的文件系统,但在File_Config.c中没找到如何定义文件系统在nandf...
最近在用Keil MDK自带的文件系统 RL-FlashFS,我需要配置成基于NandFlash的文件系统,但在File_Config.c中没找到如何定义文件系统在nandflash的起始块之类的配置项。
原因是我已经把nandflash的Block0和block1用来存储boot,所以只能用一部分nandflash做为文件系统使用。
问题是 RL-FlashFS 是否支持用一部分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.修改File_Config.c中nandflash块的大小,即总块数减去你作为系统程序的块数。如使用K9F1G08,总块数为2048,系统程序占用前100块,文件系统从第101块开始,那么在配置文件中的块数为2048-100=1948;
2.修改nandflash底层驱动程序文件NAND_xxx.c中的SetPgAddr函数和SetBlAddr函数。由于RL-flashFS是按页操作的,所以在这两个函数中的起始页应为你实际使用分配用作文件存储块的起始页。如1所示的例子中,这两个函数的参数row应加上6400;
完成以上两处修改即可实现nandflash的分区功能了。
展开全部
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,修改试试能否正常工作。
// <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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询