郝強(qiáng)
Research and Application of Embedded Software Development Method
HAO Qiang
(Department of Computer Science, Jinan Vocational College, Jinan 250014, China)
【摘? 要】嵌入式軟件是計(jì)算機(jī)中常用到的軟件,目前被廣泛應(yīng)用在社會生產(chǎn)和生活的各個領(lǐng)域。嵌入式軟件相比于其他軟件具有較多的優(yōu)勢,如軟件代碼規(guī)模小、反應(yīng)速度快,不僅可以在很大程度上提高軟件開發(fā)的效率,還能夠滿足軟件設(shè)計(jì)的基本要求。論文首先分析了嵌入式軟件開發(fā)的方法,闡述了嵌入式軟件的主要開發(fā)技術(shù),探索了嵌入式軟件的開發(fā)環(huán)境,最后談?wù)摿饲度胧杰浖_發(fā)流程。
【Abstract】Embedded software is often used in computer software, is widely used in the social production and life of various fields. Compared with other software, embedded software has many advantages, such as small software code size and fast response speed, which can not only greatly improve the efficiency of software development, but also meet the basic requirements of software design. This paper firstly analyzes the development methods of embedded software, expounds the main development technologies of embedded software, explores the development environment of embedded software, and finally discusses the development process of embedded software.
【關(guān)鍵詞】嵌入式;軟件開發(fā);計(jì)算機(jī)技術(shù);開發(fā)環(huán)境
【Keywords】embedded; software development; computer technology; development environment
【中圖分類號】TP311.5? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻(xiàn)標(biāo)志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文章編號】1673-1069(2020)05-0176-02
1 引言
嵌入式軟件目前已經(jīng)被廣泛應(yīng)用到各個領(lǐng)域,如航空航天、醫(yī)療衛(wèi)生、電子通訊、汽車電子控制、網(wǎng)絡(luò)電視、智能手機(jī)、智能家電等。嵌入式軟件的發(fā)展已經(jīng)有了很長的一段歷史,初期的應(yīng)用主要集中在軍事、航空以及工業(yè)控制等領(lǐng)域。20世紀(jì)90年代以后,信息技術(shù)和互聯(lián)網(wǎng)技術(shù)獲得不斷的發(fā)展,嵌入式軟件開始被應(yīng)用到人們的生活中[1]。同時,嵌入式系統(tǒng)具有專業(yè)性、實(shí)時性的特點(diǎn),作為比較常規(guī)性的軟件,其也具有著一定的特殊性。在開發(fā)嵌入式軟件時,需要遵循一定的開發(fā)原則,并依照相應(yīng)的流程,設(shè)計(jì)出科學(xué)合理的嵌入式軟件開發(fā)方案,以確保軟件質(zhì)量和效率。
2 嵌入式軟件開發(fā)方法
嵌入式軟件的開發(fā)方法主要有三種,分別是結(jié)構(gòu)化設(shè)計(jì)方法、面向?qū)ο笤O(shè)計(jì)方法以及基于構(gòu)件的設(shè)計(jì)方法。
2.1 結(jié)構(gòu)化設(shè)計(jì)方法
嵌入式有多個設(shè)計(jì)方法,而結(jié)構(gòu)化的設(shè)計(jì)方法是比較廣泛應(yīng)用的一種設(shè)計(jì)方法,相比于其他設(shè)計(jì)方法,這種設(shè)計(jì)方法有著一定的優(yōu)勢[2]。結(jié)構(gòu)化的方法還可以分為兩種類型,分別是單任務(wù)結(jié)構(gòu)化設(shè)計(jì)方法以及多任務(wù)的結(jié)構(gòu)化設(shè)計(jì)方法。單任務(wù)結(jié)構(gòu)方法的核心是遵循結(jié)構(gòu)化的設(shè)計(jì)原則,對每個事件進(jìn)行有序的處理,之后再循環(huán)調(diào)用各個模塊;多任務(wù)的結(jié)構(gòu)化設(shè)計(jì)方法,是先對模塊進(jìn)行劃分,再進(jìn)行綜合。這些模塊需要被綜合分配到多個任務(wù)中去,并在多任務(wù)的環(huán)境下運(yùn)行[3]。這種設(shè)計(jì)方法對硬件性能要求比較高。
2.2 面向?qū)ο笤O(shè)計(jì)方法
面向?qū)ο笤O(shè)計(jì)方法符合人們的思考方式,與多任務(wù)的設(shè)計(jì)方法有著較大的區(qū)別。面向?qū)ο笤O(shè)計(jì)方法,會將操作的數(shù)據(jù)放于實(shí)體中進(jìn)行密封。如果想要訪問對象,就要借助于信息。這樣的設(shè)計(jì)方式,安全系數(shù)比較高。同時面向?qū)ο蟮脑O(shè)計(jì)方法能夠?qū)Υ笠?guī)模的應(yīng)用模式進(jìn)行捕捉,在一定程度上,增強(qiáng)了軟件系統(tǒng)結(jié)構(gòu)的重用性,在實(shí)現(xiàn)軟件的維護(hù)性、重用性以及拓展性方面有著較大的作用。
2.3 基于構(gòu)件的設(shè)計(jì)方法
立足于構(gòu)件化的設(shè)計(jì)方法更加重視構(gòu)建對軟件的重要性,重視軟件的體系結(jié)構(gòu)。那么這種設(shè)計(jì)方法具有一定的獨(dú)特性,強(qiáng)調(diào)構(gòu)件的實(shí)現(xiàn)目的所運(yùn)用的方法和手段。其獨(dú)立性、重用性是構(gòu)件的兩個突出的特點(diǎn)。重用性反映了構(gòu)件對于軟件的重要性,構(gòu)件實(shí)現(xiàn)目的手段則反映了它的獨(dú)立性特點(diǎn)[4]。
3 嵌入式軟件的主要開發(fā)技術(shù)
嵌入式軟件的開發(fā)技術(shù)主要有兩種,分別是交叉開發(fā)技術(shù)和IP構(gòu)件技術(shù),這兩種技術(shù)是目前比較常用的開發(fā)技術(shù)[5]。
3.1 交叉開發(fā)技術(shù)
與其他的計(jì)算機(jī)軟件相比,嵌入式軟件并不是完全進(jìn)行自主開發(fā)的。在進(jìn)行嵌入式軟件開發(fā)中,目標(biāo)機(jī)需要與宿主機(jī)之間進(jìn)行任務(wù)的相互分配。編譯、鏈接、定址等是宿主機(jī)需要完成的任務(wù),而嵌入式軟件的實(shí)際運(yùn)行平臺則是目標(biāo)機(jī)[6]。開展編譯、鏈接以及定址的過程能夠?qū)?yīng)用程序轉(zhuǎn)變成相應(yīng)的二進(jìn)制代碼,這些代碼能夠在目標(biāo)機(jī)上開展工作。編譯過程是由交叉編譯器來完成的,在編譯中,會形成一些目標(biāo)文件,而通過鏈接過程,將編譯中的目標(biāo)文件變成指定的目標(biāo)文件。定址就是將物理存儲器地址指定到目標(biāo)文件相對偏移處。通過這一系列的過程,最后在目標(biāo)機(jī)上進(jìn)行軟件的運(yùn)行工作。
3.2 IP構(gòu)件技術(shù)
構(gòu)件技術(shù)也就是我們所說的組件技術(shù)。IP構(gòu)件庫技術(shù)作為嵌入式軟件的開發(fā)技術(shù)之一,應(yīng)用越來越廣泛。IP核(Intellectual Property KernelS)是單一芯片系統(tǒng)的核心,而單一芯片系統(tǒng)(SOC, SystemonChip)也是嵌入式系統(tǒng)實(shí)現(xiàn)的最好方式。IP核包含了軟件核、硬件核以及固件核的內(nèi)容。硬件核也被稱為MPU核或者是DSP核,軟件核即是代碼單元。
4 嵌入式軟件的開發(fā)環(huán)境
嵌入式軟件一般是在交叉的開發(fā)環(huán)境下進(jìn)行的,這樣的運(yùn)行環(huán)境能夠讓軟件開發(fā)過程中更加穩(wěn)定、可靠和安全,在很大程度上提升了軟件開發(fā)的質(zhì)量和效率,同時也使得軟件開發(fā)的難度和程度大大降低。嵌入式軟件的交叉開發(fā)環(huán)境,反映了用于編譯、鏈接、調(diào)試應(yīng)用程序的代碼環(huán)境,與運(yùn)行應(yīng)用程序的代碼環(huán)境是有差異的,且在不同的設(shè)備裝置上存在。其中,宿主機(jī)是用于編譯、鏈接、調(diào)試環(huán)境的工具設(shè)備,目標(biāo)機(jī)則負(fù)責(zé)代碼的運(yùn)行。
宿主機(jī)與目標(biāo)機(jī)共同構(gòu)成了交叉開發(fā)環(huán)境,且兩者之間存在著邏輯上的鏈接和物理上的鏈接。物理鏈接就是通過物理線路,通過串口、以太網(wǎng)口,與OCD的方式相鏈接;邏輯鏈接則是宿主機(jī)與目標(biāo)機(jī)之間的通信鏈接,這種通信鏈接是通過通信協(xié)議實(shí)現(xiàn)的。宿主機(jī)被用于計(jì)算機(jī)的嵌入式系統(tǒng)的開發(fā)。眾所周知,計(jì)算機(jī)軟件的資源比較豐富,桌面操作系統(tǒng)較為強(qiáng)大,開發(fā)工具多種多樣。這些都能為宿主機(jī)中的編譯、鏈接、調(diào)試、測試等提供較好的支持。目標(biāo)機(jī)則是為軟件運(yùn)行提供工作環(huán)境,它的主要作用是對宿主機(jī)發(fā)出的指令進(jìn)行接收、讀取和執(zhí)行,如對內(nèi)存進(jìn)行讀取寫入,再將運(yùn)行的結(jié)果傳達(dá)給宿主機(jī),配合宿主機(jī)各個程序的工作。嵌入式軟件的開發(fā)過程需要由物理鏈接與邏輯鏈接得以實(shí)現(xiàn)。
5 嵌入式軟件開發(fā)流程
通常情況下,嵌入式軟件的開發(fā)與其他軟件開發(fā)的流程存在著很大的相似性,過程主要由五部分構(gòu)成,它們是需求分析、總體規(guī)劃設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序編碼和程序測試。在軟件開發(fā)的起始階段,應(yīng)該對市場的需求進(jìn)行調(diào)研和分析,并結(jié)合所獲取的市場信息,對所執(zhí)行的項(xiàng)目編寫相應(yīng)的建議書,并認(rèn)真研究項(xiàng)目的可行性,之后進(jìn)行項(xiàng)目任務(wù)書的發(fā)布,并組建相應(yīng)的開發(fā)隊(duì)伍;對項(xiàng)目的總體規(guī)劃,需要建立在對軟件需求分析的基礎(chǔ)之上,并做好風(fēng)險控制,編制項(xiàng)目計(jì)劃時,以確保嵌入式軟件開發(fā)的合理性和科學(xué)性;關(guān)于系統(tǒng)的設(shè)計(jì)工作,需要對評審結(jié)果進(jìn)行充分的分析,并且編制有效的軟硬件設(shè)計(jì)文檔;當(dāng)嵌入式軟件總體設(shè)計(jì)工作完成后,則要進(jìn)入程序編碼階段的工作,并依據(jù)一定的程序,對之后的工作進(jìn)行測試以及調(diào)試。同時,嵌入式軟件的開發(fā),需要結(jié)合軟件開發(fā)的具體情況,選擇合理的開發(fā)工具,確保軟件開發(fā)的質(zhì)量和效率。
6 結(jié)語
總而言之,嵌入式軟件有著較多的優(yōu)勢,目前被廣泛應(yīng)用到社會的各個領(lǐng)域中,逐漸普及開來,有著廣闊的發(fā)展前景。嵌入式軟件有著多種開發(fā)方法,主要的開發(fā)設(shè)計(jì)方法有結(jié)構(gòu)化設(shè)計(jì)方法、面向?qū)ο笤O(shè)計(jì)方法以及基于構(gòu)件的設(shè)計(jì)方法。嵌入式軟件的開發(fā)流程主要有需求分析、總體規(guī)劃設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序編碼和程序測試。通過這五個過程,實(shí)現(xiàn)嵌入式軟件開發(fā)進(jìn)程。而在具體的開發(fā)過程中,需要結(jié)合軟件和市場的實(shí)際情況,確保嵌入式軟件的整體質(zhì)量和效果的提升。
【參考文獻(xiàn)】
【1】楊明東.嵌入式軟件開發(fā)平臺中的文件系統(tǒng)封裝機(jī)制[J].信息通信,2018(05):6.
【2】王浩,吳曉玲.基于組件的嵌入式軟件開發(fā)方法相關(guān)分析[J].信息與電腦(理論版),2018(17):41-42.
【3】張迪.嵌入式軟件開發(fā)的關(guān)鍵技術(shù)[J].電子技術(shù)與軟件工程,2017(4):55.
【4】殷靜,羅西,杭佳祺.如何做好嵌入式軟件開發(fā)測試[J].數(shù)字技術(shù)與應(yīng)用,2017(8):214-215.
【5】王濤.嵌入式軟件技術(shù)現(xiàn)狀及發(fā)展前景[J].中國新通信,2017,19(20):40.
【6】劉玉軍,馮飛,曹樂.一種航空機(jī)載嵌入式軟件安全性評價方法研究[J].計(jì)算機(jī)測量與控制,2020,28(3):255-259.