色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

單片機(jī)固件中加入版本信息的方式有哪些?-1

汽車電子技術(shù) ? 來(lái)源:大橙子瘋嵌入式 ? 作者:大橙子瘋 ? 2023-02-15 15:13 ? 次閱讀

前言

開(kāi)發(fā)完MCU軟件后,通常都會(huì)生成hex文件或者bin文件,用來(lái)做固件燒錄或者升級(jí),如果用來(lái)做產(chǎn)品開(kāi)發(fā),就涉及到固件版本的問(wèn)題,初學(xué)者通常采用固件文件重命名來(lái)區(qū)分版本。

如果需要每次上電開(kāi)機(jī)通過(guò)串口或者OLED等顯示版本信息,那么這種方式就無(wú)法實(shí)現(xiàn)

下面介紹如何在程序中加入版本信息,以MDK為例介紹。

實(shí)現(xiàn)方式

1.定義一個(gè)結(jié)構(gòu)體,里面定義一些軟件版本相關(guān)的信息

typedef struct
{
    char szVersion[32];    // 軟件版本
    char szBuildDate[32];  // 程序編譯日期
    char szBuildTime[32];  // 程序編譯時(shí)間
}AppInfo_t;

2.定義一個(gè)只讀結(jié)構(gòu)體變量(只讀的目的:防止程序改變、節(jié)約RAM),賦初值(其中__DATE___TIME__C語(yǔ)言中的內(nèi)置宏,分別是當(dāng)前的編譯日期和編譯時(shí)間)。

const AppInfo_t sg_tAppInfo =
{
    "STM32_V0.1.5",
    __DATE__,
    __TIME__,
};

3.在主函數(shù)添加打印,將版本信息輸出到終端上。

int main(void)
{
    SystemInit();

    printf("Version  : %s\\r\\n", sg_tAppInfo.szVersion);
    printf("buildTime: %s\\r\\n", sg_tAppInfo.szBuildDate);
    printf("buildTime: %s\\r\\n", sg_tAppInfo.szBuildTime);

    while (1)
    {

    }
}

4.在 Keil MDK 中,默認(rèn)情況下,源文件不修改,只會(huì)編譯一次。

如果定于sg_tAppInfo變量的源文件沒(méi)有修改而其它文件修改時(shí),編譯日期和編譯時(shí)間還是之前的

為了編譯版本、日期和時(shí)間正確,需要進(jìn)行設(shè)置:總是編譯

圖片

5.下載程序后,通過(guò)串口工具在MCU上電就能收到版本信息的打印

圖片

擴(kuò)展

從上述的實(shí)現(xiàn)方式可知,sg_tAppInfo只讀變量在程序中的位置不固定,有一定的局限性。

如果結(jié)構(gòu)體有其他的信息,無(wú)法在編譯時(shí)初始化,而是需要在程序編譯后的hex文件中添加或者修改信息,但由于只讀變量在程序中的位置不固定,不能保證每次編譯后在固定的位置添加或者修改信息。

