基于ARM处理器的IAP功能实现配变监测终端程序远程更新的
本文介绍了基于LPC2378的IAP功能实现配变监测终端程序远程更新的方法,并将LZW压缩算法应用于程序更新中。该产品投入运行一年多以来,取得了良好的运行效果。此项技术具有一定普遍性,略加修改可以应用到其他同类产品中。 【基于ARM处理器的IAP功能实现配变监测终端程序远程更新】 本文重点探讨了如何在基于ARM处理器的配变监测终端上实现程序的远程更新,具体以LPC2378微控制器为例,该控制器是NXP公司的一款基于ARM7TDMI-S内核的微处理器。IAP(In-Application Programming)技术在其中发挥了关键作用,它允许在系统运行状态下更新固件,无需额外的编程硬件,从而降低了成本和复杂性。 LPC2378芯片的特性包括多个Flash扇区,这对于IAP功能至关重要。每个扇区可独立进行擦除和写入操作。IAP命令以扇区为单位执行,且不允许对Boot扇区进行修改,以保证系统的稳定性和安全性。IAP功能的调用通过C语言的函数指针实现,通过调用iap_entry()函数执行相应的Flash操作,如擦除、写入等。 远程更新的实现策略是将软件分为应用程序和更新程序两部分。应用程序负责终端的正常功能,存储在0~21扇区;更新程序则存储在22~27扇区,出厂后不再更改。在ADS1.2集成开发环境中,通过Scattered链接选项,可以将程序编译为这两部分。在更新时,主站将更新后的应用程序二进制文件发送给终端,终端接收到完整文件后,通过IAP功能擦除和写入新的应用程序代码,实现更新。 为了降低通信成本,文件在传输前进行了LZW压缩。LZW压缩算法是一种高效的无损数据压缩算法,通过建立和更新查找表来减少数据的重复性,使得文件体积显著减小。在接收端,终端接收到压缩包后,先解压缩,再通过IAP功能写入Flash,完成程序更新。 程序更新的流程包括启动时的更新检查、压缩包的接收和存储、主站更新命令触发的更新过程以及解压缩和复制新程序到Flash。整个过程确保了程序更新的安全性和可靠性。 此技术已在配变监测终端上成功应用一年以上,证明了其有效性和普适性,稍作修改即可应用于同类产品,为其他基于ARM处理器的设备提供了固件远程更新的解决方案。
- 粉丝: 8
- 资源: 949
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助