蝶舞明月 发表于 2019-8-8 11:25:13

关于IAP的一些疑问

初学IAP,有点头大。比如做串口IAP,按照正点原子教程说的,跳转到APP后,产生串口中断后会去执行APP的中断服务程序,那串口IAP的串口中断服务函数就不能执行?

yzzhh18 发表于 2019-8-8 17:05:02

通电->IAP(主函数开始前,设置中断向量,此时运行IAP中断函数)->APP(一样设置中断向量,运行APP中断函数)。运行那个中断函数,看你这时候单片机在跑IAP还是APP。
需要更新的时候通常是APP接受到升级命令,跳转到IAP(可以用看门狗复位单片机,每次复位单片机会从IAP开始运行)。IAP需要判断是否升级,还是跳转APP正常运行(可以用按键、一段时间内串口有没有指令数据、读flash内特定地址值来判断)。需要升级的话此时不会跳转APP,单片机在IAP运行,进入IAP的中断函数。

lichenghou 发表于 2019-8-8 15:27:03

不是把中断的地址偏移了嘛,就相当于产生中断以后先跳转到0x08000000那段代码的中断处,然后跳转到你的app中断函数处吧

蝶舞明月 发表于 2019-8-8 16:02:06

lichenghou 发表于 2019-8-8 15:27
不是把中断的地址偏移了嘛,就相当于产生中断以后先跳转到0x08000000那段代码的中断处,然后跳转到你的app ...

都跳到app的中断函数。那我再次更新app程序的不还是执行的app的中断函数,那这样就更新不了程序了?

蝶舞明月 发表于 2019-8-8 17:20:48

yzzhh18 发表于 2019-8-8 17:05
通电->IAP(主函数开始前,设置中断向量,此时运行IAP中断函数)->APP(一样设置中断向量,运行APP中断函数 ...

正点原子的IAP例程的APP只能下一次,再次下就出错搞得想了好久,是他们app例程的问题。现在明白了。谢谢!!!
页: [1]
查看完整版本: 关于IAP的一些疑问