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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

本文介紹一個(gè)小技巧:

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

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

寫(xiě)入到程序中:

pYYBAGIB2rCAajdXAAGiQGwH_5I181.png

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

poYBAGIB2rGAPt-4AAJSJGauc0M632.png

HEX文件:

pYYBAGIB2rOAH1YFAAFSe2uzrSA694.png

串口打印輸出:

poYBAGIB2rSAXPpzAAEGJueLs7M335.png

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

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

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

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

優(yōu)化方法

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

方法如下:

pYYBAGIB2reAZnv-AAbHsQk41is233.png

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

圍觀 49

評(píng)論 0

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

    關(guān)注

    117

    文章

    3849

    瀏覽量

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

    關(guān)注

    1

    文章

    1673

    瀏覽量

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

    關(guān)注

    0

    文章

    37

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    羅德與施瓦茨矢量網(wǎng)絡(luò)分析儀固件升級(jí)步驟及注意事項(xiàng)

    型號(hào)的最新固件版本。務(wù)必確認(rèn)固件版本與儀器型號(hào)完全匹配。 準(zhǔn)備一個(gè)格式化為FAT32的U盤(pán)(建議容量不超過(guò)32GB),用于固件傳輸。 將下載
    的頭像 發(fā)表于 04-20 16:25 ?82次閱讀
    羅德與施瓦茨矢量網(wǎng)絡(luò)分析儀<b class='flag-5'>固件</b>升級(jí)步驟及注意事項(xiàng)

    瑞芯微(EASY EAI)RV1126B 固件版本查詢(xún)

    1.固件版本查詢(xún)?cè)陂_(kāi)發(fā)板環(huán)境執(zhí)行以下命令,可直接查看當(dāng)前的固件版本:cat/etc/version通過(guò)此日期,可以找到網(wǎng)盤(pán)上發(fā)布的,與之一一對(duì)應(yīng)的【
    的頭像 發(fā)表于 04-20 14:31 ?152次閱讀
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>固件</b><b class='flag-5'>版本</b>查詢(xún)

    【教程】CW32之使用J-Link燒錄.hex文件

    在平時(shí)調(diào)試時(shí),我們也可以使用DAP-Link、ST-Link等進(jìn)行燒錄和Debug,使用方法和STM32類(lèi)似。然而當(dāng)我們手頭只有hex文件(或bin文件)時(shí),可以嘗試使用J-Link進(jìn)
    的頭像 發(fā)表于 04-01 16:56 ?3284次閱讀
    【教程】CW32之使用J-Link燒錄.<b class='flag-5'>hex</b><b class='flag-5'>文件</b>

    如何檢查QSPI的固件版本?

    閃存已安裝的固件版本? If my firmware is not updated to version v3.7.5, can I use the flashcp method
    發(fā)表于 02-05 06:26

    SMT貼片坐標(biāo)總對(duì)不準(zhǔn)?4個(gè)快速校正技巧讓生產(chǎn)效率翻倍

    23年P(guān)CBA一站式行業(yè)經(jīng)驗(yàn)PCBA加工廠(chǎng)家今天為大家講講SMT貼片加工如何快速校正SMT坐標(biāo)?SMT貼片加工快速校正SMT坐標(biāo)的方法。在
    的頭像 發(fā)表于 02-02 09:18 ?741次閱讀
    <b class='flag-5'>SMT</b>貼片坐標(biāo)總對(duì)不準(zhǔn)?4個(gè)快速校正技巧讓生產(chǎn)效率翻倍

    請(qǐng)問(wèn)怎么把.hex文件轉(zhuǎn)化為.c文件嗎?

    怎么把.hex文件轉(zhuǎn)化為.c文件嗎?
    發(fā)表于 01-05 07:12

    固件版本錯(cuò)配:一個(gè)讓老工程師都栽過(guò)跟頭的“低級(jí)錯(cuò)誤”

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

    SMT貼片良率低?這5大檢測(cè)方法幫你揪出隱藏缺陷!

    一站式PCBA加工廠(chǎng)家今天為大家講講PCBA加工中SMT貼片如何檢測(cè)品質(zhì)不良?SMT貼片檢測(cè)品質(zhì)不良的方法。在PCBA加工中,SMT貼片的品質(zhì)檢測(cè)可通過(guò)以下
    的頭像 發(fā)表于 11-27 09:26 ?1076次閱讀
    <b class='flag-5'>SMT</b>貼片良率低?這5大檢測(cè)<b class='flag-5'>方法</b>幫你揪出隱藏缺陷!

    Bootloader固件升級(jí)的步驟

    ,也可以不更新,在項(xiàng)目中,我們通常會(huì)對(duì) FW 版本號(hào)進(jìn)行對(duì)比,會(huì)將 MCU 中的 App 程序更新最新的版本,起到固件升級(jí)的效果。更新的話(huà),BootLoader 更新完程序后,跳轉(zhuǎn)到新程序運(yùn)行;不更新
    發(fā)表于 11-19 07:41

    往flash里面燒寫(xiě)的是.elf文件還是.hex文件?裸機(jī)應(yīng)該沒(méi)辦法識(shí)別.elf文件?

    往flash里面燒寫(xiě)的是.elf文件還是.hex文件?裸機(jī)應(yīng)該沒(méi)辦法識(shí)別.elf文件吧?
    發(fā)表于 11-05 07:02

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

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

    STM32CubeProgrammer v2.9下載hex文件到STM32F446,總是提示報(bào)錯(cuò),怎么解決?

    STM32CubeProgrammer v2.9下載hex文件到STM32F446,串口連接,下載后做verify programming時(shí),總是提示 Error:Download
    發(fā)表于 06-12 07:40

    SMT32 TP Tool Windows無(wú)法安裝驅(qū)動(dòng)怎么處理?

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

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

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

    為什么無(wú)法在USB控制中心選擇固件映像文件

    EEPROM 時(shí),USB 控制中心不會(huì)彈出圖像選擇窗口,而是自動(dòng)下載固件的先前版本。 由于這個(gè)問(wèn)題,我無(wú)法將我新開(kāi)發(fā)的固件映像文件下載到 FX3。 即使我重命名以前的
    發(fā)表于 05-07 06:14
    老河口市| 渝中区| 蕉岭县| 黄陵县| 南平市| 修武县| 内丘县| 海淀区| 鄂托克前旗| 上虞市| 宜兴市| 邯郸县| 香河县| 贵溪市| 绥芬河市| 巢湖市| 黑龙江省| 读书| 大新县| 海淀区| 闸北区| 永定县| 韩城市| 东平县| 南充市| 石河子市| 利川市| 湟源县| 卢湾区| 嘉定区| 航空| 元阳县| 湘潭市| 白玉县| 小金县| 玛多县| 屯昌县| 新乐市| 卢龙县| 昂仁县| 舞阳县|