因为想把问题说清楚,所以语言比较罗嗦,请大家见谅。
我在用友善之臂的mini2440开发板研究WinCE的加载,裁剪了一个大小为6M的WinCE内核,利用友善提供Supervivi将NK.bin通过USB写入到NandFlash中,再写入nboot。让开发板从NandFalsh启动,Wince启动正常。
观察了nboot的源代码,发现是从地址0x004E0000处开始读取NK内核到SDRAM中然后运行的(读取的长度大致和NK体积相等)。故我用HJTAG把该段数据从NandFlash中读出来存成bin文件,和PlatformBuilder生成的NK.nb0对比,发现两者一致,这说明Supervivi将NK.bin已经展开成NK.nb0
我的目的是不通过USB来实现NK的烧写,做法是:
1. 把NandFalsh用Supervivi格式化
2. 将NK.nb0通过HJTAG写入NandFlash 0x004E000起始的地址。
3. 修改nboot源代码,跳过pTOC的读写和验证,直接从0x004E0000处读取NK,然后运行。
结果不成功。
(我修改过的nboot在通过USB烧写NK的情况下,是可以启动系统的,所以我是否可以排除是nboot的原因)
(这片NandFlash没有坏块)
希望能得到大家都帮助,谢谢!