chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SMT32的HEX文件里加入固件版本的方法

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-09-18 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹一個小技巧:

使用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__;

//------------------------------------------------------------------------------

寫入到程序中:

pYYBAGIB2rCAajdXAAGiQGwH_5I181.png

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

poYBAGIB2rGAPt-4AAJSJGauc0M632.png

HEX文件:

pYYBAGIB2rOAH1YFAAFSe2uzrSA694.png

串口打印輸出:

poYBAGIB2rSAXPpzAAEGJueLs7M335.png

上述方法的缺點

上述操作可行, 但是有一個缺點:就是生成的bin文件都是滿flash大小的, 造成每次燒錄都是整個flash讀寫。

其實這個可以把存放地址放到前面,比如偏移1K的地方,都不用改指定地址。

按照上述操作,程序末尾到VERINFO_ADDR_BASE地址這一段會被填充成0x00。根據(jù)需要可以修改VERINFO_ADDR_BASE減小地址,或者說不強制指定地址,由編譯器自動分配,但這樣就要去找相應(yīng)的版本標(biāo)識字符串了。

優(yōu)化方法

不想前面這一段被大量填充0x00,讓HEX文件體積小一點的話, 可以把選項配置中Flash的Size改小一點,把VERINFO_ADDR_BASE設(shè)置成從FlashSize后面的空間開始,這樣生成的HEX文件就小了,且未用空間就不會被大量填充0x00了。

方法如下:

pYYBAGIB2reAZnv-AAbHsQk41is233.png

來源:STM32嵌入式開發(fā)
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理(聯(lián)系郵箱:cathy@eetrend.com)。

圍觀 49

評論 0

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3832

    瀏覽量

    84336
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1665

    瀏覽量

    50848
  • HEX
    HEX
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

    17293
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    rtt連接ESP8266報錯(AT+CIPDNS_CUR?),固件版本為2.3.0.0,是什么原因?qū)е碌模?/a>

    不知道我這個固件版本挺新的,為什么不支持報錯(AT+CIPDNS_CUR?) 大佬們那個固件版本支持AT+CIPDNS_CUR?的,可以給我一個支持(AT+CIPDNS_CUR?)的
    發(fā)表于 09-12 07:21

    SMT32 TP Tool Windows無法安裝驅(qū)動怎么處理?

    新手小白,SMT32 TP Tool Windows無法安裝驅(qū)動怎么處理
    發(fā)表于 06-06 06:52

    有辦法使用HPI讀取CYPD3177固件版本嗎?

    有辦法使用 HPI 讀取 CYPD3177 固件版本嗎? 我們現(xiàn)場有日期代碼在 2047 年之前和之后的 CYPD3177 設(shè)備。 我們無法查看這些設(shè)備的內(nèi)部,也無法讀取日期代碼。 固件版本
    發(fā)表于 05-21 07:41

    為什么無法在USB控制中心選擇固件映像文件?

    EEPROM 時,USB 控制中心不會彈出圖像選擇窗口,而是自動下載固件的先前版本。 由于這個問題,我無法將我新開發(fā)的固件映像文件下載到 FX3。 即使我重命名以前的
    發(fā)表于 05-07 06:14

    新手小白,SMT32 TP Tool Windows無法安裝驅(qū)動怎么處理?

    SMT32 TP Tool Windows無法安裝驅(qū)動怎么處理
    發(fā)表于 04-27 08:06

    新手小白,SMT32 TP Tool Windows無法安裝驅(qū)動怎么處理?

    新手小白,SMT32 TP Tool Windows無法安裝驅(qū)動怎么處理
    發(fā)表于 04-25 07:24

    如何使用.hex進行遠程更新文件?

    使用 .hex 進行遠程更新 文件
    發(fā)表于 04-21 06:53

    SMT加工虛焊大揭秘:判斷與解決方法全攻略

    一站式PCBA智造廠家今天為大家講講SMT加工虛焊的判斷與解決方法有哪些?SMT加工虛焊的判斷與解決方法。在電子制造過程中,SMT貼片加工是
    的頭像 發(fā)表于 03-18 09:34 ?988次閱讀

    STM32使用ISp燒錄HEX文件運行,代碼重新編譯之后的產(chǎn)生的新hex文件選擇全片擦除就沒辦法正常運行,為什么?

    我有一套代碼需要使用ISp燒錄HEX文件運行,代碼有一個老的HEX,無論是全片擦除還是擦除重要部分再下載都沒有問題。但是代碼重新編譯之后的產(chǎn)生的新hex
    發(fā)表于 03-10 07:42

    stm32cubeide編譯的時候報錯,無法生成hex文件怎么解決?

    stm32cubeide編譯的時候報錯,并且無法生成hex文件怎么辦急急急!
    發(fā)表于 03-07 08:17

    請問DLP3010的固件文件如何修改?

    請問有關(guān)于固件文件修改的詳細(xì)文檔嗎?我在修改完固件后點擊finish,就會出現(xiàn)以下錯誤碼,請問這個錯誤碼代表什么錯誤?要怎么解決?
    發(fā)表于 02-19 07:51

    DLP3432適配的外掛Flash芯片的固件如何燒錄呢?

    你好,新制作的DLP3432 PCB板子,它適配的外掛Flash芯片的固件如何燒錄呢?官網(wǎng)給出的固件是.img 文件,而一般的Flash 編程器只支持 hex或者bin
    發(fā)表于 02-18 08:19

    AirPods如何進行固件更新

    確保充電盒有足夠的電量。 將AirPods充電盒與iPhone、iPad或Mac等設(shè)備連接,并確保這些設(shè)備已經(jīng)安裝了最新的操作系統(tǒng)。 檢查固件版本 : 在iPhone或iPad上,打開“設(shè)置”應(yīng)用,點擊
    的頭像 發(fā)表于 12-05 14:59 ?2433次閱讀

    R60AFD1跌倒雷達全新固件127版本,精準(zhǔn)升級新體驗

    云帆瑞達頂裝跌倒雷達R60AFD1-V,全新固件版本1.27已升級。此次升級專注于算法固件的優(yōu)化,未對硬件進行改動,但由于算法變化較大,無法支持前期舊版本OTA升級。相較于前期
    的頭像 發(fā)表于 11-28 15:12 ?918次閱讀
    R60AFD1跌倒雷達全新<b class='flag-5'>固件</b>127<b class='flag-5'>版本</b>,精準(zhǔn)升級新體驗

    hex格式和二進制的區(qū)別

    HEX格式和二進制在多個方面存在顯著的區(qū)別。以下是對這兩者的對比: 一、定義與表示方式 HEX格式 : HEX,全稱為Intel HEX,是一種用于存儲和傳輸數(shù)據(jù)到嵌入式系統(tǒng)(如單片機
    的頭像 發(fā)表于 11-18 15:24 ?2263次閱讀