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