* 原始文章地址可能暂时无法访问,仅展示文章的摘要信息

产品开发日志:MCU Bootloader 利用网络实现远程升级的方法」的摘要信息

前言 之前提到的项目产品开发日志:合宙Air724UG与云端服务器进行TCP直连,最近客户要求增加一个远程升级功能,毕竟项目安装比较分散,万一后续软件升级一个个手工升太麻烦,所以提出了这个需求。这次也算是边学边用了,记录一下防止下次忘记。 一般更改芯片程序都是通过芯片厂家提供的烧录工具完成的,而芯片厂家的烧录协议往往不会开放。那么就需要为芯片加入Bootloader功能,让芯片可以通过串口通讯的方式来实现对芯片的升级。我们这里就用到了合宙的Air724UG进行串口通讯来升级程序。 原理 要实现Bootloader的功能,必须使用允许在应用中编程的单片机,即具有IAP功能的单片机,为了方便更新数据的传输,通常还需要通讯串口,如UART。在实现Bootloader功能时,需要把单片机的存储空间划成两大块,Bootloader代码实现区域LDROM和用户代码区域APROM。LDROM用于存放Bootloader实现的一些相关代码,如当前工作状态检查、程序跳转条件判断、通讯程序、烧写程序等,这部分的程序是用于完成对APROM更新的程序,在应用中不可对其改写。APROM就是用户的应用程序,该部分代码可通过LDROM里的Bootloader程序进行更新。本项目中我使用的单片机品牌是中微,都支持这个功能,可以很方便的实现升级。 IAP介绍 所谓IAP就是In-Application Programming。即允许用户在程序运行过程中对部分程序区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。详细的IAP操作方法见对应芯片规格书描述。IAP命令指令结合LDROM专用存储区域即可实现ISP升级功能。 空间结构 单片机的flash空间需要分为三部分:1. Bootloader程序区;2. 用户代码区;3. 待升级的代码区域。注意,第1点的程序和第2,...