RM新时代网站-首页

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

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

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

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

jf_52bVvS8T ? 來源:EE時間 ? 2023-02-01 09:37 ? 次閱讀

本文介紹一個小技巧:

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


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

寫入到程序中:

04c82988-a19b-11ed-bfe3-dac502259ad0.png

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

04f5363a-a19b-11ed-bfe3-dac502259ad0.png

HEX文件:

051e2928-a19b-11ed-bfe3-dac502259ad0.png

串口打印輸出:

053d42a4-a19b-11ed-bfe3-dac502259ad0.png

上述方法的缺點

上述操作可行, 但是有一個缺點:就是生成的bin文件都是滿flash大小的, 造成每次燒錄都是整個flash讀寫。相關(guān)文章:詳解STM32在線IAP升級。

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

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

優(yōu)化方法

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

方法如下:

056e7144-a19b-11ed-bfe3-dac502259ad0.png

審核編輯:湯梓紅

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

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355725
  • HEX文件
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

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

    關(guān)注

    1

    文章

    1623

    瀏覽量

    49108
  • MDK
    MDK
    +關(guān)注

    關(guān)注

    4

    文章

    209

    瀏覽量

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

    關(guān)注

    0

    文章

    37

    瀏覽量

    16829

原文標題:SMT32的HEX文件里加入固件版本的方法

文章出處:【微信號:EE時間,微信公眾號:EE時間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    smt32做一個解魔方的機器人,需用到哪些知識

    求助:想用smt32做一個解魔方的機器人,需用到哪些知識,難度系數(shù)高嗎?
    發(fā)表于 04-08 16:55

    SMT32資料匯總

    SMT32固件說明!
    發(fā)表于 03-26 17:52

    DSP生成hex文件和生成bin文件方法步驟

    DSP生成hex文件、生成bin文件方法平臺:win7 + ccs5.5目標板:C2000的28335ccs5.5編譯只能生成hex
    發(fā)表于 09-10 09:58

    基于SMT32的數(shù)碼管顯示程序

    1、四位數(shù)碼管的簡單介紹因為在學(xué)校做項目的時候使用到了數(shù)碼管顯示,所以就編寫了一個基于SMT32的數(shù)碼管顯示程序。通過看手冊知道這個四位數(shù)碼管采用TM1637 驅(qū)動電路。內(nèi)部有集成MCU數(shù)字電路接口
    發(fā)表于 08-11 08:32

    怎樣去創(chuàng)建并使用SMT32定時器中斷的

    SMT32定時器的原理是什么?STM32CubeMX是如何創(chuàng)建定時器的?怎樣去創(chuàng)建并使用SMT32定時器中斷的?
    發(fā)表于 10-21 06:21

    SMT32定時器的輸入捕獲是什么意思?其工作流程是怎樣的

    SMT32定時器的輸入捕獲是什么意思?輸入捕獲的工作流程是怎樣的?SMT32定時器是如何去測量PWM頻率和占空比的?
    發(fā)表于 11-24 06:39

    如何實現(xiàn)sm2算法在smt32單片機上的移植

    終于搞定了sm2算法在smt32單片機上的移植。之前的動態(tài)內(nèi)存分配,在上面總是莫名其妙的崩。不知道堆和??臻g該改多大合適。且總共64K的內(nèi)存,太受限了。幾次想放棄,最后還是堅持了一下,終于搞定啦!看
    發(fā)表于 11-26 07:01

    怎樣去解決在RK2928燒錄固件里加入Demo文件的問題呢

    問題: 有 RK2928 客戶要求在燒錄固件里面加入測試歌曲,視頻等 Demo 文件。但是在固件工廠工具里沒有相關(guān)修改信息。參考辦法:在固件
    發(fā)表于 05-30 11:46

    bin文件轉(zhuǎn)換為hex文件操作步驟解析

    在做單片機開發(fā)時,用不同的下載工具,要求下載的固件格式也不一樣,有的要求是HEX文件,有的則要求是BIN文件,如果只有一個BIN文件如何將它
    發(fā)表于 11-14 09:04 ?7.8w次閱讀
    bin<b class='flag-5'>文件</b>轉(zhuǎn)換為<b class='flag-5'>hex</b><b class='flag-5'>文件</b>操作步驟解析

    stm32之.hex 文件

    的output文件夾中找到編譯后生產(chǎn)的. hex 文件; 用 notepad++ 或者 UltraEdit 打開 程序 的.hex文件
    發(fā)表于 04-20 09:28 ?4154次閱讀
    stm32之.<b class='flag-5'>hex</b> <b class='flag-5'>文件</b>

    如何使用MDK編譯器讓STM32程序HEX文件加入固件版本信息

    本文介紹一個小技巧: 使用MDK編譯器,讓STM32程序HEX文件加入固件版本信息。 代碼 代碼如下
    的頭像 發(fā)表于 06-23 15:14 ?4045次閱讀
    如何使用MDK編譯器讓STM32程序<b class='flag-5'>HEX</b><b class='flag-5'>文件</b>中<b class='flag-5'>加入</b><b class='flag-5'>固件</b><b class='flag-5'>版本</b>信息

    SMT32HEX文件里加入固件版本方法

    本文介紹一個小技巧:使用MDK編譯器,讓STM32程序HEX文件加入固件版本信息。
    發(fā)表于 02-08 15:28 ?0次下載
    <b class='flag-5'>SMT32</b>的<b class='flag-5'>HEX</b><b class='flag-5'>文件</b><b class='flag-5'>里加入</b><b class='flag-5'>固件</b><b class='flag-5'>版本</b>的<b class='flag-5'>方法</b>

    STM32程序HEX文件加入固件版本信息

    使用MDK編譯器,讓STM32程序HEX文件加入固件版本信息。
    的頭像 發(fā)表于 08-14 16:13 ?4350次閱讀

    單片機固件加入版本信息的方式有哪些?-1

    開發(fā)完MCU軟件后,通常都會生成hex文件或者bin文件,用來做固件燒錄或者升級,如果用來做產(chǎn)品開發(fā),就涉及到固件
    的頭像 發(fā)表于 02-15 15:13 ?1385次閱讀
    單片機<b class='flag-5'>固件</b>中<b class='flag-5'>加入</b><b class='flag-5'>版本</b>信息的方式有哪些?-1

    SMT32HEX文件里加入固件版本方法

    SMT32HEX文件里加入固件版本方法
    的頭像 發(fā)表于 09-18 15:34 ?684次閱讀
    <b class='flag-5'>SMT32</b>的<b class='flag-5'>HEX</b><b class='flag-5'>文件</b><b class='flag-5'>里加入</b><b class='flag-5'>固件</b><b class='flag-5'>版本</b>的<b class='flag-5'>方法</b>
    RM新时代网站-首页