以下内容是本人经验总结,如需转贴请注明出处!
http://blog.csdn.net/nick_TS16949/archive/2009/07/14/4346647.aspx
关于nandflash分区问题,由于在文件系统/MBR方面的欠缺让我走了许多弯路,虽然在网上搜了很多关于nandflash分区的文章,但我都没有成功。 在经过1个星期的修改/测试终于搞定了,所以现在把经验和步骤贴出来跟大家分享下。
一、实现分区的地方
因为我的boot是ADS写的,不能直接使用microsoft的bootpart源代码来分区,所以分区是在flash驱动中通过调用bootpart.lib来实现的。
另外!
不过根据其他人的经验,ADS下实现FLASH分区可以使用uc/fs的文件系统,而且更方便的做法:实现usb host,直接通过PC拷贝nk和应用程序到flash盘下,不需要烧录!
uc/fs分区的示意代码:
FS_Init();
FS_IoCtl("nf:0:", FS_CMD_FORMAT_AUTO, 0, 0);
FS_IoCtl("nf:1:", FS_CMD_FORMAT_AUTO, 0, 0);
还有种方法就是把boopart.cpp的代码移植到ADS下,不过在移植BOOL BP_Init (LPBYTE pMemory, DWORD dwSize, LPCTSTR lpActiveReg, PPCI_REG_INFO pRegIn, PPCI_REG_INFO pRegOut)函数时遇到问题,这个PPCI_REG_INFO定义涉及到需要头文件,相当麻烦!所以放弃了,改用在os中实现分区。
二、注册表部分