下一篇介紹通過(guò)__attribute__機(jī)制固定sg_tAppInfo只讀變量在程序中的地址,同時(shí)采用映像文件工具對(duì)hex固件文件進(jìn)行操作,自動(dòng)將固件中的版本信息和固件文件名稱關(guān)聯(lián)起來(lái)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350986
  • HEX文件
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    12747
  • BIN文件
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8282
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    華大單片機(jī)是如何向MDK中加入頭文件和庫(kù)文件的

    華大單片機(jī)如何向MDK中加入頭文件和庫(kù)文件關(guān)鍵文件介紹加入頭文件大多數(shù)習(xí)慣于8位單片機(jī)開(kāi)發(fā)的工程師,都會(huì)使用操作寄存器的方式來(lái)使用
    發(fā)表于 07-13 08:43

    請(qǐng)問(wèn)單片機(jī)如何向MDK中加入頭文件和庫(kù)文件?

    請(qǐng)問(wèn)單片機(jī)如何向MDK中加入頭文件和庫(kù)文件?
    發(fā)表于 09-27 08:32

    如何更簡(jiǎn)單的給單片機(jī)更新固件

    當(dāng)單片機(jī)已經(jīng)焊接到電路板上時(shí),如何更簡(jiǎn)單更便捷的為單片機(jī)升級(jí)固件便成了一件值得深思的問(wèn)題。本文介紹了一種更簡(jiǎn)單更便捷的固件升級(jí)方式,不需要任
    的頭像 發(fā)表于 10-23 18:19 ?1.7w次閱讀
    如何更簡(jiǎn)單的給<b class='flag-5'>單片機(jī)</b>更新<b class='flag-5'>固件</b>?

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

    本文介紹一個(gè)小技巧: 使用MDK編譯器,讓STM32程序HEX文件中加入固件版本信息。 代碼 代碼如下
    的頭像 發(fā)表于 06-23 15:14 ?4046次閱讀
    如何使用MDK編譯器讓STM32程序HEX文件<b class='flag-5'>中加入</b><b class='flag-5'>固件</b><b class='flag-5'>版本</b><b class='flag-5'>信息</b>

    華大單片機(jī)如何向MDK中加入頭文件和庫(kù)文件

    華大單片機(jī)如何向MDK中加入頭文件和庫(kù)文件關(guān)鍵文件介紹加入頭文件大多數(shù)習(xí)慣于8位單片機(jī)開(kāi)發(fā)的工程師,都會(huì)使用操作寄存器的方式來(lái)使用
    發(fā)表于 11-23 18:07 ?15次下載
    華大<b class='flag-5'>單片機(jī)</b>如何向MDK<b class='flag-5'>中加入</b>頭文件和庫(kù)文件

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

    本文介紹一個(gè)小技巧:使用MDK編譯器,讓STM32程序HEX文件中加入固件版本信息
    發(fā)表于 02-08 15:28 ?0次下載
    SMT32的HEX文件里<b class='flag-5'>加入</b><b class='flag-5'>固件</b><b class='flag-5'>版本</b>的方法

    單片機(jī)固件中加入版本信息的方法

    平時(shí)我們寫程序,通常都會(huì)備注軟件版本,那么,怎么在單片機(jī)中保存版本信息呢?方法其實(shí)有很多,但基本原理都是在指定存儲(chǔ)區(qū)域(Flash)中寫入軟件版本
    的頭像 發(fā)表于 04-18 14:50 ?1120次閱讀

    STM32程序HEX文件中加入固件版本信息

    使用MDK編譯器,讓STM32程序HEX文件中加入固件版本信息
    的頭像 發(fā)表于 08-14 16:13 ?4350次閱讀

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

    使用MDK編譯器,讓STM32程序HEX文件中加入固件版本信息
    的頭像 發(fā)表于 02-01 09:37 ?3857次閱讀

    單片機(jī)固件中加入版本信息方式哪些?-2

    這篇介紹一下如何在 MCU 程序中固定位置添加程序的版本信息等。
    的頭像 發(fā)表于 02-15 15:36 ?1209次閱讀
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>固件</b><b class='flag-5'>中加入</b><b class='flag-5'>版本</b><b class='flag-5'>信息</b>的<b class='flag-5'>方式</b><b class='flag-5'>有</b>哪些?-2

    單片機(jī)固件中加入版本信息方式哪些?-3

    這篇主要介紹一下通過(guò) Git 工具管理的程序如何在 MCU 程序版本信息中增加 Git commot 提交的 id 。
    的頭像 發(fā)表于 02-15 15:38 ?719次閱讀
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>固件</b><b class='flag-5'>中加入</b><b class='flag-5'>版本</b><b class='flag-5'>信息</b>的<b class='flag-5'>方式</b><b class='flag-5'>有</b>哪些?-3

    介紹單片機(jī) MCU 固件打包腳本軟件

    1. 基于 Windows 平臺(tái)的單片機(jī) MCU 固件腳本打包工具
    的頭像 發(fā)表于 02-15 15:40 ?1361次閱讀
    介紹<b class='flag-5'>單片機(jī)</b> MCU <b class='flag-5'>固件</b>打包腳本軟件

    怎么在單片機(jī)中保存版本信息呢?

    平時(shí)我們寫程序,通常都會(huì)備注軟件版本,那么,怎么在單片機(jī)中保存版本信息呢?
    的頭像 發(fā)表于 04-18 15:12 ?826次閱讀

    單片機(jī)固件如何加入版本信息

    時(shí)我們寫程序,通常都會(huì)備注軟件版本,那么,怎么在單片機(jī)中保存版本信息呢? 方法其實(shí)有很多,但基本原理都是在指定存儲(chǔ)區(qū)域(Flash)中寫入軟件版本
    發(fā)表于 08-22 09:16 ?431次閱讀
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>固件</b>如何<b class='flag-5'>加入</b><b class='flag-5'>版本</b><b class='flag-5'>信息</b>

    STM32單片機(jī)實(shí)現(xiàn)固件在線升級(jí)(IAP)

    1固件升級(jí)方案綜述單片機(jī)固件升級(jí)方式很多種。1
    的頭像 發(fā)表于 12-16 08:00 ?5301次閱讀
    STM32<b class='flag-5'>單片機(jī)</b>實(shí)現(xiàn)<b class='flag-5'>固件</b>在線升級(jí)(IAP)
    主站蜘蛛池模板: 亚洲免费在线视频观看| 欧美高清一区二区三| 鲁大师影院在线视频在线观看| 久久极品视频| 欧美激情精品久久久久久不卡| 青草国产在线视频免费| 天美麻豆成人AV精品视频| 亚洲国语在线视频手机在线 | 亚洲精品AV无码喷奶水糖心| 夜色帮首页| 99久久精品国产自免费| 菲律宾毛片| 精品视频在线一区| 女同志videos最新另| 天美麻豆成人AV精品| 伊人久久久久久久久香港| 99久久国产免费福利| 国产福利视频第一导航| 黄色网址在线播放| 欧美18精品久久久无码午夜福利| 视频成人永久免费看| 在线a视频| 国产SUV精品一区二区69| 久久艹综合| 日本久久频这里精品99| 亚洲精品在线免费| AV久久久囯产果冻传媒| 国产亚洲精品第一区香蕉| 麻豆国产MV视频| 我要色色网| 98色精品视频在线| 国产欧美一区二区三区免费| 美女穿丝袜被狂躁动态图| 翁公咬着小娇乳H边走边欢A| 18禁止观看免费私人影院| 国产精品xxxav免费视频| 里番acg纲手的熟蜜姬训练场 | 性插图动态图无遮挡| 97草碰在线视频免费| 国产亚洲精品精品国产亚洲综合| 免费看美女的网站|