一般來說,程序的編譯要經歷預處理、編譯、匯編以及連接4個階段。無論是 C/C++ C# JAVA,還是各家PLC程序指令,最終都要轉化為CPU
的機器碼執行指令,各種語言工具都是實現功能需求的手段,在不同的場合,需要使用不同的工具:嚴格要求的場合或關鍵代碼,可使用匯編;
操作系統和驅動層使用C編程,中間件或應用層可使用C/C++ C# JAVA編程, 一般工廠自動化場合,可以使用PLC語言編程(屬二次開發)。
GCC(GNU Compiler Collection)是一套功能強大、性能優越的編程語言編譯器。GCC-ARM是GCC的一個分支,主要用于嵌入式平臺中。
對于常用的Cortex-M3/M4,使用GCC-ARM是流行趨勢。可以安裝一個Eclipse IDE for C/C++ Developers,利用免費的GCC-ARM編譯器
完成所有的嵌入式開發工作。
Eclipse IDE for C/C++ Developers
32位 下載地址:
http://mirror.hust.edu.cn/eclips ... -luna-SR2-win32.zip
64位 下載地址:
http://mirror.neu.edu.cn/eclipse ... R2-win32-x86_64.zip
在Eclipse IDE中,可以安裝stm32cubemx 4.7.1插件,不用查看1200-1700頁的技術參考手冊,就能自動生成STM32F103/407底層固件庫
的源文件和頭文件,以及各模塊的初始化代碼,并輸出工程包。
stm32cubemx 4.7.1插件下載地址(可在windows環境下32位eclipse IDE中運行):
http://www.st.com/st-web-ui/stat ... y/stsw-stm32095.zip
stm32cubemx 4.7.1下載地址(在windows中獨立運行):
http://www.st.com/web/en/catalog/tools/PF259242
http://www.st.com/st-web-ui/stat ... ite/stm32cubemx.zip
當然stm32cubemx 4.7.1輸出的工程,可以覆蓋到Eclipse IDE for C/C++ Developers中的一個工程文件夾中,不用調試就可以成功編譯。
對于一個公司來說,不用付錢買昂貴的商業軟件,無盜版風險,無后顧之憂,又能培養高手。
GCC編譯器的警告輸出信息
編譯器的報錯和警告信息對于程序員來說是非常重要的信息,GCC包含完整的出錯檢查和警告提示功能,它可以幫助程序員盡快找出錯誤的或
潛在的錯誤代碼,從而寫過更優美的代碼。
GCC還提供了許多以-W開頭的選項,允許用戶指定輸出某個特定的警告,例如:
-Wcomment:出現注釋嵌套時發出警告。
-Wconversion:如果程序中存在隱式類型轉換,則發出警告。
-Wformat:檢查printf和scanf等格式化輸入輸出函數的格式字符串和參數類型的匹配情況,如果發現不匹配則發出警告。
-Winline:如果函數不能被內聯,則發出警告。
-Wlong-long:如果使用了long long型數據,則發出警告。
-Wmain:如果main函數的返回類型不是int型,或者調用main函數時使用的參數數目不正確,則發出警告。
-Wmissing-declarations:如果定義了全局函數,但卻沒有在頭文件中聲明,則發出警告。
-Wparentheses:在某些情況下,如果忽略掉了括號,則會發出警告。
-Wreturn-type:如果函數定義了返回類型,而默認類型是int型,編譯器會發出警告。
-Wuninitialized:如果使用的自動變量沒有被初始化,則發出警告。
-Wundef:如果在#if宏中使用了未定義的變量做判斷,則發出警告。
-Wunused:如果聲明的變量或static型函數沒有使用,則發出警告。
變量(代碼)級:指定某個變量警告
int a __attribute__ ((unused));
指定該變量為"未使用的".即使這個變量沒有被使用,編譯時也會忽略則個警告輸出.
文件級:在源代碼文件中診斷(忽略/警告)
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wmissing-declarations"
#pragma GCC diagnostic ignored "-Wreturn-type"
診斷-忽略:(關閉警告)
#pragma GCC diagnostic ignored "-Wunused"
#pragma GCC diagnostic ignored "-Wunused-parameter"
診斷-警告:(開啟警告)
#pragma GCC diagnostic warning "-Wunused"
#pragma GCC diagnostic warning "-Wunused-parameter"
診斷-錯誤:(開啟警告-升級為錯誤)
#pragma GCC diagnostic error "-Wunused"
#pragma GCC diagnostic error "-Wunused-parameter"
https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
一、Eclipse IDE for C/C++ Developers由以下安裝包組成:
1.Eclipse IDE for C/C++ Developers
Version: Luna Service Release 2 (4.4.2)
32位 下載地址:
http://mirror.hust.edu.cn/eclips ... -luna-SR2-win32.zip
64位 下載地址:
http://mirror.neu.edu.cn/eclipse ... R2-win32-x86_64.zip
2.gcc arm 編譯器
文件名稱: gcc-arm-none-eabi-4_9-2015q1-20150306-win32.exe
下載地址: https://launchpad.net/gcc-arm-em ... -20150306-win32.exe
3.GNU ARM Eclipse Plug-ins
文件名稱: ilg.gnuarmeclipse.repository-2.8.1-201504061754.zip
下載地址: http://ncu.dl.sourceforge.net/pr ... .1-201504061754.zip
4.gnuarmeclipse-build-tools-win32
文件名稱: gnuarmeclipse-build-tools-win32-2.4-201503242026-setup.exe
下載地址: http://ncu.dl.sourceforge.net/pr ... 503242026-setup.exe
二、新手學習STM32官方例程,可安裝以下軟件
TrueSTUDIO_for_ARM_Lite_win32_v5.3.0_20150316-1058.exe
|