嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進(jìn)行開發(fā),包括在系統(tǒng)化設(shè)計(jì)指導(dǎo)下的硬件、軟件以及綜合研發(fā)。硬件研發(fā)通常指在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言VerilogHDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。嵌入式軟件研發(fā)就是在一定硬件條件下的系統(tǒng)化設(shè)計(jì)和軟件研發(fā)。主要使用的語(yǔ)言是C/C++、Ada。
嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在ROM中的嵌入式處理器控制板。事實(shí)上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機(jī)、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),有些嵌入式系統(tǒng)都是由單個(gè)程序?qū)崿F(xiàn)整個(gè)控制邏輯。
嵌入式系統(tǒng)的演進(jìn)方向
1. 以單片機(jī)為核心、可編程控制器存在形式
沒有操作系統(tǒng)支持軟件以匯編為主功能單一、處理效率低、存儲(chǔ)容器小,沒有外部接口使用簡(jiǎn)單、價(jià)格低
2. 以嵌入式CPU為基礎(chǔ)、簡(jiǎn)單操作系統(tǒng)為核心
CPU種類多,通用性弱系統(tǒng)開銷小,效率高達(dá)到一定的兼容性,拓展性用戶體驗(yàn)度不高,交互界面不夠友好
3. 以嵌入式操作系統(tǒng)為標(biāo)志
兼容性好,適用于不同平臺(tái)系統(tǒng)開銷小,效率高,具有高度模塊化及拓展性圖形化界面、用戶界面友好豐富的外部接口
4. 以物聯(lián)網(wǎng)為標(biāo)志
將傳感器技術(shù)、互聯(lián)網(wǎng)技術(shù)及傳統(tǒng)嵌入式技術(shù)綜合聯(lián)系小型化、智能化、網(wǎng)絡(luò)化、可視化低功耗、綠色環(huán)保多核技術(shù)、云計(jì)算、虛擬化技術(shù)
嵌入式的兩種開發(fā)模式
非嵌入式的開發(fā)
A類機(jī)編寫源代碼,編譯得到可執(zhí)行程序,發(fā)布給A類機(jī)運(yùn)行。
嵌入式開發(fā)
A類機(jī)編寫源代碼,編譯得到可執(zhí)行程序,發(fā)布給B類機(jī)運(yùn)行,這種編譯模式也叫作交叉編譯。
為什么使用交叉?嵌入式開的CPU比較簡(jiǎn)單,本身無(wú)法搭建開發(fā)環(huán)境,有些甚至操作系統(tǒng)都沒有;交叉編譯器可以用高性能機(jī)器為低性能機(jī)器開發(fā)軟件。交叉編譯必須使用專用的交叉編譯工具。由于可執(zhí)行程序不能在本地運(yùn)行調(diào)試,因此必須使用特殊的方法將可執(zhí)行程序加載到目標(biāo)嵌入式設(shè)備上運(yùn)行及調(diào)試。
嵌入式開發(fā)流程
創(chuàng)建工程項(xiàng)目
在配置硬件設(shè)備和安裝軟件開發(fā)工具后,就可以開始創(chuàng)建工程項(xiàng)目,通常需要選擇項(xiàng)目文件的存儲(chǔ)位置及目標(biāo)處理器。
添加項(xiàng)目文件
開發(fā)人員需要?jiǎng)?chuàng)建源程序文件,編寫應(yīng)用程序代碼,并添加到工程項(xiàng)目中;還將使用設(shè)備驅(qū)動(dòng)程序的庫(kù)文件,包括啟動(dòng)代碼、頭文件和一些外設(shè)控制函數(shù),甚至中間件(Middleware)等。這些文件也需要添加到項(xiàng)目中。
配置工程選項(xiàng)
源于硬件設(shè)備的多樣性和軟件工具的復(fù)雜性,工程項(xiàng)目提供了不少選項(xiàng),需要開發(fā)人員配置,如輸出文件類型和位置、編譯選項(xiàng)和優(yōu)化類型等,還要根據(jù)選用的開發(fā)板和在線仿真器,配置代碼調(diào)試和下載選項(xiàng)等。
交叉編譯連接
利用開發(fā)軟件工具對(duì)項(xiàng)目的多個(gè)文件分別編譯,生成相應(yīng)的目標(biāo)文件,然后連接生成最終的可執(zhí)行文件映像,以下載到目標(biāo)設(shè)備的文件格式保存。如果編譯連接有錯(cuò)誤,返回修改;如果沒有錯(cuò)誤,先進(jìn)行軟件模擬運(yùn)行和調(diào)試,再下載到開發(fā)板運(yùn)行和調(diào)試。
程序下載
目前,絕大多數(shù)微控制器都使用閃存(Flash Memory)保存程序。創(chuàng)建可執(zhí)行文件映像后,需要使用在線仿真器(或串口、網(wǎng)口)將其下載到微控制器的閃存中,實(shí)現(xiàn)閃存的編程;還可以將可執(zhí)行文件下載到SRAM中運(yùn)行。
運(yùn)行和調(diào)試
程序下載后,可以啟動(dòng)運(yùn)行,看是否正常工作。如果有問題,連接在線仿真器,借助軟件開發(fā)工具的調(diào)試環(huán)境進(jìn)行斷點(diǎn)和單步調(diào)試,觀察程序操作的詳細(xì)過程。如果應(yīng)用程序運(yùn)行有錯(cuò)誤,返回修改。
編輯 潤(rùn)揚(yáng)網(wǎng)絡(luò)策劃服務(wù)有限公司