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

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

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

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

如何在單片機中保存版本信息?

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2021-04-15 11:48 ? 次閱讀

平時我們寫程序,通常都會備注軟件版本,那么,怎么在單片機中保存版本信息呢?

方法其實有很多,但基本原理都是在指定存儲區(qū)域(Flash)中寫入軟件版本信息。

1

實現(xiàn)方法

下面就分享一個最常用,也是最基礎(chǔ)的小技巧:在Keil MDK環(huán)境下,通過軟件代碼,直接映射到并存儲到Flash指定地址。

包含:軟件版本、編譯日期、編譯時間,代碼如下:

#define VERINFO_ADDR_BASE (0x0800FF00) //存放FLASH的地址

const char Software_Ver[] __attribute__((at(VERINFO_ADDR_BASE + 0x00))) = “Software: 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__;

這個代碼大家能看懂么? 原理很簡單,也有類似其他寫入Flash地址的方法(這里暫不講述)。

這里面包含幾個重要知識點,下面給大家描述一下。

2

__attribute__ 語法

attribute,翻譯為“屬性”,在C語言中,是一個關(guān)鍵字,語法格式為:

__attribute__ ((attribute-list))

__attribute__ 可以設(shè)置函數(shù)屬性(Function Attribute )、變量屬性(Variable Attribute )和類型屬性(Type Attribute )。

這部分內(nèi)容,大家可以不用深入理解,知道這么用即可。要深入理解,網(wǎng)上也有很多學(xué)習(xí)資源。

3

C語言標準定義

在代碼中:

const char Compiler_Date[] __attribute__((at(VERINFO_ADDR_BASE + 0x40))) = “Date: ”__DATE__;const char Compiler_Time[] __attribute__((at(VERINFO_ADDR_BASE + 0x60))) = “Time: ”__TIME__;

你會看到__DATE__ 和 __TIME__表示的日期和時間。

其實,這兩個是C語言特殊的標準定義。

__DATE__:編譯時刻的日期字符串 如“Apr 13 2021”__TIME__:編譯時刻的時間字符串 如”2000“

除了這兩個,其實還有很多類似的標準定義,比如:

__FILE__ :正在編譯文件的文件名__LINE__ :正在編譯文件的行號

__STDC__:判斷該文件是不是標準C程序

這部分內(nèi)容,可以參看我的文章:C語言幾種特殊標準定義和用法

4

總是編譯版本文件

在Keil MDK中,默認情況下,源文件不修改,只編譯一次。

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

如下設(shè)置:

ef8c72e0-9d14-11eb-8b86-12bb97331649.png

5

固件大小

生成的Hex文件會對沒有使用的Falsh用0x00進行填充,比如:

ef9854c0-9d14-11eb-8b86-12bb97331649.png

填充0x00之后,這個hex就相對很大,因此,有兩種方法減少hex固件大小。

1.存放FLASH的地址,要設(shè)置在合適的位置,如果代碼量只有1K,你這只在偏移50K地址,這樣偏移太多。

#define VERINFO_ADDR_BASE (0x0800FF00) //存放FLASH的地址

2.網(wǎng)上還有一個方法,修改“ROM大小”:

efa77e78-9d14-11eb-8b86-12bb97331649.png

該小之后,發(fā)現(xiàn)真的把0x00去掉了:

efeb8474-9d14-11eb-8b86-12bb97331649.png

這兩種方法,其實有一定風(fēng)險的,如果代碼量不斷增加,可能會出現(xiàn)問題。所以,大家要主要設(shè)置Flash地址。

這里其實也有一個關(guān)于Hex文件格式的內(nèi)容,推薦閱讀文章:輕松理解bin、hex、axf和elf文件格式

原文標題:SMT32固件中引入版本信息的方法

文章出處:【微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    6039

    文章

    44583

    瀏覽量

    636597
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10910

    瀏覽量

    356645

