标签归档:IAP

LPC1768实现网络IAP

嵌入式系统一般都需要实现网络升级功能,方便维护。思路是把LPC1768的512K flash分为5部分:

Bootloader:0X0000 0000 – 0X0000 7FFF 32K 扇区0-7

应用程序:0X0001 0000 – 0X0004 7FFF 224K 扇区16-22

升级程序缓存区:0X0004 8000 – 0X0007 FFFF 224K 扇区23-29

扇区8用来保存升级数据包数量,每个数据包最大1024字节

扇区9用来放初始化标志,因为芯片出厂FLASH值都为0XFF,上电时读扇区9的值,如果不等于初始化标志,那么向扇区9写入初始化标志,并把扇区8保存数据包数量的地址清零。然后跳转到应用程序运行。

升级原理:应用程序运行时,接收到升级程序,把升级程序写入升级程序缓冲区,写完后把升级包的数量写入扇区8的起始位置,然后看门狗复位,开始执行Bootloader程序,升级程序先读取扇区9判断芯片是否初始化过,如果初始化标志正确,读扇区8保存的升级包数量,根据数据包数量读取升级程序缓存区的数据写到应用程序区,每次写一个数据包,即1024字节,写完后,把扇区8的起始位置4字节清零。最后跳转到应用程序,开始执行新的应用程序。升级完成。

LPC1768 FLASH地址分配如下:

clip_image002 继续阅读