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)不再提示

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

STM32嵌入式開發(fā) ? 來源:阿莫論壇 ? 作者:阿莫icode ? 2021-06-23 15:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹一個小技巧:

使用MDK編譯器,讓STM32程序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__;

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

寫入到程序中:

3e69fdb6-d3dd-11eb-9e57-12bb97331649.png

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

HEX文件:

3e83c7d2-d3dd-11eb-9e57-12bb97331649.png

串口打印輸出:

3e993680-d3dd-11eb-9e57-12bb97331649.png

上述方法的缺點

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

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

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

優(yōu)化方法

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

編輯:JQ

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

    關(guān)注

    10

    文章

    1735

    瀏覽量

    155160
  • STM32
    +關(guān)注

    關(guān)注

    2307

    文章

    11150

    瀏覽量

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

    關(guān)注

    1

    文章

    1672

    瀏覽量

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

    關(guān)注

    4

    文章

    211

    瀏覽量

    33548

原文標(biāo)題:在SMT32的HEX文件里加入固件版本信息

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    固件版本錯配:一個老工程師都栽過跟頭的“低級錯誤”

    。示例:PJ101_HW2.1_SW1.4.3_20230711_Release.hex。所有正式發(fā)布固件必須存放于受版本管理的服務(wù)指定目錄,個人工作區(qū)
    發(fā)表于 12-18 10:31

    nano版本使用AC6編譯器下,不顯示msh怎么解決?

    ;gt; 字符串。 排查問題大概猜測應(yīng)該是 FinSH 根本就不工作,主要原因很可能是 AC6 版本沒有把FinSH那些代碼編譯到最終的bin文件。 網(wǎng)上說要修改鏈接文件,但是網(wǎng)上的
    發(fā)表于 09-25 07:19

    rtt5.0.0下lvgl在正點原子stm32f407探索者開發(fā)板V3上mdk編譯報錯怎么解決?

    開發(fā)板為正點原子stm32f407探索者V3,在rtt5.0.0版本加入lvgl及相應(yīng)的lcd, touch驅(qū)動,其它什么功能也沒加,在mdk
    發(fā)表于 09-22 06:17

    rt_list_for_each_entry編譯失敗怎么解決?

    最新版本的rtthread,做SDIO模式的SD卡,里面包含了blk.C文件,文件里有多個rt_list_for_each_entry,我用的是keil mdk AC6,
    發(fā)表于 09-18 07:14

    rtthread V5.2.1 scons無法編譯,MDK編譯失敗怎么解決?

    環(huán)境: 系統(tǒng)版本:V5.2.1 env版本:env-windows-v2.0.0 bsp:stm32g474-st-nucleo 問題: env中用scons編譯失敗,提示Dep
    發(fā)表于 09-15 06:25

    【RA4E2開發(fā)板評測】RACS配置+MDK編程+RA Flash Programmer下載程序測試LED經(jīng)驗分享

    對應(yīng)的工程文件夾,首先編譯全部程序,程序0錯誤,0警告。 低版本MDK此處
    發(fā)表于 08-31 14:50

    求助,關(guān)于NanoEdge AI Studio生成的庫交叉編譯器版本疑問求解

    我使用的是NanoEdge AI Studio v4.3.1,跟著官方交教程生成了庫libneai.a,我通過metadata.json文件得知生成這個庫的交叉編譯器版本是\"
    發(fā)表于 08-08 07:25

    邊緣設(shè)備AI部署:編譯器如何實現(xiàn)輕量化與高性能?

    電子發(fā)燒友網(wǎng)綜合報道 AI編譯器是專門為人工智能(AI)和機(jī)器學(xué)習(xí)(ML)模型設(shè)計的編譯器,其核心目標(biāo)是將高級的AI模型描述(如計算圖、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu))轉(zhuǎn)換為特定硬件平臺(如CPU、GPU、FPGA
    的頭像 發(fā)表于 07-06 05:49 ?6374次閱讀

    兆松科技發(fā)布高性能RISC-V編譯器ZCC 4.0.0版本

    近日,兆松科技(武漢)有限公司(以下簡稱“兆松科技”)宣布正式發(fā)布高性能 RISC-V 編譯器 ZCC 4.0.0 版本。新版本在性能優(yōu)化、廠商自定義指令支持和軟件庫等方面實現(xiàn)全面升級,并同步推出
    的頭像 發(fā)表于 06-27 14:48 ?2558次閱讀
    兆松科技發(fā)布高性能RISC-V<b class='flag-5'>編譯器</b>ZCC 4.0.0<b class='flag-5'>版本</b>

    兆松科技ZCC編譯器全面支持芯來科技NA系列處理

    近日,兆松科技(武漢)有限公司(以下簡稱“兆松科技”)宣布正式發(fā)布高性能RISC-V編譯器ZCC 4.0.0版本
    的頭像 發(fā)表于 06-11 09:56 ?1413次閱讀

    RVCT編譯器是否比GNU的編譯器的代碼執(zhí)行速度更快?

    使用FX3S遇到了RVCT編譯器的問題。 1、在SDK的release note中有支持RVCT的描述, 但是在EZ USB Suite的設(shè)置中沒有找到RVCT的選項, 請問支持的具體版本
    發(fā)表于 05-08 07:49

    請問基于GCC編譯器的initcall在STM32如何實現(xiàn)?

    請問各位基于GCC編譯器的initcall在STM32如何實現(xiàn)?有哪位實現(xiàn)了嗎?
    發(fā)表于 03-13 06:24

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC6編譯器有很多錯誤,為什么?

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC5編譯器可以編譯成功,選擇AC6編譯器有很多錯誤,是
    發(fā)表于 03-11 06:32

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

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

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

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