近日,由周立功教授主導(dǎo)撰寫的《嵌入式軟件工程方法與實(shí)踐叢書》前三本,共計(jì)200萬(wàn)字,在全國(guó)嵌入式系統(tǒng)聯(lián)誼會(huì)10周年技術(shù)研討會(huì)上正式發(fā)布,目前已由北京航空航天大學(xué)出版社出版,于京東商城盛大發(fā)售。
JAVA嵌入式軟件具有標(biāo)準(zhǔn)的程序接口和協(xié)議,可解決應(yīng)用互聯(lián)帶來(lái)的各種問(wèn)題,消除不同軟件、硬件系統(tǒng)之間的異構(gòu)問(wèn)題,將Java技術(shù)應(yīng)用到無(wú)線數(shù)傳終端產(chǎn)品中主要具有以下幾個(gè)方面的好處:可以容易地連接到Internet,這樣系統(tǒng)變成了開放的,提高了設(shè)備的可訪問(wèn)性;使工業(yè)控制系統(tǒng)中的設(shè)備可以與家用消費(fèi)電器和自動(dòng)化設(shè)備通信,增強(qiáng)設(shè)備的功能
設(shè)計(jì)開發(fā)“導(dǎo)彈仿真器嵌入式組件”是成功完成某型產(chǎn)品設(shè)計(jì)定型的一項(xiàng)核心環(huán)節(jié)。文章以介紹系統(tǒng)的設(shè)計(jì)需求為出發(fā)點(diǎn),接合軟硬件開發(fā)過(guò)程中遇到的難點(diǎn)問(wèn)題,有針對(duì)性的總結(jié)了在建立嵌入式系統(tǒng)硬件框架、ARINC429通訊接口設(shè)計(jì)、FPGA邏輯設(shè)計(jì)、以及嵌入式軟件開發(fā)與實(shí)時(shí)性優(yōu)化等過(guò)程中的一些經(jīng)驗(yàn)和技術(shù)途徑。特別是在設(shè)計(jì)系統(tǒng)中斷服務(wù)程序時(shí),創(chuàng)造性的提出了在定點(diǎn)DSP環(huán)境下依托硬件平臺(tái)實(shí)現(xiàn)高效數(shù)值運(yùn)算的若干方法,對(duì)于滿足系統(tǒng)實(shí)時(shí)性處理要求等方面具有一定的應(yīng)用價(jià)值。
嵌入式系統(tǒng)是整合了計(jì)算機(jī)硬件和軟件的集合體,它是通過(guò)可編程器件的計(jì)算和控制能力完成特定功能的系統(tǒng)。越來(lái)越多的嵌入式系統(tǒng)要求有連接網(wǎng)絡(luò)、多媒體信息處理和無(wú)線移動(dòng)通信的能力。然而,飛速發(fā)展不斷有突破的嵌入式系統(tǒng)硬件技術(shù)與相對(duì)發(fā)展較慢的軟件技術(shù)形成明顯對(duì)比。
人們對(duì)嵌入式系統(tǒng)軟件的質(zhì)量提出了更高的要求,而作為保證軟件質(zhì)量最有效手段的測(cè)試技術(shù),也越來(lái)越受到關(guān)注。目 前嵌入式軟件的開發(fā)語(yǔ)言以C等高級(jí)語(yǔ)言為主,因此,對(duì)這些高級(jí)語(yǔ)言的測(cè)試顯得尤為重要.
設(shè)計(jì)和開發(fā)工作需要設(shè)立里程碑。每個(gè)里程碑結(jié)束前都需要進(jìn)行評(píng)審工作。由于嵌入式軟件的運(yùn)行環(huán)境不同,受到很大的限制,所以在進(jìn)行開發(fā)之前需要進(jìn)行編程規(guī)范工作,編碼的時(shí)候需要嚴(yán)格按照編碼要求進(jìn)行工作,每一個(gè)條款都需要認(rèn)真執(zhí)行和審查。
分析了嵌入式軟件的特點(diǎn)及測(cè)試方法;針對(duì)嵌入式軟件的特點(diǎn),提出了嵌入式軟件系統(tǒng)測(cè)試中具有交互式錯(cuò)誤檢測(cè)定位功能的仿真系統(tǒng)架構(gòu)設(shè)計(jì)模型,并結(jié)合鐵路微機(jī)聯(lián)鎖系統(tǒng)的測(cè)試實(shí)例進(jìn)行分析。
嵌入式軟件以其附加值高、創(chuàng)新能力強(qiáng)的優(yōu)勢(shì)在輻射和帶動(dòng)產(chǎn)業(yè)結(jié)構(gòu)優(yōu)化、產(chǎn)業(yè)層次提升的過(guò)程中正發(fā)揮強(qiáng)大的催化作用。
究竟選擇多任務(wù)還是單任務(wù)方式,依賴于軟件的體系是否龐大。例如,絕大多數(shù)手機(jī)程序都是多任務(wù)的,但也有一些小靈通的協(xié)議棧是單任務(wù)的,沒有操作系統(tǒng),它們的主程序輪流調(diào)用各個(gè)軟件模塊的處理程序,模擬多任務(wù)環(huán)境。
本文提出在嵌入式實(shí)時(shí)操作系統(tǒng)上建立實(shí)時(shí)多任務(wù)軟件系統(tǒng)時(shí),使用軟總線提供數(shù)據(jù)驅(qū)動(dòng)層以處理多任務(wù)間共享資源的構(gòu)架方式。該方案封裝各種共享資源的操作,在操作系統(tǒng)上構(gòu)建使資源對(duì)于其他系統(tǒng)任務(wù)模塊構(gòu)建者透明的數(shù)據(jù)驅(qū)動(dòng)接口。實(shí)驗(yàn)結(jié)果表明該方案能較好的為各任務(wù)進(jìn)程提供共享資源建立和使用的接口,同時(shí)有效地屏蔽由于進(jìn)程資源共享與進(jìn)程獨(dú)立性的矛盾而可能產(chǎn)生的錯(cuò)誤。
針對(duì)目前嵌入式軟件開發(fā)工具的不足,提出利用面向?qū)ο蟮募夹g(shù)設(shè)計(jì)嵌入式軟件IDE,使設(shè)計(jì)人員利用可重用的組件模塊,搭建符合硬件要求的操作系統(tǒng)和軟件系統(tǒng),同時(shí)自動(dòng)初始化編程嵌入式微處理器內(nèi)部各種資源的使用,大大提高開發(fā)效率和軟件質(zhì)量。
由嵌入式系統(tǒng)本身的特性所影響,嵌入式系統(tǒng)開發(fā)與通用系統(tǒng)的開發(fā)有很大的區(qū)別。嵌入式系統(tǒng)的開發(fā)主要分為系統(tǒng)總體開發(fā)、嵌入式硬件開發(fā)和嵌入式軟件開發(fā)3大部分,其總體流程圖如圖4.15所示。
分散加載可以更加方便準(zhǔn)確的指定映像存儲(chǔ)器映射,為映像組件分組和布局提供了全面控制。它能夠描述由載入時(shí)和執(zhí)行時(shí)分散在存儲(chǔ)器映射中的多個(gè)區(qū)組成的復(fù)雜映像映射。雖然,分散加載可以用于簡(jiǎn)單映像,但它通常僅用于具有復(fù)雜存儲(chǔ)器映射的映像。
多數(shù)嵌入式應(yīng)用程序最初都是在原型環(huán)境下開發(fā)的。無(wú)論什么樣的原型仿真環(huán)境與最終產(chǎn)品環(huán)境都是有差異的。因此,考慮如何將嵌入式應(yīng)用程序從其所依賴的開發(fā)工具或調(diào)試環(huán)境中移植到在目標(biāo)硬件上獨(dú)立運(yùn)行是非常重要的。
本章主要介紹嵌入式應(yīng)用程序的設(shè)計(jì)方法。本章中的一些實(shí)例程序是以ARM公司的Realview2.2為開發(fā)平臺(tái)。由于目前嵌入式應(yīng)用環(huán)境相差非常大,這里主要是通過(guò)這些實(shí)例程序來(lái)更直接地介紹嵌入式應(yīng)用系統(tǒng)的開發(fā)方法,具體的代碼因具體的嵌入式環(huán)境不同而有所差異。
默認(rèn)情況下,C庫(kù)利用semihosting機(jī)制來(lái)提供設(shè)備驅(qū)動(dòng)級(jí)的功能,使得主機(jī)能夠用作輸入和輸出設(shè)備。這種機(jī)制對(duì)于嵌入式開發(fā)十分有用,因?yàn)橛糜陂_發(fā)的硬件系統(tǒng)通常沒有最終系統(tǒng)的輸入和輸出設(shè)備。
任何運(yùn)行在實(shí)際硬件上的嵌入式應(yīng)用程序,都必須在啟動(dòng)時(shí)實(shí)現(xiàn)一些基本的系統(tǒng)初始化。本節(jié)將對(duì)此予以詳細(xì)討論。
上一節(jié)介紹了如何使用Scatter文件對(duì)程序的代碼和數(shù)據(jù)進(jìn)行放置。但這些方法只有在外設(shè)和堆棧限制在源文件或頭文件中定義好的前提下才能使用。為了增加程序的靈活性,最好在Scatter文件中設(shè)置這些信息,本節(jié)將介紹這些方法。
嵌入式技術(shù)是計(jì)算機(jī)發(fā)展的趨勢(shì)之一,被廣泛應(yīng)用于工業(yè)和軍事領(lǐng)域。SCADE(高安全性的應(yīng)用程序開發(fā)環(huán)境)為嵌入式軟件提供了一套基于模型的開發(fā)方式。從嵌入式軟件的特點(diǎn)入手,對(duì)基于模型的嵌入式系統(tǒng)軟件開發(fā)技術(shù)進(jìn)行了深入剖析,并給出了一個(gè)基于SCADE的開發(fā)實(shí)例。
隨著時(shí)間演進(jìn),這些微處理器平臺(tái)逐漸整合為特定應(yīng)用標(biāo)準(zhǔn)產(chǎn)品(ASSP)與特殊應(yīng)用集成電路(ASIC),導(dǎo)致半導(dǎo)體制造商必須提供能修改的軟件堆疊上層。設(shè)備特色與功能不斷增加,相關(guān)軟件碼的需求因此呈倍數(shù)成長(zhǎng),進(jìn)而造成多數(shù),甚至可以說(shuō)是全部的核心嵌入軟件任務(wù)都落在芯片制造商的身上。