陳元博 邵 健
(曲阜師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,山東 日照 276826)
嵌入式軟件是指嵌入在硬件中的操作系統(tǒng)和開(kāi)發(fā)工具。軟件嵌入式擁有悠久的歷史,從一開(kāi)始主要集中在軍事領(lǐng)域、航空領(lǐng)域以及工業(yè)過(guò)程控制等領(lǐng)域。為適應(yīng)社會(huì)的發(fā)展,經(jīng)過(guò)數(shù)年的發(fā)展,從上世紀(jì)90年代中后期開(kāi)始,隨著互聯(lián)網(wǎng)和通訊信息等事物的興起使嵌入式系統(tǒng)逐漸進(jìn)入了人們的生活當(dāng)中。對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),計(jì)算機(jī)系統(tǒng)是其中心,。嵌入式系統(tǒng)具有實(shí)時(shí)性、專用性以及有限性等特點(diǎn)。與常規(guī)的系統(tǒng)軟件相比,嵌入式軟件的設(shè)計(jì)既有共同的特點(diǎn),又存在特殊性。隨著人們知識(shí)水平的提高以及生活的需要,嵌入式軟件的使用程度越來(lái)越廣泛,因此,對(duì)嵌入式軟件開(kāi)發(fā)的要求越來(lái)越高。為促進(jìn)嵌入式軟件開(kāi)發(fā)的不斷發(fā)展,我們應(yīng)該加深對(duì)嵌入式軟件開(kāi)發(fā)原則及模式的研究。
研究嵌入式軟件開(kāi)發(fā)的原則與模式,應(yīng)從根本出發(fā),既了解嵌入式軟件開(kāi)發(fā)的方法。嵌入式軟件開(kāi)發(fā)的方法包括結(jié)構(gòu)化設(shè)計(jì)方法、面向?qū)ο蟮脑O(shè)計(jì)方法、基于構(gòu)件的設(shè)計(jì)方法等。
作為各種設(shè)計(jì)方法中使用最廣泛的設(shè)計(jì)方法,結(jié)構(gòu)化設(shè)計(jì)方法有著獨(dú)特的自身優(yōu)勢(shì)。分為兩種不同的設(shè)計(jì)方法。一是單任務(wù)的結(jié)構(gòu)化設(shè)計(jì)方法,它的核心是根據(jù)結(jié)構(gòu)化的設(shè)計(jì)原則,將各個(gè)時(shí)間的處理模式驚醒較好的處理,然后循環(huán)調(diào)用。二是多任務(wù)的結(jié)構(gòu)化設(shè)計(jì)方法,它是先將模塊進(jìn)行劃分,然后將模塊進(jìn)行綜合。但是,多任務(wù)的結(jié)構(gòu)化設(shè)計(jì)方法要求過(guò)高,因此,無(wú)法在嵌入式軟件中使用。
面向?qū)ο笤O(shè)計(jì)方法符合人們的思考方式,與多任務(wù)設(shè)計(jì)方法不同,它將數(shù)據(jù)與數(shù)據(jù)上的操作密封于實(shí)體中,想要訪問(wèn)對(duì)象,只能通過(guò)消息的方式,這相對(duì)增加了安全系數(shù)。另外,面向?qū)ο蟮脑O(shè)計(jì)方法可以捕捉大規(guī)模應(yīng)用的設(shè)計(jì)模式,將軟件體系結(jié)構(gòu)的重用性大大提高。有利于將軟件的擴(kuò)展性、維護(hù)性和重用性提升到新的高度。
基于構(gòu)件的設(shè)計(jì)方法強(qiáng)調(diào)軟件體系結(jié)構(gòu)的重要性。其具有的獨(dú)特性更加強(qiáng)調(diào)構(gòu)件實(shí)現(xiàn)目的的手段,其重用性更加側(cè)重于構(gòu)件對(duì)軟件的重要性。
在了解嵌入式軟件開(kāi)發(fā)的方法后,有利于指導(dǎo)我們進(jìn)行嵌入式軟件開(kāi)發(fā)原則及模式的研究。
對(duì)于嵌入式軟件開(kāi)發(fā)來(lái)說(shuō),全面分析系統(tǒng)有利于推進(jìn)開(kāi)發(fā)的進(jìn)行。
(1)做好前期分析,形成指導(dǎo)提綱
對(duì)設(shè)計(jì)的每一個(gè)環(huán)節(jié)做到認(rèn)真仔細(xì)是系統(tǒng)分析的要求,不僅要做到用心考慮細(xì)節(jié),而且要系統(tǒng)考慮整體。這就要求我們,在做系統(tǒng)分析這項(xiàng)工作之前,一定要把前期分析做好,形成切實(shí)可行的提綱,這樣做有利于開(kāi)發(fā)者提高效率。分析工作對(duì)整個(gè)設(shè)計(jì)工作意義重大,這就要求我們,不能局限于大腦中的思考,要形成書(shū)面記載,否則,很難全面分析,很難分析的透徹。較好的實(shí)現(xiàn)方案,能幫助設(shè)計(jì)者整理思路,在工作中少走彎路。并且,我們還可以利用不斷改進(jìn)設(shè)計(jì)方法來(lái)提高程序的效率。
(2)接口以及定義
對(duì)一個(gè)外部調(diào)用函數(shù)的較為完整的定義就是接口的含義。在一個(gè)模塊設(shè)計(jì)中,通常會(huì)有很多功能相對(duì)簡(jiǎn)單,但卻對(duì)實(shí)現(xiàn)重要模塊有輔助作用的局部函數(shù)。外部調(diào)用所設(shè)計(jì)的那些函數(shù),對(duì)于它們的參數(shù)類型、參數(shù)范圍及限制必須清楚,這就是討論的接口。
我們必須分清外部調(diào)用的函數(shù)和內(nèi)部使用的函數(shù)。一般情況下,有一個(gè)定義多個(gè)源文件的頭文件。最好將那些外部調(diào)用接口以集中放置在頭文件中。此外,我們也應(yīng)該集中放置局部調(diào)用函數(shù)的聲明,以便方便文件的閱讀。還有一點(diǎn),加上簡(jiǎn)單的注釋可以保護(hù)頭文件的簡(jiǎn)介。
對(duì)于嵌入式軟件來(lái)說(shuō),算法是非常重要的。為提高軟件性能,改進(jìn)軟件,我們應(yīng)優(yōu)化函數(shù)算法。
優(yōu)化函數(shù)算法主要有以下幾種方式:(1)簡(jiǎn)單化,把完整的短句用縮略詞代替。(2)一致性,包括函數(shù)名的大小寫(xiě)、分隔符的使用以及其風(fēng)格的一致性。(3)良好的習(xí)慣,頭文件是非常復(fù)雜的,有很多需要定義的的常量、數(shù)據(jù)結(jié)構(gòu)和外部函數(shù),這就要求必須保證良好的習(xí)慣。
算法的優(yōu)化對(duì)于函數(shù)的實(shí)現(xiàn)相當(dāng)重要。事實(shí)上,軟件策略同樣是算法的一種。因此,程序設(shè)計(jì)中的算法是包括了計(jì)算方法設(shè)計(jì)的算法以及音視頻使用的算法,是一種廣義的概念。算法也體現(xiàn)在循環(huán)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)等多個(gè)方面。
程序算法的優(yōu)化,目的主要有兩個(gè):一個(gè)是時(shí)間上的優(yōu)化——優(yōu)化運(yùn)行時(shí)間另一個(gè)是空間上的優(yōu)化——優(yōu)化代碼的存儲(chǔ)空間。優(yōu)化后占用的內(nèi)存空間減小,運(yùn)行也得以提高。如果能夠?qū)烧呒骖?,那樣最好,但往往不如所愿,因此,要具體情況具體分析。
作為程序設(shè)計(jì)后期進(jìn)行的工作,一是,對(duì)局部代碼進(jìn)行優(yōu)化,如改變循環(huán)體結(jié)構(gòu)、合并類似分支等,二是,刪除局部無(wú)用變量,修改代碼,補(bǔ)充注釋,增強(qiáng)代碼的可讀性。
程序設(shè)計(jì)后期,必不可少的工作就是調(diào)試和該進(jìn)設(shè)計(jì)好的程序。它是一個(gè)重要的工作過(guò)程,它可以發(fā)現(xiàn)程序漏洞、完善程序功能。在這個(gè)過(guò)程中,要做到系統(tǒng)軟件的設(shè)計(jì)需要與其他模塊互動(dòng)。其次,是對(duì)做好的分析文檔進(jìn)行完善,這回對(duì)整個(gè)嵌入式軟件的開(kāi)發(fā)起到很大的幫助。
嵌入式軟件憑借其自身鮮明的特點(diǎn)被廣泛運(yùn)用在各個(gè)領(lǐng)域,它的開(kāi)發(fā)具有中煙價(jià)值,開(kāi)發(fā)過(guò)程不斷進(jìn)步。本文從不同角度提出了一些原則和模式,希望可以在今后的設(shè)計(jì)工作中起到一定的作用,促進(jìn)相關(guān)開(kāi)發(fā)工作的進(jìn)行。
[1]電子科技大學(xué)計(jì)算機(jī)學(xué)院.CRTOS x86/pm嵌入式實(shí)時(shí)操作系統(tǒng)原理與應(yīng)用設(shè)計(jì)[Z].增補(bǔ)版.成都:電子科技大學(xué),2011.
[2]趙秋云,魏樂(lè),劉文清.嵌入式軟件的構(gòu)件化開(kāi)發(fā)研究[J].科技資訊.2011