最近忙着做IAP功能,遇到一些问题,麻烦各位大侠指导下?程序流程是这样的,默认情况下程序在主程序中运行,收到升级指令后跳到IAP程序进行空中升级。
跳转程序如下:
1.NVIC_SETFAULTMASK(); //关总中断
2.JumpAddress = *(volatile u32*) (ApplicationAddress + 4); // 取中断向量表中的复位中断地址
3.Jump_To_Application = (pFunction) JumpAddress; // 该地址强置为跳转函数地址
4.__set_MSP(*(unsigned int*)(ApplicationAddress )
5.Jump_To_Application();
问题:
1.如果不加第一步,好像无**常跳转。如果加上第一步,能够正常跳转,但是跳转到IAP程序后无法响应中断。
2.在IAP程序中开启总中断,跳转过去后无**常运行IAP程序。 |