This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

程序运行过程中跳转到0x33FFF6时异常



各位:

         在程序中,需要重启程序,于是直接跳转到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 */