嵌入式軟件開(kāi)發(fā)流程(嵌入式工程師)
本篇文章給大家談?wù)勄度胧杰浖_(kāi)發(fā)流程,以及嵌入式工程師對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、嵌入式系統(tǒng)的設(shè)計(jì)流程是什么?
- 2、嵌入式軟件開(kāi)發(fā)方法
- 3、什么是嵌入式軟件開(kāi)發(fā)
- 4、嵌入式系統(tǒng)的應(yīng)用和開(kāi)發(fā)
嵌入式系統(tǒng)的設(shè)計(jì)流程是什么?
一、嵌入式系統(tǒng)開(kāi)發(fā)流程?
1、系統(tǒng)需求分析:根據(jù)需求,確定設(shè)計(jì)任務(wù)和設(shè)計(jì)目標(biāo),指定設(shè)計(jì)說(shuō)明書(shū)。?
2、體系結(jié)構(gòu)設(shè)計(jì):描述系統(tǒng)如何實(shí)現(xiàn)所述的功能需求,包括對(duì)硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選型。
3、硬件/軟件協(xié)同設(shè)計(jì):基于體系結(jié)構(gòu)的設(shè)計(jì)結(jié)果,對(duì)系統(tǒng)的硬件、軟件進(jìn)行詳細(xì)設(shè)計(jì)。一般情況下嵌入式系統(tǒng)設(shè)計(jì)的工作大部分都集中在軟件設(shè)計(jì)上,現(xiàn)代軟件工程經(jīng)常采用的方法是面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)和模塊化設(shè)計(jì)。?
4、系統(tǒng)集成:把系統(tǒng)的硬件、軟件和執(zhí)行裝置集成在一起進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)設(shè)計(jì)過(guò)程中的不足之處。
5、系統(tǒng)測(cè)試:對(duì)設(shè)計(jì)好的系統(tǒng)進(jìn)行測(cè)試,檢驗(yàn)系統(tǒng)是否滿(mǎn)足實(shí)際需求。
?
二、嵌入式軟件開(kāi)發(fā)?
嵌入式軟件開(kāi)發(fā)的一般流程為需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)和軟件測(cè)試。與一般的軟件開(kāi)發(fā)區(qū)別主要在于軟件實(shí)現(xiàn)的編譯和調(diào)試兩部分即為交叉編譯與交叉調(diào)試。
嵌入式軟件開(kāi)發(fā)方法
根據(jù)使用的開(kāi)發(fā)工具套件不同,軟件開(kāi)發(fā)流程會(huì)有差異,但主要步驟大致相同。對(duì)于使用宿主機(jī)(PC)的集成化開(kāi)發(fā)環(huán)境,軟件開(kāi)發(fā)流程一般包括創(chuàng)建項(xiàng)目、添加文件、編譯連接、下載調(diào)試等步驟,如下圖所示。
圖1:嵌入式軟件開(kāi)發(fā)流程
(1)創(chuàng)建工程項(xiàng)目:在配置硬件設(shè)備和安裝軟件開(kāi)發(fā)工具后,就可以開(kāi)始創(chuàng)建工程項(xiàng)目,通常需要選擇項(xiàng)目文件的存儲(chǔ)位置及目標(biāo)處理器。
(2)添加項(xiàng)目文件:開(kāi)發(fā)人員需要?jiǎng)?chuàng)建源程序文件,編寫(xiě)應(yīng)用程序代碼,并添加到工程項(xiàng)目中;還將使用設(shè)備驅(qū)動(dòng)程序的庫(kù)文件,包括啟動(dòng)代碼、頭文件和一些外設(shè)控制函數(shù),甚至中間件(Middleware)等。這些文件也需要添加到項(xiàng)目中。
(3)配置工程選項(xiàng):源于硬件設(shè)備的多樣性和軟件工具的復(fù)雜性,工程項(xiàng)目提供了不少選項(xiàng),需要開(kāi)發(fā)人員配置,如輸出文件類(lèi)型和位置、編譯選項(xiàng)和優(yōu)化類(lèi)型等,還要根據(jù)選用的開(kāi)發(fā)板和在線(xiàn)仿真器,配置代碼調(diào)試和下載選項(xiàng)等。
(4)交叉編譯連接:利用開(kāi)發(fā)軟件工具對(duì)項(xiàng)目的多個(gè)文件分別編譯,生成相應(yīng)的目標(biāo)文件,然后連接生成最終的可執(zhí)行文件映像,以下載到目標(biāo)設(shè)備的文件格式保存。如果編譯連接有錯(cuò)誤,返回修改;如果沒(méi)有錯(cuò)誤,先進(jìn)行軟件模擬運(yùn)行和調(diào)試,再下載到開(kāi)發(fā)板運(yùn)行和調(diào)試。
(5)程序下載:目前,絕大多數(shù)微控制器都使用閃存(Flash Memory)保存程序。創(chuàng)建可執(zhí)行文件映像后,需要使用在線(xiàn)仿真器(或串口、網(wǎng)口)將其下載到微控制器的閃存中,實(shí)現(xiàn)閃存的編程;還可以將可執(zhí)行文件下載到SRAM中運(yùn)行。
(6)運(yùn)行和調(diào)試:程序下載后,可以啟動(dòng)運(yùn)行,看是否正常工作。如果有問(wèn)題,連接在線(xiàn)仿真器,借助軟件開(kāi)發(fā)工具的調(diào)試環(huán)境進(jìn)行斷點(diǎn)和單步調(diào)試,觀察程序操作的詳細(xì)過(guò)程。如果應(yīng)用程序運(yùn)行有錯(cuò)誤,返回修改。
什么是嵌入式軟件開(kāi)發(fā)
嵌入式軟件開(kāi)發(fā)屬于軟件開(kāi)發(fā)的一種。
嵌入式軟件與嵌入式系統(tǒng)是密不可分,嵌入式軟件是基于嵌入式系統(tǒng)設(shè)計(jì)的軟件,是計(jì)算機(jī)軟件的一種。
嵌入式系統(tǒng)的開(kāi)發(fā)主要分為系統(tǒng)總體開(kāi)發(fā)、嵌入式硬件開(kāi)發(fā)和嵌入式軟件開(kāi)發(fā)3大部分。
嵌入式軟件開(kāi)發(fā)總體流程分為需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)和軟件測(cè)試,嵌入式系統(tǒng)的軟件開(kāi)發(fā),主要是軟件實(shí)現(xiàn)部分,可分為編譯和調(diào)試兩部分,嵌入式軟件開(kāi)發(fā)主要針對(duì)計(jì)算能力有限的CPU進(jìn)行的軟件開(kāi)發(fā)。
嵌入式系統(tǒng)的應(yīng)用和開(kāi)發(fā)
嵌入式系統(tǒng)的應(yīng)用和開(kāi)發(fā)
基于嵌入式系統(tǒng)的具體產(chǎn)品應(yīng)用是計(jì)算機(jī)工程史上的里程碑。深入到了各行各業(yè),其已成為高科技領(lǐng)域中必不可少的工具。 我下面為你整理了關(guān)于嵌入式系統(tǒng)的應(yīng)用和開(kāi)發(fā)的文章,希望對(duì)你有所幫助。
1嵌入式系統(tǒng)簡(jiǎn)介
嵌入式系統(tǒng)可以抽象出一個(gè)典型的組成模型,其可劃分為硬件層、軟件層及功能層。
1.1嵌入式系統(tǒng)定義
嵌入式系統(tǒng)最通用的定義是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪、功能、可靠性、成本、體積、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)[1]。
根據(jù)IEEE9(國(guó)際電氣和電子工程師協(xié)會(huì))的定義,嵌入式系統(tǒng)也可定義為控制監(jiān)視或輔助設(shè)備機(jī)器和車(chē)間運(yùn)行裝置。
嵌入式系統(tǒng)的定義很多,統(tǒng)一起來(lái)很難。對(duì)于其定義有疑問(wèn)的部分研究人員將嵌入式系統(tǒng)定義為:“嵌入式系統(tǒng)是以嵌入式微處理器為內(nèi)核,以微電子技術(shù),計(jì)算機(jī)技術(shù),電子技術(shù)、對(duì)象技術(shù)為基礎(chǔ),軟硬件可根據(jù)對(duì)象需要所設(shè)置,并且嵌入到對(duì)象器件內(nèi),適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專(zhuān)用智能化的控制系統(tǒng)?!盵2]
1.2嵌入式系統(tǒng)的特點(diǎn)
嵌入式系統(tǒng)是面向?qū)I(yè)應(yīng)用領(lǐng)域的,從其應(yīng)用角度分析,具有以下特點(diǎn):
(1)硬件層,是所有軟件的運(yùn)行基礎(chǔ),嵌入式系統(tǒng)至少擁有一個(gè)高性能處理器為硬件平臺(tái)。如ARM處理器。
(2)軟件層,其能擴(kuò)充和充分發(fā)揮硬件層功能。嵌入式系統(tǒng)需有一個(gè)多任務(wù)操作系統(tǒng)的軟件平臺(tái),來(lái)控制管理計(jì)算機(jī)硬件和軟件資源以及合理的組織計(jì)算機(jī)工作流程。如Liunx,UC/OSⅡ等操作系統(tǒng)。
(3)嵌入式系統(tǒng)是先進(jìn)的技術(shù)及資金密集、知識(shí)產(chǎn)業(yè)化不斷創(chuàng)新的集成系統(tǒng)。其將先進(jìn)的電子科學(xué)技術(shù)與各行各業(yè)的具體應(yīng)用相結(jié)合。
(4)是面向用戶(hù)、產(chǎn)品及特定應(yīng)用的。
(5)具有較長(zhǎng)的生命周期。與實(shí)際產(chǎn)品相結(jié)合,并與產(chǎn)品升級(jí)同步進(jìn)行。
(6)對(duì)程序質(zhì)量要求較高。一般都將系統(tǒng)中的軟件固化在存儲(chǔ)器中,大部分都具有較高的實(shí)時(shí)性。
(7)嵌入式系統(tǒng)不具備在其上進(jìn)行進(jìn)一步開(kāi)發(fā)的能力。需要借助專(zhuān)門(mén)的開(kāi)發(fā)工具和環(huán)境來(lái)滿(mǎn)足產(chǎn)品設(shè)計(jì)完成后的程序功能修改工作。
2基于ARM的嵌入式系統(tǒng)技術(shù)應(yīng)用及開(kāi)發(fā)方法
2.1ARM的技術(shù)應(yīng)用特點(diǎn)
ARM(Advanced RISC Machines)是一種嵌入式微處理器,它具有低功耗、低成本、高性能的特點(diǎn),采用RISC體系結(jié)構(gòu),大量使用寄存器,具有高效的指令系統(tǒng),在實(shí)際嵌入式應(yīng)用中,只保留和嵌入式應(yīng)用緊密相關(guān)的功能硬件,去除其他的冗余功能部分,來(lái)實(shí)現(xiàn)嵌入式應(yīng)用的特殊要求[3]?;贏RM微處理器的嵌入式系統(tǒng)不同于單片機(jī)、DSP系統(tǒng),其高性能的特點(diǎn),在硬件部分的電路板設(shè)計(jì)方面是比較困難的,絕大多數(shù)的ARM板都要在4層以上。其實(shí)ARM最關(guān)鍵的是軟件部分的操作系統(tǒng),系統(tǒng)開(kāi)發(fā)應(yīng)更側(cè)重于軟件方面,包括系統(tǒng)裁減,底層驅(qū)動(dòng)和應(yīng)用程序等。
2.2ARM嵌入式系統(tǒng)的開(kāi)發(fā)流程
基于ARM的嵌入式系統(tǒng)設(shè)計(jì)的開(kāi)發(fā)流程如圖1所示。
2.3ARM嵌入式系統(tǒng)的開(kāi)發(fā)方法
(1)建立系統(tǒng)的開(kāi)發(fā)環(huán)境
嵌入式系統(tǒng)資源受限制,如果在其硬件平臺(tái)上直接編寫(xiě)軟件,比較困難。因此根據(jù)其特點(diǎn)須在特定的開(kāi)發(fā)環(huán)境下進(jìn)行。搭建相應(yīng)的軟硬件平臺(tái):在宿主機(jī)(HOST)也就是PC機(jī)上安裝開(kāi)發(fā)工具,并將編寫(xiě)好的軟件程序進(jìn)行交叉編譯生成二進(jìn)制代碼,最后將其移植到目標(biāo)板的特定位置運(yùn)行。這種在宿主機(jī)(HOST)環(huán)境下開(kāi)發(fā),在目標(biāo)板(TARGET)上運(yùn)行的開(kāi)發(fā)模式叫交叉開(kāi)發(fā)模式,交叉開(kāi)發(fā)模型如圖2所示。
(2)Boot Loader引導(dǎo)程序開(kāi)發(fā)
Boot loader是在嵌入式操作系統(tǒng)內(nèi)核運(yùn)行前運(yùn)行的一段程序,與我們經(jīng)常提到的BIOS功能相近,每種體系結(jié)構(gòu)都有與其相匹配的Boot Loader。通過(guò)Boot loader程序的運(yùn)行,可以初始化硬件設(shè)備,建立系統(tǒng)的內(nèi)存空間映射圖,這樣就可以將系統(tǒng)的軟、硬件環(huán)境設(shè)定在一個(gè)合適的狀態(tài),方便于最終調(diào)用操作系統(tǒng)內(nèi)核,并且為運(yùn)行用戶(hù)應(yīng)用程序準(zhǔn)備好正確的環(huán)境。
Boot loader程序由匯編和C程序兩部分組成,程序執(zhí)行過(guò)程也分為匯編和C程序代碼部分兩個(gè)階段。匯編程序與硬件設(shè)備相關(guān),不便移植,第一階段需要完成初始化看門(mén)狗、設(shè)置中斷異常向量表、堆棧、配置存儲(chǔ)器等,之后再跳轉(zhuǎn)到第二階段的C語(yǔ)言程序入口處。C程序代碼部分主要完成初始化本階段所需要的外部設(shè)備,調(diào)用NANDFLASH的API函數(shù),配置SDRAM空間,并將用戶(hù)的`程序代碼從NANDFLASH存儲(chǔ)器中復(fù)制到SDRAM中,最后再跳轉(zhuǎn)到用戶(hù)程序的入口[4]。
3嵌入式技術(shù)的應(yīng)用領(lǐng)域
嵌入式技術(shù)無(wú)處不在,已經(jīng)深入到了生活的各個(gè)領(lǐng)域,為我們的生活帶來(lái)了很大的方便。
(1)無(wú)線(xiàn)通訊領(lǐng)域。特別是智能手機(jī),全球95%的手機(jī)采用了ARM芯片,隨著手機(jī)功能愈像電腦,手機(jī)更需要功能強(qiáng)大的嵌入式芯片?,F(xiàn)在,全球售出的每一部手機(jī)中平均就有2.4塊ARM芯片。
(2)工業(yè)控制領(lǐng)域。基于ARM核的32位微控制器芯片逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,在工業(yè)控制領(lǐng)域發(fā)揮了很大的作用。
(3)網(wǎng)絡(luò)應(yīng)用。網(wǎng)絡(luò)寬帶技術(shù)不斷發(fā)展,基于ARM技術(shù)的ADSL芯片也逐步進(jìn)入競(jìng)爭(zhēng)范圍,并取得一定優(yōu)勢(shì)。而且,語(yǔ)音及視頻處理也應(yīng)用了ARM技術(shù),同時(shí)對(duì)DSP的應(yīng)用領(lǐng)域提出了新的挑戰(zhàn)。
(4)儀器儀表方面。有智能儀器、智能儀表、醫(yī)療器械、色譜儀、示波器等。
(5)民用方面。如電子玩具、電子字典、游戲機(jī)、錄像機(jī)、復(fù)讀機(jī)、投影儀、照相機(jī)、空調(diào)、冰箱、洗衣機(jī)、調(diào)制解調(diào)器、防盜控制器、激光驅(qū)動(dòng)器、變速控制器、汽車(chē)點(diǎn)火控制器、避雷控制、農(nóng)業(yè)節(jié)水控制系統(tǒng)、保安控制系統(tǒng)等方面。
(6)導(dǎo)航控制方面。如導(dǎo)彈控制、航天導(dǎo)航系統(tǒng)、電子干擾系統(tǒng)等。
(7)數(shù)據(jù)處理方面。如圖文圖表終端、復(fù)印機(jī)、硬盤(pán)驅(qū)動(dòng)器等。
(8)農(nóng)業(yè)交通方面。智能公路(汽車(chē)導(dǎo)航、流量控制、信息監(jiān)測(cè)與汽車(chē)服務(wù))、植物工廠(特種植物工廠、無(wú)土栽培技術(shù)、智能種子工程)、虛擬顯示VR機(jī)器人、信息家電(家用電器的網(wǎng)絡(luò)化)等等。
除此以外,眾多領(lǐng)域都用到了基于ARM微處理器的嵌入式技術(shù),在生活的各個(gè)領(lǐng)域得到了廣泛的應(yīng)用。
;
關(guān)于嵌入式軟件開(kāi)發(fā)流程和嵌入式工程師的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。