- 基于STM32的嵌入式系統設計與實踐
- 鐘佩思 徐東方 劉梅編著
- 2173字
- 2021-03-12 20:28:38
3.1 多種多樣的開發工具
3.1.1 開發工具的類別與選擇
在設計和開發STM32嵌入式系統之前,開發者應先選擇一款合適的開發工具。隨著微控制器的不斷發展,涌現出了眾多的開發工具,以支持各種微控制器的系統設計與開發工作。新一代基于CortexM3內核的微控制器促使大部分的開發工具開始支持Thumb-2指令集,使微控制器的開發應用可以更加方便地在C語言環境中完成。當前應用較為廣泛的開發工具主要有GCC、Greenhills、Keil、IAR和Tasking等,這些開發工具都很容易獲取,并且有些還是免費且開源的。
目前眾多的微控制器開發工具百花齊放,各有所長,很難分出優劣。在選用開發工具時,一般建議選用芯片廠商推薦的開發工具。但是由于開發工具種類眾多,除了芯片廠商推薦的開發工具,開發者也可以有其他選擇。當前的開發工具主要可以分為兩大類,一類是免費且開源的,具有“大眾”性質的開發工具;另一類是收費的,具有“專業”性質的商業開發工具。
現階段,免費開發工具的主要代表是基于GCC或GNU編譯器的開發工具,這兩種編譯器是完全免費且開源的,可以免費下載,并在任何場合都可以放心地使用。目前GCC編譯器已經被整合到眾多的商業集成開發環境(IDE)和調試工具中,因此,涌現出了許多價廉的開發工具和評估開發板。GCC編譯器的可靠性與穩定性較好,但是相對商業平臺而言,它生成代碼的效率要低一些,而且基于GCC編譯器的開發工具在使用過程中遇到問題時,無法獲得直接的技術支持,這容易導致嵌入式系統的開發進度受阻。
ARM Real View是ARM公司自行推出的產品,它作為商業開發工具而備受關注。它的功能強大,在所有開發工具中具有壓倒性的優勢,但是它高昂的價格也令許多嵌入式系統開發者望而卻步。
Real View編譯器是ARM Real View IDE系列組件之一,起初只在片上操作系統領域應用較多,沒有為微控制器的開發提供很好的支持。但是在2006年2月,Real View編譯器被整合進了Keil MDK,形成了一種微控制器開發工具(ARM Microcontroller Development Kit,ARM MDK),從而在微控制器開發領域大展風采。Real View編譯器編譯的代碼小、性能高,經過不斷的發展與優化,已經成為當前業界最優秀的編譯器之一。
Keil MDK是一款完全為基于ARM內核的微控制器而打造的開發工具,它的功能更加完善,并為開發者提供了完善的工具集,易于使用。因此,后面均以Keil MDK為基礎對STM32嵌入式系統的設計與實踐進行講解。除了Keil MDK開發工具,瑞典IAR公司的Embedded Workbench for ARM集成開發工具和法國Raisonance公司的RKit-ARM開發環境等也是不錯的選擇。
一般而言,簡單的嵌入式系統設計不一定要選用商業開發工具,但如果要想實現系統開發的標準化,則選用商業開發工具是值得的,因為選用商業開發工具可以得到更好、更專業的技術支持,從而縮短系統的開發周期。
3.1.2 Keil MDK的性能優勢
Keil MDK是由德國KEIL公司開發的,是ARM公司目前最新推出的針對各種嵌入式微控制器的軟件開發工具。目前Keil MDK的最新版本為MDK5.29,該版本集成了業內領先的技術,包括μVision5集成開發環境與Real View編譯器等。
Keil MDK支持ARM7、ARM9和最新的Cortex-M系列內核微控制器,支持自動配置啟動代碼,集成FLASH編程模塊、強大的Simulation設備模擬和性能分析等單元,出眾的性價比使得Keil MDK開發工具迅速成為ARM軟件開發工具的標準。目前,Keil MDK在我國ARM開發工具市場的占有率在90%以上。Keil MDK主要能夠為開發者提供以下開發優勢。
(1)啟動代碼生成向導。啟動代碼和系統硬件結合緊密,只有使用匯編語言才能編寫,因此成為許多開發者難以跨越的門檻。Keil MDK的μVision5工具可以自動生成完善的啟動代碼,并提供圖形化的窗口,方便修改。無論是對于初學者還是對于有經驗的開發者而言,都能大大節省開發時間,提高系統設計效率。
(2)設備模擬器。Keil MDK的設備模擬器可以仿真整個目標硬件,如快速指令集仿真、外部信號和I/O端口仿真、中斷過程仿真、片內外圍設備仿真等。這使開發者在沒有硬件的情況下也能進行完整的軟件設計開發與調試工作,軟硬件開發可以同步進行,大大縮短了開發周期。
(3)性能分析器。Keil MDK的性能分析器可輔助開發者查看代碼覆蓋情況、程序運行時間、函數調用次數等高端控制功能,幫助開發者輕松地進行代碼優化,提高嵌入式系統設計開發的質量。
(4)Real View編譯器。Keil MDK的Real View編譯器與ARM公司以前的工具包ADS相比,其代碼尺寸比ADS1.2編譯器的代碼尺寸小10%,其代碼性能也比ADS1.2編譯器的代碼性能提高了至少20%。
(5)ULINK2/Pro仿真器和FLASH編程模塊。Keil MDK無須尋求第三方編程軟硬件的支持,通過配套的ULINK2仿真器與FLASH編程工具,可以輕松地實現CPU片內FLASH和外擴FLASH燒寫,并支持用戶自行添加FLASH編程算法,而且支持FLASH的整片刪除、扇區刪除、編程前自動刪除和編程后自動校驗等功能。
(6)Cortex系列內核。Cortex系列內核具備高性能和低成本等優點,是ARM公司最新推出的微控制器內核,是單片機應用的熱點和主流。而Keil MDK是第一款支持Cortex系列內核開發的開發工具,并為開發者提供了完善的工具集,因此,可以用它設計與開發基于Cortex-M3內核的STM32嵌入式系統。
(7)提供專業的本地化技術支持和服務。Keil MDK的國內用戶可以享受專業的本地化技術支持和服務,如電話、E-mail、論壇和中文技術文檔等,這將為開發者設計出更有競爭力的產品提供更多的助力。
此外,Keil MDK還具有自己的實時操作系統(RTOS),即RTX。傳統的8位或16位單片機往往不適合使用實時操作系統,但Cortex-M3內核除了為用戶提供更強勁的性能、更高的性價比,還具備對小型操作系統的良好支持,因此在設計和開發STM32嵌入式系統時,開發者可以在Keil MDK上使用RTOS。使用RTOS可以為工程組織提供良好的結構,并提高代碼的重復使用率,使程序調試更加容易,項目管理更加簡單。