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

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

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

巧用 STM32CubeIDE 之編譯警告

jf_pJlTbmA9 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2023-10-25 16:33 ? 次閱讀

1.前言

編譯警告對于工程師們來說,是再常見不過的東西了。對于嚴謹?shù)墓こ處焸?,任?warning 都是不會忽視的。

2.巧妙使用 warning

STM32CubeIDE 中可以通過warning(甚至 error)的方式來通知工程師,使得一些容易遺漏的配置得到重視。

例如,在釋放參考代碼給客戶時,希望客戶注意到里面的項目名稱和項目版本,那么我們可以在代碼中,通過“#error ”來強調(diào)必須要修改的信息,通過“#warning”來備注需要注意的信息。具體代碼如圖 1:

wKgaomUDw46AInh4AAFWi-zoiSs095.png

這樣,當客戶編譯工程時,會出現(xiàn) error 和 warning,見圖 2,只有將“#error”和 “#warning”兩行分別注釋掉,才會分別消除這兩項編譯信息,以此達到警示客戶的目的。

wKgaomUDw5CAHuTzAAFiS799EYI093.png

2.1. 主動屏蔽特定的 warning

在有些場景,我們還可以在特定的代碼或者文件作用域內(nèi),主動屏蔽特定的 warning。

例如,工程中寫了一個測試函數(shù)“void MyTestFunction(void)”,但是在工程中暫時沒有被調(diào)用,直接編譯會得到“Wunused-function”的 warning。

但是如果在代碼中添加這樣的語句:

#pragma GCC diagnostic ignored "-Wunused-function"。

/*此區(qū)間內(nèi),如果出現(xiàn)函數(shù)僅申明,但是沒有被調(diào)用時,編譯不產(chǎn)生warning*/ voidMyTestFunction(void){…}

#pragma GCC diagnostic pop

因為我們配置了“-Wunused-function”,那么在編譯時,即使 MyTestFunction 沒有 被調(diào)用,編譯也不產(chǎn)生 warning。

我們還可以在 STM32CubeIDE 中,通過“Help”->“Information Center”->“Read STM32CubeIDE Documentation”->“C/C++ Compiler”,找到 GCC 編譯器文檔,從而發(fā)現(xiàn)更多的 warning 選項,根據(jù)需要主動屏蔽更多的 warning。見圖 3 :

wKgZomUDw5KAH5yjAAK3031kFFI899.png

3. 小結(jié)

事實上,在編譯項目時,warning 和 error 同樣重要,部分隱蔽的問題可能就和 warning 相關(guān)。當我們對工程代碼和編譯器有了更深層次的了解后,可以巧妙地使用和屏蔽 warning,幫我們更好地管理項目。

來源:STM32單片機

免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理

審核編輯 黃宇

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

    關(guān)注

    2270

    文章

    10915

    瀏覽量

    356776
  • IDE
    IDE
    +關(guān)注

    關(guān)注

    0

    文章

    339

    瀏覽量

    46797
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    661

    瀏覽量

    32938
