LPC800微控制器 是恩智浦(NXP)推出的专为小型、成本敏感应用设计的 32位ARM Cortex-M0+ 微控制器,适用于低功耗、高效性能的场景,如家用电器、照明、工业控制和个人医疗设备等。开发和烧写LPC800系列微控制器时,为确保 HEX文件 的完整性,通常需在固件中 添加校验和(Checksum)信息。
校验和 是一种数值,用于检测数据在传输或存储过程中的完整性。若在传输中文件被篡改或损坏,校验和会不匹配,触发错误提示,避免错误固件被烧写到微控制器中。
文档中描述了使用 J-Flash烧写工具 时若HEX文件未包含有效的用户固件校验码可能导致的错误提示。对于 LPC804微控制器,固件的前八个 32位字 校验和需加入地址 0x***
处。校验和通常由循环冗余校验( CRC )算法计算,随后插入固件代码的特定位置。
在Keil MDK中自动添加校验和
-
命令1:
$KARMBINELFDWT.EXE!LBASEADDRESS(0x***)
- 获取固件代码的校验字并加入固件代码。 -
LBASEADDRESS
表示校验的起始地址,一般为0x***
。 -
命令2:
$KARMCCBINfromelf.exe--i32combined-o!H!L
- 将加入校验字后的固件代码转化为 HEX格式,便于烧写。
此方法可在 Keil MDK 编译过程中自动添加校验和,省去手动修改的麻烦,降低人为错误风险。此外, IAR Embedded Workbench(v8.22及以后版本)等集成开发环境(IDE)也支持自动将校验字节编入HEX文件,避免手动操作。
更多参考文档
详细指南可参考社区文档 TN004,其中详细阐述了在HEX文件中添加有效用户代码校验和的具体方法和准则,有助于理解烧写过程中的校验机制,确保固件的完整性与安全性。
暂无评论