各位:
在程序中,需要重启程序,于是直接跳转到0x33FFF6处重新运行程序时(软复位?),当程序没有中断服务时,这么操作似乎没有问题,程序可以正常运行。但是当使能中断后(一个timer0计数中断),一执行跳转,就跑到interrupt void ILLEGAL_ISR(void)中了。
跳转代码
JumpAddress = *(uint32_t*) (0x33FFF6);
Jump_To_Application = (pFunction) JumpAddress;
Jump_To_Application();
部分CMD
FLASHB : origin = 0x330000, length = 0x008000 /* on-chip FLASH */
FLASHA : origin = 0x338000, length = 0x007F80 /* on-chip FLASH */
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
BEGIN : origin = 0x33FFF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */