首页 » 互联网 » 在SMT32的HEX文件里加入固件版本信息_地址_文件

在SMT32的HEX文件里加入固件版本信息_地址_文件

神尊大人 2024-11-09 23:41:10 0

扫一扫用手机浏览

文章目录 [+]

本文先容一个小技巧:

利用MDK编译器,让STM32程序HEX文件中加入固件版本信息。

在SMT32的HEX文件里加入固件版本信息_地址_文件 互联网

代码

代码如下:

//------------------------------------------------------------------------------#include <absacc.h>//------------------------------------------------------------------------------#define VERINFO_ADDR_BASE (0x8009F00) // 版本信息在FLASH中的存放地址const char Hardware_Ver[] __attribute__((at(VERINFO_ADDR_BASE + 0x00))) = "Hardware: 1.0.0";const char Firmware_Ver[] __attribute__((at(VERINFO_ADDR_BASE + 0x20))) = "Firmware: 1.0.0";const char Compiler_Date[] __attribute__((at(VERINFO_ADDR_BASE + 0x40))) = "Date: "__DATE__;const char Compiler_Time[] __attribute__((at(VERINFO_ADDR_BASE + 0x60))) = "Time: "__TIME__;//------------------------------------------------------------------------------

嵌入式物联网须要学的东西真的非常多,千万不要学错了路线和内容,导致人为要不上去!

无偿分享大家一个资料包,差不多150多G。
里面学习内容、面经、项目都比较新也比较全!
某鱼上买估计至少要好几十。

点击这里找小助理0元领取:嵌入式物联网学习资料(头条)

写入到程序中:

选项配置中:Flash地址与大小不用做任何修正!

HEX文件:

串口打印输出:

上述方法的缺陷

上述操作可行, 但是有一个缺陷:便是天生的bin文件都是满Flash大小的, 造成每次烧录都是全体Flash读写。
干系文章推举:STM32单片机中Hex、Bin文件的差异与运用。

实在这个可以把存放地址放到前面,比如偏移1K的地方,都不用改指定地址。

按照上述操作,程序末端到VERINFO_ADDR_BASE地址这一段会被添补成0x00。
根据须要可以修正VERINFO_ADDR_BASE减小地址,或者说不逼迫指定地址,由编译器自动分配,但这样就要去找相应的版本标识字符串了。

优化方法

不想前面这一段被大量添补0x00,让HEX文件体积小一点的话, 可以把选项配置中Flash的Size改小一点,把VERINFO_ADDR_BASE设置成从FlashSize后面的空间开始,这样天生的HEX文件就小了,且未用空间就不会被大量添补0x00了。

方法如下:

文章来源于STM32嵌入式开拓

本文转载自“STM32嵌入式开拓”,如有侵权,请联系删除原文链接:在SMT32的HEX文件里加入固件版本信息

版权声明:本文来源网络,免费传达知识,版权归原作者所有。
如涉及作品版权问题,请联系我进行删除。

标签:

相关文章

恭喜发财,新时代财富观的传承与发展

春节,是中国人最重要的传统节日之一,它象征着团圆、和谐、喜庆,同时也寄托着人们对新一年的美好祝愿。在这辞旧迎新的时刻,“恭喜发财”...

互联网 2025-01-03 阅读0 评论0

手机协议点赞,构建和谐数字世界的桥梁

随着科技的飞速发展,智能手机已成为人们日常生活中不可或缺的伙伴。手机协议点赞作为一种新兴的社交互动方式,逐渐成为人们沟通交流的重要...

互联网 2025-01-03 阅读0 评论0