|
你这么一说我又晕了!!!!
我用的NK是NB0,那么是用config.bib中定义的NKSTART呢还是用NK.BIN中解析的起始地址呢
另外,我还在对用FALSH的虚拟地址还是RAM的地址有疑问
因为,貌似我的WINCE42下的BSP用的launch地址就是FLASH的物理地址
:if ( ((DWORD)lpdwToc & 0x90000000) == 0x80000000 ) //这个条件是什么?
{
if (FlashWrite( RAM_IMAGE_START, dwPhysLen)) //应该是跳到这个函数中?step11 FlashWrite返回0
{
EdbgOutputDebugString("Flash programming Error. System halted!\r\n");
while (1);
}
Launch2(0x81000); //这里应该是物理地址
}
else
{
Launch(RAM_IMAGE_START + 0x1000);
}
为什么是0x81000呢??
以下是WINCE42的OEMaddressTable:
DCD BOOT_FLASH_BASE_C_VIRTUAL, BOOT_FLASH_BASE_PHYSICAL, 32 ; (8000 0000, 0000 0000) nCS0: BOOT ROM
DCD CS2_L_BASE_C_VIRTUAL, CS2_L_BASE_PHYSICAL, 8 ; (8200 0000, 0800 0000) nCS2
DCD CS2_H_BASE_C_VIRTUAL, CS2_H_BASE_PHYSICAL, 8 ; (8280 0000, 0A00 0000) nCS2
DCD SDRAM_BASE_C_VIRTUAL, SDRAM_BASE_PHYSICAL, 128 ; (96C0 0000, A000 0000) everything SDRAM-related (eboot RAM, eboot RAMIMG, nk RAM, nk RAMIMAGE, nk MEMDEFS, ethdbg buffs)
从OEMaddressTable看怎么也看不出来是跟SDRAM有关啊!
难道我的WINCE42的是XIP的形式(PXA270+Norflash)
如果NK是搬移到RAM中使用的,那么这段代码在哪呢?? |
|