嵌入式開發(fā)過程中會使用到各種工具,包括IDE環(huán)境、編譯工具、軟硬件調試工具、操作系統(tǒng)等。根據(jù)項目的需求,往往會選擇來自不同廠商的工具進行組合。如果能非常方便地將這些不同廠商的開發(fā)環(huán)境無縫地配合起來,則可以大大減少不必要的工作,這對于開發(fā)人員而言很重要。下面就細數(shù)一下嵌入式工程師常用到的開發(fā)工具!
從接觸MCS 51單片機開始,很多工程師就會知道Keil軟件。在開發(fā)單片機時,要使用C語言或者匯編語言,但這兩種語言都不能直接輸入到單片機,所以需要一個軟件,把C語言或者匯編語言編譯生成單片機可執(zhí)行的二進制代碼。Keil公司(現(xiàn)在是ARM 公司的一個公司)的軟件恰好提供這樣的功能,并且它還有很多優(yōu)點,比如工程易于管理、自動加載啟動代碼,集編輯、編譯、仿真一體,調試功能強大等。因此,不管是單片機愛好者,還是經(jīng)驗豐富的工程師,都喜歡使用這些軟件。
嵌入式工程師常用的Keil公司旗下的軟件開發(fā)工具
有μVision、RealView、MDK、Keil C51。μVision是一個集成開發(fā)環(huán)境(IDE),和Eclipse類似。它包括工程管理、源代碼編輯、編譯設置、下載調試和模擬仿真等功能,有μVision2、μVision3 、μVision4、μVision5 和μVision6 等幾個版本,它提供一個環(huán)境,讓開發(fā)者易于操作,但并不提供具體的編譯和下載功能,需要軟件開發(fā)者添加。RealView是一系列開發(fā)工具集合的稱呼,包括RVD(RealView Debugger),RVI(RealView ICE),RVT(Real-View Trace),RVDS(RealView Development Suite),RVMDK(RealView Microcontroller Development Kit)這些產(chǎn)品。
MDK (Microcontroller Development Kit),即KeilMDK、RealView MDK或者Keil for ARM。ARM 公司現(xiàn)在統(tǒng)一使用MDK ARM,MDK 的設備數(shù)據(jù)庫中有很多廠商的芯片,是專為微控制器開發(fā)的工具,為滿足基于MCU 進行嵌入式軟件開發(fā)的工程師需求而設計,支持ARM7、ARM9、Cortex M3/M1、Cortex R0/R4等ARM微控制器內核。
Keil C51是基于μVision的IDE,支持絕大部分51內核微控制器開發(fā)工具;Keil C166為基于μVision的 IDE,支持絕大部分XC16x、C16x和ST10等系列微控制器開發(fā)工具;Keil C251基于μVision 的IDE,支持絕大部分基于251核的微控制器開發(fā)工具。
IAR從獨立走向與客戶融合
IAR Embedded Workbench是IAR Systems公司開發(fā)的一套用于編譯和調試嵌入式系統(tǒng)應用程序的開發(fā)工具,支持匯編、C和C++語言。它能夠提供完整的集成開發(fā)環(huán)境,包括工程管理器、編輯器、編譯鏈接工具和CSPY調試器。每個C/C++編譯器不僅包含一般全局性的優(yōu)化,也包含針對特定芯片的低級優(yōu)化,可以充分利用所選芯片的所有特性,確保較小的代碼尺寸。IAR EmbeddedWorkbench能夠支持由不同的芯片制造商生產(chǎn)且種類繁多的8位、16位或32位芯片。
近期,IAR公司就與瑞薩電子合作,將IAR C/C++Complier集成到瑞薩電子e2 studio開發(fā)環(huán)境中。RenesasSynergy Platform 開發(fā)工程師可減少應用代碼占用的內存空間,提高了代碼執(zhí)行速度,并且能夠為Synergy微控制器增加更多功能。除此之外,IAR編譯器生成的代碼執(zhí)行速度快,這樣就能使MCU 較長時間地處于低功耗模式,可延長電池壽命,特別適合物聯(lián)網(wǎng)設備。IAR Systems與瑞薩合作,用戶可直接在e2 studio環(huán)境中使用IAR C/C++ Compiler,同時仍可選擇繼續(xù)使用面向RenesasSynergy IDE的專有IAR Embedded Workbench IDE。
意法半導體開發(fā)工具為MCU安全保駕護航
意法半導體中國微控制器事業(yè)部市場及應用總監(jiān)曹錦東概括了MCU 未來面臨的三個方向:更高的性能;更強的通信能力;更高的安全性,因為只要聯(lián)網(wǎng)就會涉及到安全的問題。針對安全性問題,ST 推出了一款基于ArmCortex M33的STM32產(chǎn)品,支持Trust Zone技術。通過Trust Zone可以實現(xiàn)更高的安全性,且不僅是在微控制器里的安全性,而且還可以提供更多的安全性方面的服務。
要保證系統(tǒng)的安全,光靠硬件是不夠的,還需要做到系統(tǒng)性的安全分析,分析可能會出現(xiàn)哪些威脅或漏洞。意法半導體提供物聯(lián)網(wǎng)安全工具箱,實現(xiàn)了可擴展的嵌入式安全功能,如STM32Trust.CodeProtect,保證用戶代碼安全且完整地寫入可信的STM32產(chǎn)品,包括安全安裝、安全編程;STM32Trust.DataProtect,保護有價值的數(shù)據(jù)不被竊取,包括數(shù)據(jù)保護、關鍵存儲保護;STM32Trust.ExecutionProtect,將應用程序分為可信和不可信兩部分,包括代碼執(zhí)行隔離。
助力嵌入式工程師提高效率的工具
(1) Source Insight
Source Insight是一個面向項目開發(fā)的程序編輯器和代碼瀏覽器,擁有內置的對C/C++、C#和Java等程序的分析,能分析源代碼并在工作的同時動態(tài)維護它自己的符號數(shù)據(jù)庫,并自動顯示有用的上下文信息。
Source Insight不僅僅是一個強大的程序編輯器,還能顯示reference trees,class inheritance diagrams和calltrees。Source Insight提供了最快速的對源代碼的導航和任何程序編輯器的源信息,還提供了快速和革新的訪問源代碼和源信息的能力。
(2) UltraEdit
在嵌入式軟件開發(fā)中不可避免需要查看一些原始數(shù)據(jù),包括不可顯示的字符,UltraEdit的HEX 顯示查看功能能夠很好地解決這個問題,同時,對大文件(比如壓力測試時的log問題)支持也是遠遠好于記事本和寫字板。
UltraEdit是一套功能強大的文本編輯器,可以編輯文本、十六進制、ASCII 碼,完全可以取代記事本,內建英文單詞檢查、C++ 及 VB 指令突顯,可同時編輯多個文件,而且即使開啟很大的文件,速度也不會慢。
(3) Beyond Compare
Beyond Compare是一款功能強大的內容對比工具,可以比較的內容有以下這三種:電腦上兩個目錄的內容;電腦上的目錄和FTP地址的內容;兩個文本檔案的內容(包括 UTF 8、html、Delphi源程序等文本檔案)。
Beyond Compare有內建的HTML檔案瀏覽器,還有支援壓縮包的功能。這些特別的功能可以讓用戶作跨媒體之間進行比較,例如:把現(xiàn)時網(wǎng)站的內容與一個儲存在光碟上的壓縮備份檔案作比較。
(4) TortoiseSVN
TortoiseSVN是開源可視化的集中式代碼版本管理,是Subversion版本控制系統(tǒng)的一個免費開源客戶端,可以超越時間的管理文件和目錄。文件保存在中央版本庫,除了能記住文件和目錄的每次修改以外,版本庫非常像普通的文件服務器,可以將文件恢復到過去的版本,并且可以通過檢查歷史知道數(shù)據(jù)做了哪些修改,誰做的修改。這就是為什么許多人將 Subversion 和版本控制系統(tǒng)看作一種“時間機器”。
(5) Wireshark
Wireshark是一款強大的網(wǎng)絡協(xié)議數(shù)據(jù)報文分析工具,也是深入學習各種網(wǎng)絡協(xié)議必不可少的利器。這是一個網(wǎng)絡封包分析軟件,其擷取網(wǎng)絡封包,并盡可能顯示出最為詳細的網(wǎng)絡封包資料。Wireshark使用WinPCAP作為接口,直接與網(wǎng)卡進行數(shù)據(jù)報文交換。網(wǎng)絡封包分析軟件的功能可想像成“電工技師使用電表來量測電流、電壓、電阻”的工作,只是將場景移植到網(wǎng)絡上,并將電線替換成網(wǎng)絡線。
(6) SSH Secure Shell Client
SSH Secure Shell Client是一種強大安全遠程登錄工具,如果使用虛擬器的方式開發(fā)Android等Linux系統(tǒng),建議使用該工具,避免在圖形界面操作Linux系統(tǒng),減少PC的負載。SSH可以解決口令在網(wǎng)上明文傳輸?shù)膯栴},把所有傳輸?shù)臄?shù)據(jù)進行加密,這樣“中間人”這種攻擊方式就不可能實現(xiàn)了,而且也能夠防止DNS欺騙和IP欺騙。
嵌入式開發(fā)工具作為開發(fā)環(huán)節(jié)的核心裝備,其使用程度直接決定產(chǎn)品的研發(fā)效率。
很多開發(fā)人員局限于使用嵌入式開發(fā)工具的基本功能,卻不懂得如何深層次地使用開發(fā)工具以實現(xiàn)高效的開發(fā)與調試。例如,許多開發(fā)人員在命令行下使用GDB,痛苦地調試嵌入式Linux應用程序,卻不知道基于Eclipse可以搭建圖形化的源碼級調試環(huán)境;又如,用大量的時間一遍遍跟蹤執(zhí)行目標代碼來定位變量被預期之外的代碼修改的問題,殊不知使用數(shù)據(jù)斷點即可定位故障點;再如,為了調試Linux內核,安裝了大量開源調試工具,卻發(fā)現(xiàn)沒有幾樣真正有效。最后不得不在代碼中增加大量輸出信息,試圖使用窮舉的方式定位問題,卻不知道使用JTAG調試器結合通用的IDE,就可以實現(xiàn)Linux內核的可視化源碼級調試。
導致工具使用不夠深入的原因包括:一是不少應用級開發(fā)人員過于把目光集中在問題解決上,寧愿花大量時間使用開發(fā)工具的基本功能進行低效率的開發(fā),卻不愿花時間深入研究開發(fā)工具所蘊含的高效手段或探究高效的分析方法,實際上,許多開發(fā)工具的高級技巧在其文檔中都有體現(xiàn),只是許多技術人員忽略了文檔;二是多數(shù)開發(fā)人員僅僅看到嵌入式開發(fā)工具的基本功能,而沒有意識到其實現(xiàn)機制更值得深入研究,導致無法深入地使用工具。反觀那些系統(tǒng)級開發(fā)人員,尤其是涉及操作系統(tǒng)底層開發(fā)的高級人員,則能較深刻地理解開發(fā)工具的運作機制,并能深入運用。
很多情況下,開發(fā)工具的潛在能力可以提升數(shù)十倍工作效率。如果開發(fā)人員在工作中僅會使用嵌入式開發(fā)工具的基本功能,則是對工具潛在能力的巨大浪費。因此,能夠深入研究嵌入式開發(fā)工具背后的機制并將之熟練運用,標志著開發(fā)人員的技術水平達到了較高的程度。
-
嵌入式
+關注
關注
5198文章
20444瀏覽量
333993 -
51單片機
+關注
關注
278文章
5714瀏覽量
134281 -
keil
+關注
關注
69文章
1230瀏覽量
172629
原文標題:如何利用嵌入式集成開發(fā)工具,讓其更好地服務于設計?
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
嵌入式軟件開發(fā)工具市場新動向:訂閱制趨勢下的中國開發(fā)者選擇
MIKROE與瑞薩簽署多年MCU嵌入式開發(fā)工具支持協(xié)議
什么是嵌入式應用開發(fā)?
恩智浦嵌入式HMI應用開發(fā)工具GUI Guider 1.10.1全新上線
C語言單元測試在嵌入式軟件開發(fā)中的作用及專業(yè)工具的應用
嵌入式開發(fā)工具版本的選擇策略
嵌入式開發(fā)的關鍵點介紹
嵌入式開發(fā)工具的現(xiàn)狀和發(fā)展簡史
嵌入式軟件測試與專業(yè)測試工具的必要性深度解析
新一代嵌入式開發(fā)平臺 AMD嵌入式軟件和工具2025.1版現(xiàn)已推出
AMD 2025.1版嵌入式軟件和工具的新增功能
嵌入式工程師為什么要學QT?
Linux嵌入式和單片機嵌入式的區(qū)別?
IAR開發(fā)平臺升級Arm和RISC-V開發(fā)工具鏈,加速現(xiàn)代嵌入式系統(tǒng)開發(fā)
嵌入式主板開發(fā)詳細指南
嵌入式集成開發(fā)工具該如何讓其更好地服務于設計?
評論