引用: 引用 8 楼 shuiyan 的回复:
当NOR里是空的时候,需要用JTAG烧eboot.nb0。这个时候eboot.nb0就是你在bib里配置的大小,实际有效数据可能就100多KB,后续的都补0。
当NOR里面已经有可运行的eboot时,通常用串口、USB口、网口下载eboot.bin进行eboot的更新升级。
这是开发板为什么提供bin的原因,因为开发板原来里面肯定有可运行的eboot了。
你的eboot既然可以下载系统镜像了,那么肯定可以下载eboot.bin的,你没试过吗?
没试过,我现在的情况相当于移植一个eboot吧,eboot的功能都要自己实现。你说的这个eboot刷新的功能
我也知道,但我还没实现呢。现在正在看对flash的操作这部分。
flash.c中的代码是对nor的操作还是对nand的操作?比如这些函数:
BOOL OEMIsFlashAddr(DWORD dwAddr);
LPBYTE OEMMapMemAddr(DWORD dwImageStart, DWORD dwAddr);
BOOL OEMStartEraseFlash(DWORD dwStartAddr, DWORD dwLength);
void OEMContinueEraseFlash(void);
BOOL OEMFinishEraseFlash(void);
BOOL OEMWriteFlash(DWORD dwStartAddr, DWORD dwLength);
我感觉是对nor的操作,因为里面的函数都会对地址范围进行判断(OEMIsFlashAddr),而nand好像不统一编址
功能相当于硬盘,那么nand是怎么操作的呢?
在网上也下了个2440的bsp,但是这些函数除了OEMMapMemAddr其他都是空的。