绝妙!如何在SMT32程序HEX文件中加入固件版本信息 |
您所在的位置:网站首页 › 三星最新固件查询版本号 › 绝妙!如何在SMT32程序HEX文件中加入固件版本信息 |
作者:阿莫icode,整理:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 大家有没有遇到过软硬件工程师扯皮的事情? 如果一个程序,固件信息里面没有任何版本信息,代码里面通过串口等接口也查询不到固件版本等信息,一旦出现问题,就会你推我,我推你了。 那么,怎么样来避免这种情况发生呢? 一种方法是,就像上面提到的,可以将固件版本信息定义成一个常量存放在程序中,需要的时候可以通过串口等接口查询代码版本信息,另一种,是今天上网看到的,思路也非常巧妙,这里分享给大家! 使用MDK编译器,在STM32程序HEX文件中加入固件版本信息,估计很多老手都已经在使用(你有好的方法欢迎分享,希望我的砖能引来你的玉),该方法献给新手或初学者。 代码如下: //------------------------------------------------------------------------------#include //------------------------------------------------------------------------------#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__; //------------------------------------------------------------------------------代码可左右滑动查看 看到没,这里使用了__attribute__ 机制,__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute ),使用at参数,可以把变量或函数绝对定位到Flash或者RAM中。 具体语法,请自行百度,这里不再赘述。 选项配置中:Flash地址与大小不用做任何修改!
串口打印输出 有了这一个简单的设置,将固件版本信息,硬件版本信息,软件编译时间等,就可以定义在Flash中的空闲位置,既可以通过HEX文件直接看出,亦可以通过串口打印版本信息,非常方便。 怎么样,赶快加到你的程序中试一下吧,从此,软硬件工程师又手拉手,亲密无间 关于电子软硬件技术,希望大家,enjoy!喜欢请点赞并转发支持我们,您的转发就是我们继续创作的最佳动力,谢谢大家! 推荐阅读 ▼ |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |