chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

使用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)

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

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

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

優(yōu)化方法

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

編輯:JQ

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

    關(guān)注

    10

    文章

    1701

    瀏覽量

    153908
  • STM32
    +關(guān)注

    關(guān)注

    2301

    文章

    11073

    瀏覽量

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

    關(guān)注

    1

    文章

    1665

    瀏覽量

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

    關(guān)注

    4

    文章

    211

    瀏覽量

    33266

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

    stm32cubeide編譯的時(shí)候報(bào)錯(cuò),無法生成hex文件怎么解決?

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

    什么樣的代碼會(huì)被編譯器優(yōu)化

    現(xiàn)在的編譯器有多智能,可能你辛辛苦苦寫的代碼,在編譯器看來就是幾句廢話,直接被刪除掉。
    的頭像 發(fā)表于 01-16 16:38 ?817次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    分享一個(gè)keil MDK編譯信息增強(qiáng)工具

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