STMCU小助手
发布时间:2022-3-13 19:37
|
使用MDK编译器,让STM32程序HEX文件中加入固件版本信息。 u) d& Z4 }( _4 j% L 代码 代码如下:
写入到程序中: $ m$ f/ X5 G7 _4 ]; C
选项配置中:Flash地址与大小不用做任何修改!5 u7 z0 K: W$ H* N- E1 z9 R
HEX文件:+ F5 L1 t1 |4 G. |7 v* x * z) t2 {, a: H5 ?7 W6 U
串口打印输出:9 I/ X* u; Y- _- H
+ m8 ~+ _6 j1 |4 U) I6 c 上述方法的缺点 上述操作可行, 但是有一个缺点:就是生成的bin文件都是满Flash大小的, 造成每次烧录都是整个Flash读写。相关文章推荐:STM32单片机中Hex、Bin文件的区别与应用。 其实这个可以把存放地址放到前面,比如偏移1K的地方,都不用改指定地址。 按照上述操作,程序末尾到VERINFO_ADDR_BASE地址这一段会被填充成0x00。根据需要可以修改VERINFO_ADDR_BASE减小地址,或者说不强制指定地址,由编译器自动分配,但这样就要去找相应的版本标识字符串了。! y3 L2 W, i0 P) F9 h( c: |, q 优化方法 不想前面这一段被大量填充0x00,让HEX文件体积小一点的话, 可以把选项配置中Flash的Size改小一点,把VERINFO_ADDR_BASE设置成从FlashSize后面的空间开始,这样生成的HEX文件就小了,且未用空间就不会被大量填充0x00了。 方法如下:1 }: S4 `- a* E, h ) e' _& ]3 ~( V& z8 ] ( g; G/ e+ |# U6 ~
2 f$ b$ v; A# Y- Z' C5 [% i + a4 q5 D9 U O3 Y |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版