ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

单片机基础核心知识点汇总(十二)

单片机基础核心知识点汇总(十二) 目录前言一、IAP 与 ICP 基础概念区分二、BootLoader 与 App 分工三、Flash 分区规划要点四、IAP 完整升级流程五、程序跳转核心注意事项六、固件传输与分片处理七、量产项目安全防护机制八、常用升级通信接口九、常见故障与避坑十、拓展进阶方向前言如果每次升级固件都需要拆机、使用下载器烧录维护成本极高无法满足现场设备、户外物联网设备的迭代需求。IAP 在线升级就是解决这个问题的核心方案也是嵌入式工程师量产项目必备技能。一、IAP 与 ICP 基础概念区分ICP在电路编程也就是常规下载器烧录方式需要调试接口一般用于工厂初次烧录固件。IAP在应用编程设备运行自身程序的情况下通过通信接口接收新固件写入 Flash完成程序升级全程不需要下载器。IAP 核心思路划分两段程序BootLoader 引导程序 App 应用程序。二、BootLoader 与 App 分工1.BootLoader引导程序存放在 Flash 低地址区域设备上电优先运行。主要功能硬件初始化、检测升级标志、接收新固件、固件校验、固件搬运跳转。如果检测到有效升级包执行固件更新若无升级需求直接跳转至 App 程序运行。2.App业务应用程序存放于 Flash 高地址区域实现产品全部业务逻辑包含采集、控制、通信等功能。升级时不能直接擦写自身运行所在扇区。三、Flash 分区规划要点进行 IAP 开发前必须提前划分 Flash 地址空间各个区域严格隔离防止相互覆盖BootLoader 区存放引导程序预留固定大小扇区App 运行区正常执行业务固件的存储区域固件备份区升级缓存区临时存放接收完成的新固件镜像参数存储区保存设备配置、升级标志、校验信息对应上一篇掉电存储内容分区大小必须按照芯片 Flash 扇区尺寸对齐不同型号单片机扇区大小存在差异以官方手册为准。四、IAP 完整升级流程设备上电启动 BootLoader初始化串口 / WiFi/CAN 等通信外设读取存储区内升级标记判断是否需要执行升级若触发升级通过通信接口分片接收新固件写入固件备份区接收完成后对完整固件进行 CRC 校验确认数据包无丢失、无篡改校验通过将备份区内新固件搬运至 App 运行区清除升级标记设置正常启动标志跳转到 App 入口地址运行新固件校验失败保留原有旧固件清除缓存升级包直接启动旧 App避免设备变砖五、程序跳转核心注意事项中断向量表偏移App 程序必须配置向量表偏移寄存器否则中断会跳转到 BootLoader 区域引发死机栈指针切换跳转前修改主栈指针为 App 定义的栈起始地址外设复位跳转前关闭 BootLoader 使用的外设、定时器、中断防止外设状态冲突禁止在中断内执行程序跳转操作六、固件传输与分片处理大部分通信接口单次缓存长度有限大固件不能一次性传输完成必须分片传输上位机 / 云端按固定分片长度拆分固件 bin 文件每传输一个分片设备应答确认丢包则重传分片全部分片接收完毕拼接完整固件镜像再执行校验写入 Flash七、量产项目安全防护机制CRC 校验防止传输过程数据出错导致固件损坏双备份固件保留旧版本固件升级失败可回滚防止设备变砖固件加密对 bin 固件进行加密处理防止固件被窃取、篡改版本号管理固件内置版本号支持差分升级减少传输数据量升级锁定增加升级使能标志避免误触发升级流程八、常用升级通信接口串口 IAP适合本地调试、有线升级成本最低CAN IAP工业设备、车载设备主流升级方案WiFi/4G 远程 IAP物联网设备远程升级使用 MQTT 下发固件包USB IAP带 USB 外设的单片机配合上位机快速升级九、常见故障与避坑Flash 分区重叠升级时擦除 BootLoader直接导致设备变砖未配置中断向量偏移App 运行中断异常、随机死机分片接收无应答机制丢包后升级包不完整升级中途断电无固件备份设备无法正常启动栈地址配置错误跳转程序直接 HardFault 硬件错误固件未做对齐处理写入 Flash 触发地址错误十、拓展进阶方向基础 IAP 实现之后可以继续学习差分升级、固件签名验签、OTA 远程升级管理平台、文件系统管理固件包适配大型物联网项目批量设备维护。
返回列表