共7条
1/1 1 跳转至页
[原创]将boot flash的空闲部分作为文件系统
续前“MFC5272_BOOTROM开发笔记”
http://bbs.edw.com.cn/dispbbs.asp?BoardID=3&ID=4733&replyID=16772&skin=1
/*------------------------------------------------------------------------
Purpose: 将boot flash的空闲部分作为文件系统
------------------------------------------------------------------------*/
bootFlash与第2片Flash型号相同,两者地址不能连续
bootflash起始地址为0xFFC00000,保留512k用于bootRom
剩余512*3K为文件系统,起始地址为0xFFC80000,大小为0x00180000,目录名称为"/data/"
ftp登录时指定使用路径"/data/",缺省登录还是原tffs盘
?不能挂结在原tffs的目录上,如"/tffs0/data/"
bootConfig.c:
修改bootCmdLoop,添加类似的usrTffsConfig调用
printf ("Attaching to /data/... ");
if (usrTffsConfig (1, 0, "/data/vxworks") == ERROR)
printf ("usrTffsConfig failed.\n");
else
printf ("done.\n");
vxworks程序初始化时添加相同调用。
sysTffs.c:
添加起始地址和大小宏定义
#define FLASH_BASE_ADRS (0xFFE10000)
#define FLASH_SIZE (0x001F0000)
#define FLASH_BOOT_ADRS (0xFFC80000)
#define FLASH_BOOT_SIZE (0x00180000)
在sysTffsInit中增加一个socket注册:
LOCAL void sysTffsInit (void)
{
rfaRegister ();
rfaRegister ();
}
根据注册先后区分socket,利用noOfDrives和FLSocket的serialNo,修改rfaRegister:
vol.serialNo = noOfDrives;
if (noOfDrives == 0)
vol.window.baseAddress = FLASH_BASE_ADRS >> 12;
else if(noOfDrives == 1)
vol.window.baseAddress = FLASH_BOOT_ADRS >> 12;
noOfDrives++;
修改rfaSetWindow函数:
if (vol.serialNo == 0){
vol.window.baseAddress = FLASH_BASE_ADRS >> 12;
flSetWindowSize (&vol, FLASH_SIZE >> 12);
}
else if(vol.serialNo == 1){
vol.window.baseAddress = FLASH_BOOT_ADRS >> 12;
flSetWindowSize (&vol, FLASH_BOOT_SIZE >> 12);
}
lv160mtd.c
添加起始地址和大小宏定义
增加一个地址映射回调函数,因为不能根据vol->socket->serialNo来分支判断
static void FAR0 * lv160MTDMap1(FLFlash *vol, CardAddress addr, int length)
{
UINT32 ret;
/*???不能根据vol->socket->serialNo来分支判断*/
ret = FLASH_BOOT_ADRS + addr;
return (void FAR0 *)ret;
}
修改lv160MTDIdentify函数,根据vol.socket->serialNo分支:
if (vol.socket->serialNo == 0){
flSetWindowSize(vol.socket, FLASH_SIZE>>12);
vol.chipSize = FLASH_SIZE;
vol.map = lv160MTDMap0;
}
else if(vol.socket->serialNo == 1){
flSetWindowSize(vol.socket, FLASH_BOOT_SIZE>>12);
vol.chipSize = FLASH_BOOT_SIZE;
vol.map = lv160MTDMap1;
}
关键词: 原创 flash 空闲 部分 作为 文件 系统 F
共7条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |