加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

絕妙 如何在SMT32程序HEX文件中加入固件版本信息

2020/07/01
170
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大家有沒(méi)有遇到過(guò)軟硬件工程師扯皮的事情?如果一個(gè)程序,固件信息里面沒(méi)有任何版本信息,代碼里面通過(guò)串口等接口也查詢不到固件版本等信息,一旦出現(xiàn)問(wèn)題,就會(huì)你推我,我推你了。那么,怎么樣來(lái)避免這種情況發(fā)生呢?一種方法是,就像上面提到的,可以將固件版本信息定義成一個(gè)常量存放在程序中,需要的時(shí)候可以通過(guò)串口等接口查詢代碼版本信息,另一種,是今天上網(wǎng)看到的,思路也非常巧妙,這里分享給大家!

使用 MDK 編譯器,在 STM32 程序 HEX 文件中加入固件版本信息,估計(jì)很多老手都已經(jīng)在使用(你有好的方法歡迎分享,希望我的磚能引來(lái)你的玉),該方法獻(xiàn)給新手或初學(xué)者。

代碼如下:


?

//------------------------------------------------------------------------------#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__;
//------------------------------------------------------------------------------

看到?jīng)],這里使用了 __attribute__?機(jī)制,__attribute__?可以設(shè)置函數(shù)屬性(Function Attribute )、變量屬性(Variable Attribute )和類型屬性(Type Attribute ),使用 at 參數(shù),可以把變量或函數(shù)絕對(duì)定位到 Flash 或者 RAM 中。? 具體語(yǔ)法,請(qǐng)自行百度,這里不再贅述。

?

選項(xiàng)配置中:Flash 地址與大小不用做任何修改!

重點(diǎn)在這里

?

串口打印輸出

有了這一個(gè)簡(jiǎn)單的設(shè)置,將固件版本信息,硬件版本信息,軟件編譯時(shí)間等,就可以定義在 Flash 中的空閑位置,既可以通過(guò) HEX 文件直接看出,亦可以通過(guò)串口打印版本信息,非常方便。怎么樣,趕快加到你的程序中試一下吧,從此,軟硬件工程師又手拉手,親密無(wú)間

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

最全電子漫畫(huà)收集達(dá)人,漫畫(huà)控必選!用文字和圖片帶你領(lǐng)略電子世界之美。 由曉宇哥哥操刀的芯片之家公眾號(hào),提供45萬(wàn)個(gè)Symbol和3D封裝庫(kù)免費(fèi)下載,定期分享軟硬件、物聯(lián)網(wǎng)類技術(shù)知識(shí)外,還精心整理大量參考設(shè)計(jì)和文檔資源,電路圖和源代碼資料供下載。 立即打開(kāi)“芯片之家 ”,感受電子與藝術(shù)的完美結(jié)合。