收藏 人收藏

    評論

    相關(guān)推薦

    STM32CubeIDE入門教程 STM32CubeIDE安裝使用教程

    STM32CubeIDE是一個高級C / C ++開發(fā)平臺,具有用于STM32微控制器和微處理器的外設(shè)配置,代碼生成,代碼編譯和調(diào)試功能。它基于Eclipse??/ CDT框架和GCC工具鏈進行開發(fā),并基于GDB進行調(diào)試。它允許
    的頭像 發(fā)表于 06-08 09:19 ?9323次閱讀
    <b class='flag-5'>STM32CubeIDE</b>入門教程 <b class='flag-5'>STM32CubeIDE</b>安裝使用教程

    STM32CubeIDE SWV功能介紹

    01 引言 STM32CubeIDE是ST官方推出的集成開發(fā)環(huán)境,集成了很多STM32的調(diào)試與開發(fā)工具。本文主要介紹如何使用SWV功能來打印輸出。 02 問題描述 客戶使用STM32CubeIDE
    的頭像 發(fā)表于 10-13 14:20 ?3801次閱讀
    <b class='flag-5'>STM32CubeIDE</b> SWV功能介紹

    Ubuntu 18.04 安裝 STM32CubeIDE 小記

    Ubuntu 18.04 安裝 STM32CubeIDE 小記
    發(fā)表于 11-18 17:36 ?9次下載
    Ubuntu 18.04 安裝 <b class='flag-5'>STM32CubeIDE</b> 小記

    STM32CubeIDE使用

    參考STM32CubeIDE屬于一站式工具,本文帶你體驗它的強大第一個STM32CubeIDE項目STM32CubeIDE使用記錄STM32CubeIDE使用筆記(03):使用ST-L
    發(fā)表于 12-02 17:21 ?29次下載
    <b class='flag-5'>STM32CubeIDE</b>使用

    STM32CubeIDE初識

    STM32CubeIDE初識
    發(fā)表于 12-02 18:36 ?23次下載
    <b class='flag-5'>STM32CubeIDE</b>初識

    STM32CubeIDE安裝-NSIS Error問題

    STM32CubeIDE安裝-NSIS Error問題
    發(fā)表于 12-03 21:06 ?18次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝-NSIS Error問題

    STM32CubeIDE的MCU開發(fā)

    STM32開發(fā)環(huán)境是ARM公司的KEIL軟件, 由于KEIL對于STM32大部分型號是收費的, 使用需要破解, 存在版權(quán)問題。 并且使用KEIL編譯大型工程, 編譯太慢了,
    發(fā)表于 12-05 12:21 ?25次下載
    <b class='flag-5'>STM32CubeIDE</b>的MCU開發(fā)

    第一個STM32CubeIDE項目

    使用STM32CubeIDE的第一個項目開始第一個項目添加代碼今天開始做一個STM32CubeIDE的第一個項目,首先需要說明的:STM32CubeIDE是一個免費的軟件開始第一個項目在文件菜單中選
    發(fā)表于 12-29 19:29 ?11次下載
    第一個<b class='flag-5'>STM32CubeIDE</b>項目

    STM32CUBEIDE(1)----安裝

    概述 STM32CubeIDE是一體式多操作系統(tǒng)開發(fā)工具,是STM32Cube軟件生態(tài)系統(tǒng)的一部分。 STM32CubeIDE是一種高級C/C++開發(fā)平臺,具有STM32微控制器和微處
    的頭像 發(fā)表于 11-22 09:52 ?1315次閱讀
    <b class='flag-5'>STM32CUBEIDE</b>(1)----安裝

    應(yīng)用筆記|巧用 STM32CubeIDE 編譯警告

    關(guān)鍵字:STM32CubeIDE,warning,編譯警告 目錄預(yù)覽 1 前言 2 巧用 warning 3 小結(jié) 1. 前言 編譯
    的頭像 發(fā)表于 06-29 17:35 ?1443次閱讀
    應(yīng)用筆記|<b class='flag-5'>巧用</b> <b class='flag-5'>STM32CubeIDE</b> <b class='flag-5'>之</b><b class='flag-5'>編譯</b><b class='flag-5'>警告</b>

    STM32CubeIDE安裝指南

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE安裝指南.pdf》資料免費下載
    發(fā)表于 08-01 15:44 ?6次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝指南

    STM32CubeIDE實用技巧配置Heap空間

    STM32CubeIDE實用技巧配置Heap空間
    的頭像 發(fā)表于 10-31 17:30 ?1155次閱讀
    <b class='flag-5'>STM32CubeIDE</b>實用技巧<b class='flag-5'>之</b>配置Heap空間

    STM32CubeIDE實用技巧配置堆空間

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE實用技巧配置堆空間.pdf》資料免費下載
    發(fā)表于 09-19 15:07 ?8次下載
    <b class='flag-5'>STM32CubeIDE</b>實用技巧<b class='flag-5'>之</b>配置堆空間

    STM32CubeIDE實用技巧ld鏈接文件

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE實用技巧ld鏈接文件.pdf》資料免費下載
    發(fā)表于 09-20 10:31 ?2次下載
    <b class='flag-5'>STM32CubeIDE</b>實用技巧<b class='flag-5'>之</b>ld鏈接文件

    巧用編譯編譯警告

    STM32CubeIDE中,我們可以通過主動warning(甚至error)的方式來通知工程師,使得一些容易遺漏的配置得到重視。例如,在釋放參考代碼給客戶時,希望客戶注意到里面的項目名稱和項目版本
    的頭像 發(fā)表于 08-30 11:46 ?368次閱讀
    <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>