marker 发表于 2012-4-17 19:15:17

请教LPC2368用户区跳转到bootloader

本帖最后由 marker 于 2012-4-17 19:23 编辑

由NXP的LPC2000 Series Secondary Bootloader修改的bootloader,用户程序的中断向量重映射到0x40000000处。bootloader起始地址为0x0,用户起始地址为0x3000
下载应用程序正常,bootloader跳转到用户程序也能正常运行,用户程序操作也是正常的。但用用户程序跳转到bootloader
#define BLD_RUN_ADD       0x0                  //Bootloader入口
#define APP_RUN_ADD       0x3000            //用户程序入口

void CPU_Restart(INT32U entry)
{
    entry = entry;
    PFV fp;
   
    fp = (PFV)(entry);
    delayNms(50);
    (*fp)();
}

应用程序中调用CPU_Restart(APP_RUN_ADD)或CPU_Restart(BLD_RUN_ADD)程序停在某处,表现为死机状态。但按物理复位按键程序通过Bootloader自动跳转到应用程序运行正常。

*******修改原因:按CTRL+回车直接发表了************************

marker 发表于 2012-4-20 14:59:49

经过几天程序排察发现问题并不是出在这个函数里,是其它地方引用SRAM地方引用错了,一个内存块指针指向未申请的区域,造成程序死机,改正后OK。
页: [1]
查看完整版本: 请教LPC2368用户区跳转到bootloader