*** 问题描述:
我的BF537 BootLoader使用 BootROM进行二级加载,将位于0x20030000的已测试正常的应用代码加载运行。
目前判断加载正常,但是应用程序在CAN口初始化时无法进入配置模式,代码如下:
if (0 == (*pCAN_STATUS & CCA))
{
*pCAN_CONTROL = CCR;
while (0 == (*pCAN_STATUS & CCA))
{
asm("nop;");
}
}
路过的高手,恳请给点建议。非常感谢!
*** 附上BootLoader中的跳转代码[从网上找的]
if ((*(char*)(0x20030000) & 0xFF) == 0x60)
{
*pSIC_IMASK = 0x00000000;
*pSIC_ISR = 0x00000000;
*pIMASK = 0x0000001F;
csync();
*pIMEM_CONTROL = 0x00000001;
ssync();
csync();
*pDMEM_CONTROL = 0x00001001;
ssync();
*pEBIU_AMGCTL = 0x00FF;
*pEBIU_AMBCTL0 = 0xFFC2FFC2;
*pEBIU_AMBCTL1 = 0xFFC2FFC2;
asm("R1.H = HI(0xFFA00000);"); // L1_Code address
asm("R1.L = LO(0xFFA00000);");
asm("P0.H = HI(0xFFE02004);"); // EVI1(RST)
asm("P0.L = LO(0xFFE02004);");
asm("[P0] = R1;");
asm("P0.H = HI(0xEF000008);"); // bootrom
asm("P0.L = LO(0xEF000008);");
asm("R7.H = HI(0x20030000);"); // start address
asm("R7.L = LO(0x20030000);");
asm("JUMP (P0);"); // jump to Boot ROM
}