嵌入式軟件開發(fā)具有什么特點(diǎn)?有哪些規(guī)范及原則?
嵌入式軟件開發(fā)將是下述內(nèi)容的主要介紹對(duì)象,通過這篇文章,小編希望大家可以對(duì)它的相關(guān)情況以及信息有所認(rèn)識(shí)和了解,詳細(xì)內(nèi)容如下。
一、嵌入式軟件開發(fā)的特點(diǎn)
嵌入式軟件的開發(fā)具有如下幾方面的特點(diǎn):
1)需要交叉開發(fā)工具和環(huán)境。由于嵌入式軟件本身不具備自主開發(fā)能力,即使設(shè)計(jì)完成以后用戶通常也不俞對(duì)其中的程序功能進(jìn)行修改,因此必須有一套開發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。這些工具和環(huán)境一般基于通用計(jì)算機(jī)上的軟硬件設(shè)備以及各種邏輯分析儀、混合信號(hào)示波器等。開發(fā)時(shí)往往有主機(jī)和目標(biāo)機(jī)交叉開發(fā)的概主機(jī)用于程序的開發(fā)、調(diào)試,目標(biāo)機(jī)作為最后的執(zhí)行機(jī)構(gòu)。開發(fā)時(shí)主機(jī)和目標(biāo)機(jī)需要交替結(jié)合進(jìn)行念,
2)軟硬件協(xié)同設(shè)計(jì)。軟硬件協(xié)同設(shè)計(jì)涉及以下方面: 嵌入式軟件設(shè)計(jì)、實(shí)時(shí)系統(tǒng)設(shè)計(jì)、硬件設(shè)計(jì)和軟件設(shè)計(jì)。軟硬件協(xié)同設(shè)計(jì)強(qiáng)調(diào)硬件與軟件的協(xié)同性與整合性、軟件與硬件的可裁減,以滿足系統(tǒng)對(duì)功能、成本體積和功耗等要求
3)嵌入式軟件開發(fā)人員以應(yīng)用專家為主。通用計(jì)算機(jī)的開發(fā)人員一般是計(jì)算機(jī)科學(xué)或計(jì)算機(jī)工程方面的專業(yè)人士,而嵌入式軟件則是要和各個(gè)不同行業(yè)的應(yīng)用相結(jié)合的,要求更多的計(jì)算機(jī)以外的專業(yè)知識(shí),其開發(fā)人員往往是各個(gè)應(yīng)用領(lǐng)域的專家。
4)軟件要求固態(tài)化存儲(chǔ)。為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片或單片機(jī)本身中,而不是存儲(chǔ)于磁盤等載體中。
5)軟件代碼高質(zhì)量、高可靠性。盡管半導(dǎo)體技術(shù)的發(fā)展使處理器速度不斷提高,片上存儲(chǔ)器容量不斷增加,但在大多數(shù)應(yīng)用中,存儲(chǔ)空間仍然是寶貴的,還存在實(shí)時(shí)性的要求。為此要求程序編寫和編譯工具的質(zhì)量要高,以減少程序二進(jìn)制代碼長度,提高執(zhí)行速度。嵌入式軟件的核心是系統(tǒng)軟件和應(yīng)用軟件,由于存儲(chǔ)空間有限,因而要求軟件代碼緊湊、可靠,大多對(duì)實(shí)時(shí)性有嚴(yán)格要求。
二、嵌入式軟件開發(fā)規(guī)范及原則
1.頭文件
對(duì)于C語言來說,頭文件的設(shè)計(jì)體現(xiàn)了大部分的系統(tǒng)設(shè)計(jì),不合理的頭文件布局是編譯時(shí)間過長的原因。
有很多人將工程中所有的頭文件包含在一個(gè)include.h文件中,然后在每一個(gè).c源代碼文件中包含include.h頭文件,這樣做可以讓代碼看上去簡潔,但實(shí)際忽視了編譯效率問題,而且代碼的可移植性也不好。
原則:
A.頭文件中適合放置接口的聲明,不適合放置實(shí)現(xiàn);
B.頭文件應(yīng)當(dāng)職責(zé)單一;
C.頭文件應(yīng)向穩(wěn)定的方向包含。
規(guī)則:
A.每一個(gè).c文件應(yīng)有一個(gè)同名.h文件,用于聲明需要對(duì)外公開的接口;
B.禁止頭文件循環(huán)依賴;
C..c/.h文件禁止包含用不到的頭文件;
D.頭文件應(yīng)當(dāng)自包含;
E.總是編寫內(nèi)部#include保護(hù)符(#define保護(hù));
F.禁止在頭文件中定義變量;
G.只能通過包含頭文件的方式使用其他.c提供的接口,禁止在.c中通過extern的方式使用外部函數(shù)接口、變量;
H.禁止在extern "C"中包含頭文件。建議:
A.一個(gè)模塊通常包含多個(gè).c文件,建議放在同一個(gè)目錄下,目錄名即為模塊名。為方便外部使用者,建議每一個(gè)模塊提供一個(gè).h,文件名為目錄名;
B.如果一個(gè)模塊包含多個(gè)子模塊,則建議每一個(gè)子模塊提供一個(gè)對(duì)外的.h,文件名為子模塊名(降低接口使用者的編寫難度);
C.頭文件不要使用非習(xí)慣用法的擴(kuò)展名,如.inc;
D.同一產(chǎn)品統(tǒng)一包含頭文件排列方式。
2.函數(shù)
函數(shù)設(shè)計(jì)的要點(diǎn):編寫整潔的函數(shù),同時(shí)把代碼有效組織起來。
函數(shù)整潔的要求:代碼簡單直接、不隱藏設(shè)計(jì)者的意圖、用干凈利落的抽象和直截了當(dāng)?shù)目刂普Z句將函數(shù)有機(jī)組織起來。
原則:
A.一個(gè)函數(shù)僅完成一件功能;
B.重復(fù)代碼應(yīng)該盡可能提煉成函數(shù).
上述所有信息便是小編這次為大家推薦的有關(guān)嵌入式軟件開發(fā)的內(nèi)容,希望大家能夠喜歡,想了解更多有關(guān)它的信息或者其它內(nèi)容,請關(guān)注我們網(wǎng)站哦。