![shequ.stmicroelectronics.cn](./template/st_v1/static/img/logo2.png)
简介在嵌入式开发中通过OTA升级结束后,一般需要验证升级包的完整性,通常会携带CRC信息,升级后计算升级程序的CRC信息和携带的CRC进行检查,如果一致镜像代表升级包完整否则代表升级包有损坏。IAR 工具支持在bin文件的末尾添加上CRC信息,用于程序完整性的检测。 IAR 生成CRC 配置IAR 在link 阶段可以根据Project>Options>Linker>Checksum 路径下的配置信息计算镜像的CRC信息,本地的配置如下: 根据flash 的划分情况将0x08000000-0x0803fffb 区间用于存放 App 程序,0x0803fffc-0x0803ffff 空间存放CRC32信息。 各配置参数说明如下:
CRC算法的配置说明可以参照如下说明:
上述配置后,在编译生成的镜像后会添加如下的CRC32信息。
修改上述bin 文件删除末尾的CRC32数值
CubeMx 配置使用IAR 生成的CRC数据我们可以使用,STM32H533的CRC模块进行比较验证,对应配置如下:
添加如下代码验证CRC的完整性:
运行后IAR 生成的CRC32数值和MCU的CRC模块计算出来的也是保持一致的。
参考资料https://www.iar.com/zh/knowledge/support/technical-notes/linker/iar-embedded-workbench-checksum-crc |
【NUCLEO-H533RE评测】+点亮小灯
【NUCLEO-H533RE评测】串口Ymodem协议升级程序
【NUCLEO-H533RE评测】4.RTT Nano在Cubemx中的使用
【NUCLEO-H533RE评测】+09 低功耗测试
【NUCLEO-H533RE评测】+08 初识FreeRtos
【NUCLEO-H533RE评测】+07 IIC调试
【NUCLEO-H533RE评测】+06 ADC调试
【NUCLEO-H533RE评测】+05 调试PWM
【NUCLEO-H533RE评测】+环境搭建 cube点亮LED灯
【NUCLEO-H533RE评测】CmBacktrace 移植适配