(軟考嵌入式系統(tǒng)設(shè)計師)程序設(shè)計復(fù)習(xí)筆記.doc_第1頁
(軟考嵌入式系統(tǒng)設(shè)計師)程序設(shè)計復(fù)習(xí)筆記.doc_第2頁
(軟考嵌入式系統(tǒng)設(shè)計師)程序設(shè)計復(fù)習(xí)筆記.doc_第3頁
(軟考嵌入式系統(tǒng)設(shè)計師)程序設(shè)計復(fù)習(xí)筆記.doc_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

嵌入式系統(tǒng)設(shè)計師考試筆記之嵌入式軟件程序設(shè)計一、嵌入式軟件開發(fā)概述1.嵌入式應(yīng)用軟件開發(fā)步驟:、硬件的設(shè)計與實現(xiàn);、設(shè)備驅(qū)動軟件的設(shè)計與實現(xiàn);、嵌入式操作系統(tǒng)的選擇,移植,以及API接口函數(shù)的設(shè)計;、支撐軟件的設(shè)計與調(diào)試;、應(yīng)用程序的設(shè)計與調(diào)試;、系統(tǒng)聯(lián)調(diào)、樣機(jī)交付。2、嵌入式軟件開發(fā)的特點:、需要交叉編譯工具;、通過仿真手段進(jìn)行調(diào)試;、開發(fā)板是中間目標(biāo)機(jī);、可利用的資源有限;、需要與硬件打交道;3、嵌入式開發(fā)遇到的問題:、軟件硬協(xié)同設(shè)計;嵌入式操作系統(tǒng);、代碼優(yōu)化;、有限的I/O資源;二、嵌入式程序設(shè)計語言1、程序設(shè)計語言概述機(jī)器語言:是與計算機(jī)硬件關(guān)系最為密切的計算機(jī)語言,在計算機(jī)硬件上執(zhí)行的就是一條條用機(jī)器語言來編寫的指令;匯編語言:基本思路是用符號的形式來代替二進(jìn)行的指令。低級語言:通常將機(jī)器語言和匯編語言統(tǒng)稱為低級語言。語言處理程序語言處理程序:擔(dān)任翻譯任務(wù)的程序稱為語言處理程序。包括:匯編程序、解釋程序、編譯程序。源程序:用匯編語言或某程高級語言編寫的程序。源程序不能直接在計算機(jī)上運(yùn)行。解釋程序:也稱解釋器,它直接解釋執(zhí)行源程序、或?qū)⒃闯绦蚍g成某種中間表示形式后再執(zhí)行。編譯程序:是將源程序翻譯成目標(biāo)語言程序,然后在計算機(jī)上運(yùn)行。區(qū)別:在編譯方式下,機(jī)器上運(yùn)行的是與源程序等價的目標(biāo)程序,源程序和編譯程序都不再參與目標(biāo)程序的執(zhí)行;而在解釋方式下,解釋程序和源程序要參與程序的運(yùn)行過程中,運(yùn)行控制權(quán)在解釋程序。程序設(shè)計語言的定義包括:語法、語義、語用、語境。2、匯編語言、基本原理:為特定計算機(jī)或計算機(jī)系統(tǒng)設(shè)計的面向機(jī)器的符號化程序設(shè)計語言。包括三類語句:指令語句、偽指令語句、宏指令語句。指令語句:又稱機(jī)器指令語句,將其匯編后能產(chǎn)生相應(yīng)的機(jī)器代碼,這些代碼能被CPU直接識別并執(zhí)行相應(yīng)的操作;偽指令語句:指示匯編程序在對源程序進(jìn)行匯編時完成某些工作。區(qū)別:偽指令在匯編后不產(chǎn)生機(jī)器代碼,而指令語句產(chǎn)生機(jī)器代碼。常用:定義偽指令 EQU;存儲定義偽指令 DCB;匯編控制偽指令 IF、ELSE、ENDIF,WHILE WEND;開始偽指令 ENTRY;結(jié)束偽指令 END。宏指令:將多次重復(fù)使用的程序段定義為宏、ARM匯編語言格式:ARM語言以段為單位組織源文件。段是相對獨立的、具有特定名稱的、不可分割的指令或數(shù)序列。段可以分為代碼段和數(shù)據(jù)段,代碼段存放執(zhí)行代碼、數(shù)據(jù)段存放代碼運(yùn)行時用到的數(shù)據(jù)。一個ARM源程序至少要一個代碼段。ARM匯編語言程序經(jīng)過匯編處理后生成一個可執(zhí)行的映像文件,包括:一個或多處代碼段,代碼段通常是只讀的;0個或多個包含初始值的數(shù)據(jù)段,通??勺x寫;0個或多處不含初始值的數(shù)據(jù)段,可讀寫;3、面向過程的語言定義:也叫命令式語言或強(qiáng)制式語言,通過一系列可執(zhí)行的運(yùn)算及運(yùn)算的先后次序來描述計算的過程。過程序式語言包括:數(shù)據(jù)、運(yùn)算、控制、函數(shù)。數(shù)據(jù)成分:是一種程序語言的數(shù)據(jù)類型。數(shù)據(jù)屬性:包括名稱、類型、存儲類別、作用域、生存周期。運(yùn)算成份:算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算??刂瞥煞荩喉樞?、選擇、重復(fù);函數(shù):是程序模塊的主要成份,它是一段具有獨立功能的程序,包括三個概念:函數(shù)定義,函數(shù)聲明、函數(shù)調(diào)用。一次函數(shù)調(diào)用的步驟:、在內(nèi)存的??臻g當(dāng)中為其分配一個棧幀,用來存放該函數(shù)的形參變量和局部變量;、把實參變量的值復(fù)制到相應(yīng)的形參變量中;、控制流轉(zhuǎn)移到該函數(shù)的起始位置;、該函數(shù)開始執(zhí)行;、當(dāng)這個函數(shù)執(zhí)行完成后,控制流和返回值返回到函數(shù)調(diào)用點。4、面向?qū)ο蟮恼Z言面向?qū)ο?對象+分類+繼承+通過消息的通信對象:是基本運(yùn)行時的實體,包括數(shù)據(jù)(屬性),數(shù)據(jù)操作的行為,所以一個對象將屬性和行為封裝成一個整體。由對象名、屬性、操作三個部分組成。方法:在對象內(nèi)的操作稱為方法;消息:對象之間進(jìn)行通信的一種構(gòu)造;類:定義了一組大體上相似的對象,類是在對象之上的抽象,對象是類的具體化。繼承:父類和子類之間共享數(shù)據(jù)和方法的機(jī)制。多態(tài):不同的對象收到同一消息可以產(chǎn)生完成不同的結(jié)果,這一現(xiàn)象稱為多態(tài)。動態(tài)綁定:是一個把過程調(diào)用和響應(yīng)調(diào)用所需要執(zhí)行的代碼加以結(jié)全的過程。C+:一種面向?qū)ο蟮恼Z言,支持面向?qū)ο螅仓С置嫦蜻^程。5、匯編、編譯、解譯程序的基本原理、匯編程序:是將匯編語言源程序翻譯成機(jī)器語言程序。匯編程序一般至少需要兩次掃描源程序才能完成翻譯過程:第一次主要工作是定義符號的值并創(chuàng)建一個符號表ST;第二次是掃描的任務(wù)產(chǎn)生目標(biāo)程序。、編譯程序:功能是把某些高級語言編寫的源程序翻譯成與之等價的目標(biāo)語言程序。分成六個階段:詞法分析階段、語法分析階段、語議分析階段、中間代碼生成階段、代碼優(yōu)化階段、目標(biāo)代碼生成階段。、解釋程序:是另一種語言處理程序,在詞法、語法、語議分析方面與編譯程序,它直接執(zhí)行源程序或源程序的內(nèi)部形式。因此解釋程序不產(chǎn)生源程序的目標(biāo)程序,這是與編譯程序的主要區(qū)別。三、嵌入式軟件開發(fā)環(huán)境宿主機(jī):是用于開發(fā)嵌入式系統(tǒng)的計算機(jī),運(yùn)行的工具包括:文本編輯器、交叉調(diào)試器、集成環(huán)境以及各種分析工具。目標(biāo)機(jī)一般在嵌入式應(yīng)用軟件的開發(fā)和調(diào)試期使用,它可以是嵌入式應(yīng)用軟件的實際運(yùn)行環(huán)境,也可以是能夠代替實際運(yùn)行環(huán)境的仿真系統(tǒng)。常用的調(diào)度方法:直接測試法、調(diào)試監(jiān)控器法、ROM仿真器法、在線仿真器法、片上調(diào)試法及模擬法。四、嵌入式軟件開發(fā)1、嵌入式平臺選型嵌入式設(shè)計分三個階段:分析、設(shè)計和實現(xiàn)。分析階段:是確定要解決的問題及需要完成的目標(biāo),也稱需求階段;設(shè)計階段:主要是解決如何在給定的約束條件下完成用戶的需求;實現(xiàn)階段:主要是解決如何在所選擇的硬件和軟件的基礎(chǔ)上進(jìn)行整個軟硬件系統(tǒng)的協(xié)調(diào)和實現(xiàn)。硬件的選擇包括:處理器、硬件部件軟件的選擇包括:操作系統(tǒng)、編程語言、軟件開發(fā)工具、硬件調(diào)試工具和軟件組件。2、軟件設(shè)計、軟件設(shè)計任務(wù):準(zhǔn)備一個工作計劃;確定軟件的結(jié)構(gòu);設(shè)計評審;維護(hù)工作計劃;與硬件部門密切合作、相互協(xié)調(diào);控制工作的結(jié)果、把工作記錄存檔。、模塊結(jié)構(gòu)設(shè)計模塊結(jié)構(gòu)設(shè)計的任務(wù):將系統(tǒng)劃分為模塊,確定軟件的結(jié)構(gòu),模塊的功能和模塊間的接口,以及全局?jǐn)?shù)據(jù)結(jié)構(gòu)設(shè)。模塊:是組成系統(tǒng)的基本單位,它的特點是可以組合、分解和更換。模塊的四要素:輸入和輸出;處理功能;內(nèi)部數(shù)據(jù);程序代碼。模塊結(jié)構(gòu)設(shè)計應(yīng)遵守的原則:所劃分的模塊其內(nèi)部凝聚性要強(qiáng),模塊之間的聯(lián)系要少,即要有很強(qiáng)的獨立性;模塊之間的連接只能存在上下級之間的調(diào)用關(guān)系,不能有同級之間的橫向關(guān)系;整個結(jié)構(gòu)呈樹狀結(jié)構(gòu),不允許網(wǎng)狀結(jié)構(gòu)或交叉調(diào)用關(guān)系;所有模塊必須嚴(yán)格地分類編碼并建立歸檔文件。、結(jié)構(gòu)化設(shè)計的方法結(jié)構(gòu)化設(shè)計的方法是一種面向數(shù)據(jù)流的設(shè)計方法,基本思想是將系統(tǒng)設(shè)計成由相對獨立、功能單一的模塊組成的結(jié)構(gòu)。信息流的類型:變換流和事務(wù)流。結(jié)構(gòu)化設(shè)計方法的步驟:復(fù)查并精化數(shù)據(jù)流圖;確定DFD的信息流類型(變換型或事務(wù)型);根據(jù)流類型分別實施變換分析或事務(wù)分析;根據(jù)系統(tǒng)設(shè)計的原則,對程序結(jié)構(gòu)圖進(jìn)行優(yōu)化。3、嵌入式程序設(shè)計、bootloader的設(shè)計步驟;stage1和stage2兩大部Stage1步驟:硬件設(shè)備初始化;為加載bootloader的stage1準(zhǔn)備內(nèi)存空間;復(fù)制bootloader的stage1到內(nèi)存;設(shè)置好堆棧;跳轉(zhuǎn)到stage1的C入口點。Stage2步驟:初始化本階段要使用的硬件設(shè)備;檢測系統(tǒng)內(nèi)存映射;將內(nèi)核映像和根文件系統(tǒng)映像到flash上讀入到內(nèi)存中;為內(nèi)核設(shè)置啟動參數(shù),并調(diào)用內(nèi)核。、設(shè)備驅(qū)動程序設(shè)計、網(wǎng)絡(luò)應(yīng)用程序設(shè)計4、編碼四個步驟:確定源程序的標(biāo)準(zhǔn)格式、制定編程規(guī)范;準(zhǔn)備編程環(huán)境;編寫代碼;進(jìn)行代碼審查,提高編碼質(zhì)量。5、測試、概述軟件測試:是從經(jīng)濟(jì)和效率的角度出發(fā),對軟件代碼進(jìn)行質(zhì)量和正確性保證的一個過程。系統(tǒng)測試的目的:是為了發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。規(guī)范化的測試過程:擬定測試計劃;編制測試大綱;根據(jù)測試大綱設(shè)計和生產(chǎn)測試用例;實施測試;生成測試報告。、測試方法分類:人工測試和機(jī)器測試人工測試的三種方法:個人復(fù)查、抽查、會審機(jī)器測試分成:黑盒測試和白盒測試黑盒測試:也稱功能測試,將軟件看成黑盒子,在完成不考慮軟件內(nèi)部結(jié)構(gòu)和特性的情況下,測試軟件的外部特性。包括:極限情況測試;邊界測試;異常測試;隨機(jī)測試;性能測試。白盒測試:也稱結(jié)構(gòu)測試,將軟件看成透明的的盒,根據(jù)程序的內(nèi)部結(jié)構(gòu)和邏輯來設(shè)計測試用例。原則:程序模塊中的所有獨立路徑至少執(zhí)行一次;在所有的邏輯判斷中,取“真”“假”的兩種情況至少都要執(zhí)行一次;每個循環(huán)都應(yīng)在邊界條件和一般條件下各執(zhí)行一次;測試程序內(nèi)部的數(shù)據(jù)結(jié)構(gòu)的有效性。、測試步驟:、系統(tǒng)平臺測試:包括硬件電路測試、操作系統(tǒng)及底層驅(qū)動程序測試;、單元測試:也稱模塊測試。一般采用白盒測試法。主要測試模擬塊接口、局部數(shù)據(jù)結(jié)構(gòu)、重要的執(zhí)行路徑、出錯處理、邊界條件。測試時需要開的模塊包括:驅(qū)動模塊(相當(dāng)于一個程序,負(fù)責(zé)接收測試用例的數(shù)據(jù),將這些數(shù)據(jù)送到測試模塊,并輸出結(jié)果)和樁模塊(也稱為存根模塊,用來代替測試模塊中所調(diào)用的子模塊,其內(nèi)可進(jìn)行少量的數(shù)據(jù)處理,目的是為了檢驗入口,并輸出調(diào)用和返回的信息)、集成測試:也稱組裝測,就是把各個模塊按照系統(tǒng)設(shè)計說明書的要求組合起來進(jìn)行測試。兩種方法:一種是分別測試各個模塊,再把這些模塊組合起來進(jìn)行整體測試,即非增量式集成;另一種是把下一個要測試的模塊組合到已測試好的模塊中,測試完成再將下一個模塊組合進(jìn)來,進(jìn)行測試,這樣逐步把所有的模塊組合在一起,并完成測試,即增量式集成。、系統(tǒng)測試:將嵌入式軟件、硬件,外設(shè)和網(wǎng)絡(luò)等各種因素結(jié)全在一起,進(jìn)行整個系統(tǒng)的組裝測試和確認(rèn)測試。一般采用黑盒測試法。主要測試內(nèi)容:恢復(fù)測試、強(qiáng)度測試、性能測試、可靠性測試。、測試結(jié)果分析對測試結(jié)果分析和比較幫助錯誤的定位,指導(dǎo)程序員修改代碼。、覆蓋測試:是一種白盒測試法,測試人員必須擁有程序的規(guī)格說明書和程序清單。其基本思路是以程序的內(nèi)部結(jié)構(gòu)為基礎(chǔ)來設(shè)計測試用例,以覆蓋盡可能多的程序內(nèi)部邏輯結(jié)構(gòu),發(fā)現(xiàn)其中的錯誤和問題,一般用在單元測試階段。主要策略:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋。5、下載運(yùn)行五、嵌入式軟件移植可分成有操作系統(tǒng)和無操作系統(tǒng)的移植。uC/OS-II操作系統(tǒng)代碼被分成三個部分:一是,與處理器無關(guān)的代碼,如任務(wù)管理、存儲管理、信號量等;二是,與系統(tǒng)配置有關(guān),應(yīng)用程序開發(fā)人員可以通過修改這些配置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論