第二节:串口IAP程序改良
正点原子的例程仅实现了从IAP至APP程序的跳转,并不能从APP跳转回IAP程序中。但是实际应用中,当我要更新APP程序时,我希望在接收到新的APP代码后返回IAP代码块,重新更新APP固件,下面探讨如何实现这一需求。
2.1 一种简单直观的方法
可以发现,对于正点原子的例程,当单片机执行应用程序时,系统处于应用程序的主循环中,没有跳回IAP代码区域的方法。
因此,最简单的方法是在应用程序中添加一段代码,检测到某一外部事件,执行回跳指令。下面这段代码就是在应用程序中检测到按键0按下后,调用HAL_NVIC_SystemReset()软复位函数,回跳至IAP代码区域。
while(1)
{
//执行应用程序功能。。
。。。。。。
。。。。。。
//
key=KEY_Scan(0