日韩中文在线观看-欧美性综合-伊人视频在线观看-亚洲免费在线视频观看-国产偷人视频-人妻丰满熟妇岳av无码区hd-国产一级淫片a视频免费观看-国产精品交换-国产精品1区2区3区4区-美女日批视频在线观看-欧美日韩一区二区三区自拍

【Arm】MDK-STM32g0xx.h文件修改與Define規(guī)則記錄

1、 文檔目標(biāo)

記錄問(wèn)題STM32g0xx.h等有關(guān)ST的可讀文件,盡量勿修改文件格式及對(duì)其代碼進(jìn)行添加和刪減,記錄查找問(wèn)題的過(guò)程中的疑惑,并如何給予客戶正確的回復(fù),幫助銷售完成驗(yàn)收,以便后續(xù)尾款支付。


2、 問(wèn)題場(chǎng)景

在工程中客戶移除了ST頭文件的可讀保護(hù)并進(jìn)行了該文件的代碼修改,在STM32g0xx.h中進(jìn)行了函數(shù)的宏定義,但應(yīng)用處并沒(méi)有添加任何頭文件,編譯不報(bào)錯(cuò)。若在其他文件中添加該函數(shù)的宏定義,編譯報(bào)錯(cuò)。


圖2-1(未應(yīng)用未報(bào)錯(cuò),不符合語(yǔ)法規(guī)則)

注:絕對(duì)不建議刪除對(duì)stm32gOxx.h文件的只讀保護(hù)。所有來(lái)自ST的只讀頭文件都有很好的保護(hù)理由。


3、軟硬件環(huán)境

1)、軟件版本:MDK 5.38 Arm 編譯器版本 6.19

2)、電腦環(huán)境:Windows 11

3)、外設(shè)硬件:無(wú)


4、解決方法

1)、宏定義的尋找模式

#define指令是C預(yù)處理器的一部分。在編譯之前進(jìn)行處理。一個(gè)頭文件沒(méi)有被你的項(xiàng)目使用或引用,這個(gè)頭文件將不會(huì)成為你的項(xiàng)目構(gòu)建的一部分,在項(xiàng)目中根本不使用由#define定義的那些參數(shù),則它們將不會(huì)作為編譯的一部分包含在內(nèi)。

2)、有關(guān)ST的只讀頭文件。

宏定義在STM32G0xx .h中,它總是包含在基于STM32G0xx設(shè)備的項(xiàng)目中并使用。在后臺(tái)運(yùn)行的編譯器工具鏈負(fù)責(zé)動(dòng)態(tài)語(yǔ)法檢查以及文本完成在某些情況下可能是不可靠的,所以在你的情況下,宏定義中函數(shù)等仍然是灰色,并且函數(shù)應(yīng)用處沒(méi)有添加頭文件,但編譯通過(guò)。

定義在STM32G0xx .h中的函數(shù),它總是包含在基于STM32G0xx設(shè)備的項(xiàng)目中并使用。將STM32G0xx .h修改部分還原,并且將其文件格式設(shè)置為可讀即可,如圖4-1在Comm.h文件并進(jìn)行宏定義,而后編譯出現(xiàn)錯(cuò)誤,符合檢查動(dòng)態(tài)語(yǔ)法規(guī)則。


圖4-1(未應(yīng)用報(bào)錯(cuò),符合語(yǔ)法規(guī)則)

主站蜘蛛池模板: 南漳县| 定结县| 库车县| 安泽县| 磴口县| 望谟县| 广宗县| 化州市| 台南市| 盖州市| 广宗县| 阜阳市| 东乡族自治县| 石河子市| 南澳县| 南丹县| 临西县| 密山市| 鄢陵县| 治多县| 页游| 辽中县| 五莲县| 南城县| 兴安盟| 湖南省| 花莲市| 广昌县| 云龙县| 鄂伦春自治旗| 福鼎市| 嘉善县| 济宁市| 白河县| 靖边县| 海口市| 台北县| 北宁市| 临颍县| 淳安县| 无为县|