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