原文標題:SMT32固件中引入版本信息的方法

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    單片機Debug工具性能對比 單片機調(diào)試常用命令

    單片機(Microcontroller Unit, MCU)調(diào)試是嵌入式開發(fā)中的一個重要環(huán)節(jié),它幫助開發(fā)者發(fā)現(xiàn)和修復(fù)代碼中的錯誤,優(yōu)化程序性能。不同的單片機和開發(fā)環(huán)境可能使用不同的調(diào)試工具和命令
    的頭像 發(fā)表于 12-19 09:56 ?353次閱讀

    上位如何實現(xiàn)發(fā)送參數(shù)給單片機單片機保存接收的參數(shù)重復(fù)運行指定的功能

    ,類似于設(shè)定單片機運行指定功能時所需要的參數(shù): 舉例:名稱,功能,上限,下限,參數(shù)一,參數(shù)二,...,延時。一行代表一個功能。 上位機設(shè)定好參數(shù)通過串口下發(fā)給單片機單片機接收到數(shù)據(jù)后保存
    發(fā)表于 12-04 08:19

    單片機怎么寫入程序

    單片機(Microcontroller Unit,MCU)是一種集成電路芯片,它將計算機的CPU、存儲器、輸入/輸出接口等功能集成在一個芯片上。單片機廣泛應(yīng)用于嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備中。編寫單片機
    的頭像 發(fā)表于 10-21 11:21 ?557次閱讀

    采集電源信息單片機還是dsp

    在現(xiàn)代電子系統(tǒng)中,電源管理是一個至關(guān)重要的環(huán)節(jié)。隨著技術(shù)的發(fā)展,對電源信息的采集和處理需求也在不斷提高。在設(shè)計電源信息采集系統(tǒng)時,工程師們常常面臨一個選擇:是使用單片機(MCU)還是數(shù)字信號處理器
    的頭像 發(fā)表于 10-18 09:33 ?300次閱讀

    單片機的中斷機制

    單片機的中斷機制是一種重要的處理方式,它允許單片機在執(zhí)行主程序的過程中,能夠暫停當前任務(wù),轉(zhuǎn)而處理外部或內(nèi)部緊急事件。這種機制極大地提高了系統(tǒng)的響應(yīng)速度和處理能力,使得單片機在各種應(yīng)用領(lǐng)域中得到廣泛應(yīng)用。以下是對
    的頭像 發(fā)表于 10-17 18:03 ?835次閱讀

    用8位單片機,32位單片機就找英銳恩!

    單片機)中有軟硬研發(fā)設(shè)計、系統(tǒng)開發(fā)編程、工具應(yīng)用支持、專項集成解決方案等領(lǐng)域有十多年的實力,從市場信息調(diào)研、應(yīng)用開發(fā)、產(chǎn)品研發(fā)、定制設(shè)計等技術(shù)服務(wù);再從售前咨詢,售中技術(shù)支持,售后增值服務(wù),擁有經(jīng)驗豐富的工程技術(shù)團隊與資深的
    的頭像 發(fā)表于 09-23 10:32 ?342次閱讀

    單片機基本io功能調(diào)試過程

    所使用的單片機型號以及需要調(diào)試的IO口。不同型號的單片機在IO口的配置和特性上可能有所不同。 查閱單片機手冊 : 查閱單片機的手冊或數(shù)據(jù)手冊,了解IO口的配置方法、寄存器地址、功能描述
    的頭像 發(fā)表于 09-14 14:38 ?685次閱讀

    單片機燒錄程序的基本步驟是什么

    單片機燒錄程序是單片機開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機內(nèi)部的存儲器中,使單片機能夠按照預(yù)定的邏輯執(zhí)行任務(wù)。 一、硬件準備
    的頭像 發(fā)表于 09-02 09:47 ?1191次閱讀

    UCGUI單片機源碼

    UCGUI單片機源碼
    發(fā)表于 07-04 17:11 ?1次下載

    一個暑假如何學(xué)習(xí)單片機

    一個暑假是學(xué)習(xí)和掌握單片機基礎(chǔ)知識的良好時機。以下是一個關(guān)于如何在暑假期間學(xué)習(xí)單片機的建議計劃
    的頭像 發(fā)表于 07-03 09:19 ?544次閱讀
    一個暑假如何學(xué)習(xí)<b class='flag-5'>單片機</b>

    基于51單片機數(shù)字時鐘鬧鐘設(shè)計

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機數(shù)字時鐘鬧鐘設(shè)計包含了PDF版本電路圖、C語言程序源代碼(keil軟件打開)、proteus仿真。本資源適合人群:? ? ? 單片機愛好者、電子
    發(fā)表于 06-25 10:17 ?0次下載

    如何系統(tǒng)、科學(xué)地自學(xué)單片機

    很多初學(xué)者都會面臨這個問題,我想學(xué)習(xí)單片機、我也想學(xué)好單片機、我也想系統(tǒng)地學(xué)習(xí)單片機,但是單片機涉及到的學(xué)科多且雜根本不是三天兩天就能學(xué)完的,很多人都逃脫不了從入門到放棄的怪圈?那么我
    的頭像 發(fā)表于 03-28 08:03 ?1125次閱讀
    如何系統(tǒng)、科學(xué)地自學(xué)<b class='flag-5'>單片機</b>?

    fpga能代替單片機

    FPGA(現(xiàn)場可編程門陣列)和單片機在功能和應(yīng)用上各有特點和優(yōu)勢,因此FPGA并不能完全代替單片機
    的頭像 發(fā)表于 03-27 14:29 ?940次閱讀

    單片機的最小系統(tǒng)由什么組成 單片機的最小系統(tǒng)包括哪些

    單片機(Microcontroller Unit,MCU)的最小系統(tǒng)包括以下幾個主要組成部分: 單片機芯片:單片機是整個最小系統(tǒng)的核心部分,它集成了中央處理器(Central Processing
    的頭像 發(fā)表于 02-02 11:27 ?1.1w次閱讀

    基于單片機控制的交通燈設(shè)計

    本課程設(shè)計是在學(xué)完單片機原理及課程之后綜合利用所學(xué)單片機知識完成一個單片機應(yīng)用系統(tǒng)設(shè)計并在實驗室實現(xiàn)。
    的頭像 發(fā)表于 01-22 15:31 ?2271次閱讀
    基于<b class='flag-5'>單片機</b>控制的交通燈設(shè)計
    主站蜘蛛池模板: avtt天堂网Av无码| 亚洲午夜久久影院| 国产在线一区二区三区四区| 9国产露脸精品国产麻豆| 亚洲欧美一区二区三区蜜芽| 日韩男明星| 女人张腿让男人桶免费| 花蝴蝶在线观看免费8| 岛国在线无码免费观| 97夜夜澡人人爽人人模人人喊| 久久婷婷国产五月综合色啪最新 | 超碰最新网站| 97国产在线播放| 再插深点嗯好大好爽| 亚洲高清在线精品一区| 神马伦理2019影院不卡片| 暖暖日本在线手机免费完整版| 久久精品伊人| 黑人特黄AA完整性大片| 国产精品久久久久成人免费| 草莓视频在线免费观看| 97人妻无码AV碰碰视频| 中国xxxxxx片免费播放| 亚洲一区成人| 亚洲精品理论电影在线观看| 香蕉久久夜色精品国产小优| 四虎影视国产精品亚洲精品| 人曽交Z00Z0OA片| 欧美性喷潮xxxx| 欧美高清69vivo| 欧美成人中文字幕在线视频| 男人J放进女人P全黄网站| 美女视频秀色福利视频| 免费观看成人毛片| 免费a视频在线观看| 蜜桃视频一区二区| 嫩草影院在线观看网站成人| 男人免费网站| 欧美色妞AV重囗味视频| 青草伊人久久| 日本大尺码喷液过程视频|