在nboot的main()函数中,发现读取文件之后,函数校验幻数,但是为什么是CEFA4146?
void main()
{
unsigned NkParamMagic, NkLen;
Uart_Init();
Uart_SendString("\r\nWinCE 6.0 nboot for Mini6410\r\n");
// Initialize the NAND flash interface.
NAND_Init();
InitLCD();
// Get CE Paramters, now NK Length only
if (!LoadNandIntoRAM((unsigned char*)LOAD_ADDRESS_PHYSICAL, NAND_BYTES_PER_PAGE, LOAD_PARAM_NAND_PART_OFFSET, LOAD_PARAM_NAND_PART_SIZE, 0)) {
Uart_SendString("Get Windows CE NK Length Error\r\n");
for(;;);
}
NkParamMagic = ((unsigned *)LOAD_ADDRESS_PHYSICAL)[0];
NkLen = ((unsigned *)LOAD_ADDRESS_PHYSICAL)[1];
if (NkParamMagic != 0xCEFA4146 || NkLen > LOAD_IMAGE_MAX_BYTE_COUNT) {
Uart_SendString("NK Length Error\r\n");
for(;;);
}
NkLen = (((NkLen - 1) >> PageSizeShift) + 1) << PageSizeShift;
if (!LoadNandIntoRAM((unsigned char*)LOAD_ADDRESS_PHYSICAL, NkLen, LOAD_IMAGE_NAND_PART_OFFSET, LOAD_IMAGE_NAND_PART_SIZE, 1)) {
Uart_SendString("Load Windows CE NK Error\r\n");
for(;;);
}
Uart_SendString("Launch Windows CE...\r\n");
rINFORM3 = LCD_NUMBER;
((PFN_IMAGE_LAUNCH)(LOAD_ADDRESS_PHYSICAL))();
这个幻数代表的什么?难道是友善自己定义的幻数?