99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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減小地址,或者說不強制指定地址,由編譯器自動分配,但這樣就要去找相應(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

    文章

    1679

    瀏覽量

    151840
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

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

    關(guān)注

    1

    文章

    1662

    瀏覽量

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

    關(guān)注

    4

    文章

    211

    瀏覽量

    32697

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

    Triton編譯器與GPU編程的結(jié)合應(yīng)用

    Triton編譯器簡介 Triton編譯器是一種針對并行計算優(yōu)化的編譯器,它能夠自動將高級語言代碼轉(zhuǎn)換為針對特定硬件優(yōu)化的低級代碼。Triton編譯器的核心優(yōu)勢在于其能夠識別并行模式,
    的頭像 發(fā)表于 12-25 09:13 ?837次閱讀

    Triton編譯器如何提升編程效率

    在現(xiàn)代軟件開發(fā)中,編譯器扮演著至關(guān)重要的角色。它們不僅將高級語言代碼轉(zhuǎn)換為機器可執(zhí)行的代碼,還通過各種優(yōu)化技術(shù)提升程序的性能。Triton 編譯器作為一種先進的編譯器,通過多種方式提升
    的頭像 發(fā)表于 12-25 09:12 ?748次閱讀

    Triton編譯器在高性能計算中的應(yīng)用

    先進的編譯技術(shù),為高性能計算提供了強大的支持。 Triton編譯器簡介 Triton編譯器是一種開源的編譯器框架,旨在為異構(gòu)計算環(huán)境提供高效的編譯
    的頭像 發(fā)表于 12-25 09:11 ?970次閱讀

    Triton編譯器的優(yōu)化技巧

    在現(xiàn)代計算環(huán)境中,編譯器的性能對于軟件的運行效率至關(guān)重要。Triton 編譯器作為一個先進的編譯器框架,提供了一系列的優(yōu)化技術(shù),以確保生成的代碼既高效又適應(yīng)不同的硬件架構(gòu)。 1. 指令選擇
    的頭像 發(fā)表于 12-25 09:09 ?995次閱讀

    Triton編譯器的優(yōu)勢與劣勢分析

    Triton編譯器作為一種新興的深度學(xué)習(xí)編譯器,具有一系列顯著的優(yōu)勢,同時也存在一些潛在的劣勢。以下是對Triton編譯器優(yōu)勢與劣勢的分析: 優(yōu)勢 高效性能優(yōu)化 : Triton編譯器
    的頭像 發(fā)表于 12-25 09:07 ?1188次閱讀

    Triton編譯器在機器學(xué)習(xí)中的應(yīng)用

    實現(xiàn)模型的優(yōu)化和加速: 模型解析 :Triton編譯器首先解析輸入的模型文件,理解模型的結(jié)構(gòu)和操作。 圖優(yōu)化 :對模型圖進行優(yōu)化,包括
    的頭像 發(fā)表于 12-24 18:13 ?990次閱讀

    Triton編譯器的常見問題解決方案

    Triton編譯器作為一款專注于深度學(xué)習(xí)的高性能GPU編程工具,在使用過程中可能會遇到一些常見問題。以下是一些常見問題的解決方案: 一、安裝與依賴問題 檢查Python版本 Triton編譯器通常
    的頭像 發(fā)表于 12-24 18:04 ?3008次閱讀

    Triton編譯器與其他編譯器的比較

    Triton編譯器與其他編譯器的比較主要體現(xiàn)在以下幾個方面: 一、定位與目標(biāo) Triton編譯器 : 定位:專注于深度學(xué)習(xí)中最核心、最耗時的張量運算的優(yōu)化。 目標(biāo):提供一個高度抽象、靈活、高效
    的頭像 發(fā)表于 12-24 17:25 ?1006次閱讀

    Triton編譯器功能介紹 Triton編譯器使用教程

    Triton 是一個開源的編譯器前端,它支持多種編程語言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一個可擴展和可定制的編譯器框架,允許開發(fā)者添加新的編程語言特性和優(yōu)化技術(shù)
    的頭像 發(fā)表于 12-24 17:23 ?1685次閱讀

    分享一個keil MDK編譯信息增強工具

    今天給大家分享一個 keil MDK 編譯信息增強工具:keil-build-viewer. 1 keil-build-viewer介紹 這是一個 keil 的編譯
    的頭像 發(fā)表于 11-14 11:01 ?1860次閱讀

    單片機hex文件編譯成C語言的過程

    使用C語言編寫,然后編譯成機器碼并燒錄到單片機的存儲中。 Hex文件是一種用于存儲單片機程序文件
    的頭像 發(fā)表于 09-02 10:49 ?6139次閱讀

    hex文件如何查看原c語言代碼

    是處理可以直接執(zhí)行的指令,而 C 語言代碼則是人類可讀的高級編程語言代碼。 然而,如果你想要從 .hex 文件中獲取一些有用的信息或者對程序
    的頭像 發(fā)表于 09-02 10:37 ?4956次閱讀

    怎樣將keil中的程序導(dǎo)出

    1. 準(zhǔn)備工作 在開始導(dǎo)出程序之前,需要確保已經(jīng)完成了以下準(zhǔn)備工作: 安裝Keil MDK-ARM軟件。 創(chuàng)建一個新的項目,并添加所需的源文件和庫文件。 配置項目設(shè)置,包括芯片型號、
    的頭像 發(fā)表于 09-02 10:23 ?4836次閱讀