吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

STM32嵌入式開發 ? 來源:阿莫論壇 ? 作者:阿莫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。根據需要可以修改VERINFO_ADDR_BASE減小地址,或者說不強制指定地址,由編譯器自動分配,但這樣就要去找相應的版本標識字符串了。

優化方法

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

編輯:JQ

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FlaSh
    +關注

    關注

    10

    文章

    1642

    瀏覽量

    148683
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357599
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49289
  • MDK
    MDK
    +關注

    關注

    4

    文章

    209

    瀏覽量

    32154

原文標題:在SMT32的HEX文件里加入固件版本信息

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

收藏 人收藏

    評論

    相關推薦

    Triton編譯器與GPU編程的結合應用

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

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

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

    Triton編譯器的優化技巧

    在現代計算環境中,編譯器的性能對于軟件的運行效率至關重要。Triton 編譯器作為一個先進的編譯器框架,提供了一系列的優化技術,以確保生成的代碼既高效又適應不同的硬件架構。 1. 指令選擇
    的頭像 發表于 12-25 09:09 ?340次閱讀

    Triton編譯器在機器學習中的應用

    實現模型的優化和加速: 模型解析 :Triton編譯器首先解析輸入的模型文件,理解模型的結構和操作。 圖優化 :對模型圖進行優化,包括
    的頭像 發表于 12-24 18:13 ?519次閱讀

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

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

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

    Triton編譯器與其他編譯器的比較主要體現在以下幾個方面: 一、定位與目標 Triton編譯器 : 定位:專注于深度學習中最核心、最耗時的張量運算的優化。 目標:提供一個高度抽象、靈活、高效
    的頭像 發表于 12-24 17:25 ?484次閱讀

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

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

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

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

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

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

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

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

    AI編譯器技術剖析

    隨著人工智能技術的飛速發展,AI編譯器作為一種新興的編譯技術逐漸進入人們的視野。AI編譯器不僅具備傳統編譯器的功能,如將高級語言編寫的源代碼轉換為機器可執行的代碼,還融入了人工智能技術
    的頭像 發表于 07-17 18:28 ?1773次閱讀

    人工智能編譯器與傳統編譯器的區別

    人工智能編譯器(AI編譯器)與傳統編譯器在多個方面存在顯著的差異。這些差異主要體現在設計目標、功能特性、優化策略、適用范圍以及技術復雜性等方面。以下是對兩者區別的詳細探討,旨在全面解析其內在差異。
    的頭像 發表于 07-17 18:19 ?2121次閱讀

    Eclipse和MDK編譯代碼后Eclipse生成的HEX文件太大了怎么辦?

    Eclipse 和 MDK 編譯代碼后 Eclipse生成的HEX文件太大 ,怎么破?
    發表于 04-29 08:09

    STM32CubeMX生成FreeRTOS的MDK工程不支持AC6編譯器嗎?

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

    hightec編譯生成hex文件要怎么操作?

    一些燒寫工具需要.hex文件那么就需要在HIGTEC GNU編譯器中進行設置,來產生想要的.hex文件。請教各位,該怎么設置?
    發表于 02-20 08:22
    玩百家乐新太阳城| 现金博彩网| 百家乐官网平注7s88| 如何玩百家乐游戏| 龙虎斗 | 百家乐断缆赢钱| 娱乐城开户送| 百家乐官网猪仔路| 悦榕庄百家乐的玩法技巧和规则 | 哪个百家乐技巧平台信誉好| 百家乐外挂| 百家乐博彩策略| 兰溪市| 百家乐赌场方法| 网上百家乐官网赌场| 火箭百家乐的玩法技巧和规则| 赌博百家乐官网趋势把握| 威尼斯人娱乐场老品牌| 大发888网页版体育| 网址百家乐官网的玩法技巧和规则| 网上现金棋牌游戏| 百家乐的必赢术| 涞水县| 玩百家乐游戏的最高技巧| 六合彩免费图库| 百家乐游戏怎么刷钱| 增城市| 赢家百家乐的玩法技巧和规则| 百家乐官网平台是最好的娱乐城| 申博太阳城管理网| 星河百家乐官网的玩法技巧和规则| 同乐城备用网址| 金博士百家乐娱乐城| 赌博百家乐官网经验| 顶级赌场连环夺宝下载| 百家乐牌数计算法| 百家乐官网辅助分析软件| 威尼斯人娱乐城会员注册| 百家乐官网资深 | 百家乐赌场娱乐城大全| 百家乐官网做庄家必赢诀窍|