日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

HEX文件:

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

串口打印輸出:

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

上述方法的缺點(diǎn)

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

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

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

優(yōu)化方法

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

編輯:JQ

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

    關(guān)注

    10

    文章

    1761

    瀏覽量

    155953
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11195

    瀏覽量

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

    關(guān)注

    1

    文章

    1673

    瀏覽量

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

    關(guān)注

    4

    文章

    211

    瀏覽量

    33735

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    STM32WB 系列微控制 OTA 和無線固件更新應(yīng)用筆記

    本文檔介紹了通過低功耗藍(lán)牙連接在 STM32WB 設(shè)備上進(jìn)行 OTA 固件更新的過程。它講解如何使用 STM32Cube 固件包中提供的 OTA 應(yīng)用
    發(fā)表于 01-08 14:50 ?0次下載

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

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

    開源鴻蒙技術(shù)大會2025丨編譯器與編程語言分論壇:語言驅(qū)動系統(tǒng)創(chuàng)新,編譯賦能生態(tài)繁榮

    在萬物智聯(lián)的時(shí)代背景下,操作系統(tǒng)底層能力的構(gòu)建離不開編程語言與編譯器的關(guān)鍵支撐。作為開源鴻蒙生態(tài)的核心技術(shù),語言設(shè)計(jì)與編譯器、虛擬機(jī)實(shí)現(xiàn)的進(jìn)步直接關(guān)系到開發(fā)效率、運(yùn)行性能與系統(tǒng)安全。本次分論壇聚焦
    的頭像 發(fā)表于 11-20 17:24 ?1191次閱讀
    開源鴻蒙技術(shù)大會2025丨<b class='flag-5'>編譯器</b>與編程語言分論壇:語言驅(qū)動系統(tǒng)創(chuàng)新,<b class='flag-5'>編譯</b>賦能生態(tài)繁榮

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會被編譯呢?

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會被編譯?有什么編譯選項(xiàng)可以設(shè)置嗎? 移植代碼,有些函數(shù)沒被調(diào)用的函數(shù)想留在代碼里,但不想被編譯
    發(fā)表于 09-28 12:25

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

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

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

    開發(fā)板為正點(diǎn)原子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àn)分享

    對應(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部署:編譯器如何實(shí)現(xiàn)輕量化與高性能?

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

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

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

    stellar studio按照說明文檔進(jìn)行編譯器環(huán)境配置,為什么會報(bào)錯?

    已經(jīng)是按照說明文檔進(jìn)行編譯器環(huán)境配置,但是還是會報(bào)錯,問題大概可能是文件系統(tǒng)操作錯誤,無法訪問打開文件,看樣子像系統(tǒng)問題,但是其他同學(xué)有和我系統(tǒng)版本號一樣的也可以
    發(fā)表于 06-12 07:49

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

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

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

    使用FX3S遇到了RVCT編譯器的問題。 1、在SDK的release note中有支持RVCT的描述, 但是在EZ USB Suite的設(shè)置中沒有找到RVCT的選項(xiàng), 請問支持的具體版本
    發(fā)表于 05-08 07:49
    清水县| 全南县| 永嘉县| 泽普县| 琼中| 张家川| 宁陵县| 平江县| 长寿区| 资源县| 电白县| 万年县| 崇义县| 桂东县| 昌宁县| 屯留县| 贡嘎县| 繁昌县| 赫章县| 自治县| 射阳县| 千阳县| 扎赉特旗| 崇阳县| 都兰县| 保康县| 北宁市| 新龙县| 伊吾县| 桐庐县| 连平县| 罗平县| 宁海县| 连云港市| 深圳市| 萨嘎县| 九江县| 河北省| 仪陇县| 满洲里市| 石家庄市|