单片机软件IAP策略

2022-12-16  

在开发阶段,通常采用ICP或者ISP的方式更新单片机软件,例如在stm32系列MCU上不仅可以更新程序,而且还能够调试实时观测内存数据、外设状态和全局变量以及单步运行、设置断点等。

但是当产品发布以后,这种单片机或者微控系统被嵌入某个对象系统中,很难采用ICP方式进行单片机程序更新;因此需要一种仅通过uart、can、eth等通信接口就可以实现单片机程序更新的技术,IAP便是其中一种;

IAP全称In Application programmer即在应用编程。IAP技术将程序存储器分为若干区域,其中一种是IAP+APP区域,APP用来存储正常工作的程序,IAP用来存储通过通信接口修改APP区域的程序;

本文还是以stm32为例,介绍一下和IAP有关知识。

栈指针SP:程序运行必须的条件,SP必须指向一个合法的地址空间,stm32有两个sp,msp和psp,如果不使用rtos,默认使用msp,使用rtos的朋友们注意跳转前先切换到对应的sp,否则系统可能崩溃;复位后sp值是程序存储器第一个字;

复位地址:单片机复位后需要复位地址,它便是程序存储器的第二个字;

在stm32上程序存储器一般是指Flash,在标准库或者HAL库中有对Flash的驱动程序,主要使用擦除函数,读存储器函数,写存储器函数;

Flash分区:假设程序存储器大小为48KB

0x08000000-0x08003FFF:16KB IAP区域

0x08004000-0x0800FFFF:48KB APP区域

根据需要可以添加其他分区,例如系统参数区域,系统标志区域,以及保留区域等


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。