引用 21 楼 haiou_arm 的回复:
typedef struct _TOC {
? ? DWORD? ? ? ? ? ? ? dwSignature;
? ? // How to boot the images in this TOC.
? ? // This could be moved into the image descriptor if desired,
? ? // but I prefer to conserve space.
? ? BOOT_CFG? ? ? ? ? ? BootCfg;
? ? // Array of Image Descriptors.
? ? IMAGE_DESCRIPTOR? ? id[MAX_TOC_DESCRIPTORS];
? ? CHAININFO? ? ? ? ? chainInfo;
} TOC, *PTOC;? ? ? ? ? // 512 bytes
这个数组很关键我觉得,因为NandFlash的第1个block就是放了它,我现在怀疑,Eboot就是靠它区分出是Nboot.bin、Eboot.bin还是NK.bin的。继续看代码……
如果你用的S3C2440的话,nboot.bin应该通过ADS编译出来的,直接烧写到block0的。
有一点你要知道:ADS编译出来的.bin跟在PB下编译的.bin是不一样的,前者可以直接拷贝到RAM中运行,后者需进行相应的解压,才能在RAM中运行的,其中解压过程,eboot肯定是有的,你仔细的研究下代码才行。