嵌入式系統(tǒng)開發(fā)過程_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第二章 嵌入式系統(tǒng)開發(fā)過程,2.1設計2.2流程 2.3硬件選擇 2.4軟件流程2.5調試2.6BSP,嵌入式系統(tǒng)的架構,,在不同的應用場合,嵌入式系統(tǒng)呈現(xiàn)出的外觀和形式各不相同。但通過對其內部結構進行分析,可以發(fā)現(xiàn),一個嵌入式系統(tǒng)一般都由嵌入式微處理器系統(tǒng)和被控對象組成,如下圖所示。其中嵌入式微處理器系統(tǒng)是整個系統(tǒng)的核心,由硬件層、中間層、軟件層和功能層組成。被控對象可以是各種傳感器、電機等,可以接受

2、嵌入式微處理器系統(tǒng)發(fā)出的控制命令,執(zhí)行所規(guī)定的操作或任務。,,硬件層由嵌入式微處理器、外圍電路和外設組成。在一片嵌入式微處理器基礎上增加電源電路、復位電路、調試接口和存儲器電路,就構成一個嵌入式核心控制模塊。其中操作系統(tǒng)和應用程序都可以固化在ROM或者Flash中。為方便使用,有的模塊在此基礎上增加了LCD、鍵盤、USB接口,以及其他一些功能的擴展電路。嵌入式系統(tǒng)的硬件層是以嵌入式處理器為核心的,最初的嵌入式處理器都是為通用目的而設計

3、的。后來隨著微電子技術的發(fā)展出現(xiàn)了ASIC(Application specific integrated circuit,專用的集成電路),ASIC是一種為具體任務而特殊設計的專用集成電路。由于ASIC在設計過程中進行了專門優(yōu)化,其性能、性價比都非常高。采用ASIC可以減少系統(tǒng)軟硬件設計的復雜度,降低系統(tǒng)成本。有的嵌入式微處理器利用ASIC來實現(xiàn),但ASIC的前期設計費用非常高,而且ASIC一旦設計完成,就無法升級和擴展,一般只有在一

4、些產量非常大的產品設計中才考慮使用ASIC。近年來,各種PLD(Programmable Logic Device,可編程邏輯器件)的出現(xiàn),改變了硬件設計方法,出現(xiàn)了“可重構計算”的概念。通過改寫PLD,允許在不改變硬件結構的情況下,實現(xiàn)不同的接口和功能。20世紀80年代中期以后出現(xiàn)了FPGA(Field-programmable gate array,現(xiàn)場可編程門陣列)器件,這是是一種大規(guī)??删幊踢壿嬈骷?,具有保密性好、體積小、重量

5、輕、可靠性高等一系列ASIC的優(yōu)點。FPGA的出現(xiàn)使得一個電子系統(tǒng)可以僅僅由三種標準模塊構成,即微處理器、存儲器和可編程邏輯器件。前兩種模塊都已標準化,系統(tǒng)中大量的控制邏輯由FPGA實現(xiàn)。這使得硬件的設計更具有靈活性和擴展性,并降低了后續(xù)產品開發(fā)的成本。,硬件層與軟件層之間為中間層,也稱為BSP(Board Support Package,板級支持包),將系統(tǒng)軟件與底層硬件部分隔離,使得系統(tǒng)的底層設備驅動程序與硬件無關,一般應具有相關硬

6、件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設備的配置等功能。BSP是主板硬件環(huán)境和操作系統(tǒng)的中間接口,是軟件平臺中具有硬件依賴性的那一部分,主要目的是為了支持操作系統(tǒng),使之能夠更好地運行于硬件主板上。純粹的BSP所包含的內容一般說來是與系統(tǒng)有關的驅動程序,如網絡驅動程序和系統(tǒng)中的網絡協(xié)議有關,串口驅動程序和系統(tǒng)的下載調試有關,等等。離開這些驅動程序系統(tǒng)就不能正常工作。軟件層主要是操作系統(tǒng),有的還包括文件系統(tǒng)、圖形用戶接口和網絡系統(tǒng)等。操

7、作系統(tǒng)是嵌入式應用軟件的基礎和開發(fā)平臺,實際上是一段程序,系統(tǒng)復位后首先執(zhí)行,相當于用戶的主程序,用戶的其他應用程序都建立在操作系統(tǒng)之上。操作系統(tǒng)是一個標準的內核,將中斷、I/O、定時器等資源都封裝起來,以方便用戶使用。操作系統(tǒng)的引入大大提高了嵌入式系統(tǒng)的功能,方便了應用軟件的設計,但同時也占用了寶貴的嵌入式系統(tǒng)資源。一般在大型的或需要多任務的應用場合才考慮使用嵌入式操作系統(tǒng)。功能層由基于操作系統(tǒng)開發(fā)的應用程序組成,用來完成對被控對

8、象的控制功能。功能層是面向被控對象和用戶的,為了方便用戶操作,往往需要具有友好的人機界面。對于一些復雜的系統(tǒng),在系統(tǒng)設計的初期階段就要對系統(tǒng)的需求進行分析,確定系統(tǒng)的功能,然后將系統(tǒng)的功能映射到整個系統(tǒng)的硬件、軟件和執(zhí)行裝置的設計過程中,這個過程稱為系統(tǒng)的功能實現(xiàn)。,2.1嵌入式系統(tǒng)設計,1.需求分析階段 在需求分析階段需要分析系統(tǒng)的需求,系統(tǒng)的需求一般分功能需求和非功能需求兩方面。根據(jù)系統(tǒng)的需求,確定設計任

9、務和設計目標,并提煉出設計規(guī)格說明書,作為正式指導設計和驗收的標準。 2.體系結構設計 需求分析完成后,根據(jù)提煉出的設計規(guī)格說明書,進行體系結構的設計。系統(tǒng)的體系結構描述了系統(tǒng)如何實現(xiàn)所述的功能和非功能需求,包括對硬件、軟件的功能劃分,以及系統(tǒng)的軟件、硬件和操作系統(tǒng)的選型等。3.硬件/軟件設計 基于體系結構,對系統(tǒng)的軟、硬件進行詳細設計。對于一個完整的嵌入式應用系統(tǒng)的開發(fā),應用系統(tǒng)

10、的程序設計是嵌入式系統(tǒng)設計一個非常重要的方面,程序的質量直接影響整個系統(tǒng)功能的實現(xiàn),好的程序設計可以克服系統(tǒng)硬件設計的不足,提高應用系統(tǒng)的性能,反之,會使整個應用系統(tǒng)無法正常工作。4.系統(tǒng)集成 把系統(tǒng)中的軟件、硬件集成在一起,進行調試,發(fā)現(xiàn)并改進單元設計過程中的錯誤。5.代碼固化 嵌入式軟件開發(fā)完成以后,大多數(shù)要在目標環(huán)境的非易失性存儲器中運行,程序寫入到Flash中固化,保證每次運行后下一次運

11、行無誤,所以嵌入式軟件開發(fā)與普通軟件開發(fā)相比,增加了固化階段。,2.2嵌入式系統(tǒng)開發(fā)流程,選擇嵌入式操作系統(tǒng)軟件平臺,選擇嵌入式處理器硬件平臺,開發(fā)嵌入式應用軟件,系統(tǒng)測試(固化代碼),開發(fā)結束,測試通過,,,,,,,,,Y,N,硬件平臺和軟件平臺選擇,處理器、硬件部件、操作系統(tǒng)、編程語言、軟件開發(fā)工具、硬件調試工具、軟件組件處理器最重要,操作系統(tǒng)和編程語言非常關鍵處理器的選擇會限制操作系統(tǒng)的選擇,操作系統(tǒng)的選擇會限制開發(fā)工具的

12、選擇。,2.3硬件平臺選擇,處理器的選擇嵌入式系統(tǒng)的核心部件是各種類型的嵌入式處理器ARM是近年來在嵌入式系統(tǒng)有影響力的微處理器架構,ARM的設計非常適用于小的供電系統(tǒng)。ARM微處理器有多達十幾種的內核結構,幾十個芯片生產廠家,以及千變萬化的內部功能配置組合,給開發(fā)人員在選擇方案時帶來一定的困難,所以,對ARM芯片做一些對比研究是十分必要的。ARM微處理器的應用選型以下從應用的角度出發(fā),對在選擇ARM微處理器時所應考慮的主要問

13、題做一些簡要的探討。,硬件平臺選擇,1.ARM微處理器內核的選擇ARM微處理器包含一系列的內核結構,以適應不同的應用領域,用戶如果希望使用WinCE或標準Linux等操作系統(tǒng)以減少軟件開發(fā)時間,就需要選擇ARM720T以上帶有MMU(Memory Management Unit)功能的ARM芯片,ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都帶有MMU功能。而ARM7TDMI則沒有MMU,不支持

14、Windows CE和標準Linux,但目前有uCLinux等不需要MMU支持的操作系統(tǒng)可運行于ARM7TDMI硬件平臺之上。,硬件平臺選擇,2.系統(tǒng)的工作頻率系統(tǒng)的工作頻率在很大程度上決定了ARM微處理器的處理能力。ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,常見的ARM7芯片系統(tǒng)主時鐘為20MHz-133MHz,ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見的ARM9的系統(tǒng)主時鐘頻率為100MHz

15、-233MHz,ARM10最高可以達到700MHz。不同芯片對時鐘的處理不同,有的芯片只需要一個主時鐘頻率,有的芯片內部時鐘控制器可以分別為ARM核和USB、UART、DSP、音頻等功能部件提供不同頻率的時鐘。,硬件平臺選擇,3.芯片內存儲器的容量大多數(shù)的ARM微處理器片內存儲器的容量都不太大,需要用戶在設計系統(tǒng)時外擴存儲器,但也有部分芯片具有相對較大的片內存儲空間,如ATMEL的AT91F40162就具有高達2MB的片內程序存儲空間

16、,用戶在設計時可考慮選用這種類型,以簡化系統(tǒng)的設計。,硬件平臺選擇,4.片內外圍電路的選擇除ARM微處理器核以外,幾乎所有的ARM芯片均根據(jù)各自不同的應用領域,擴展了相關功能模塊,并集成在芯片之中,我們稱之為片內外圍電路,如USB接口、IIS接口、LCD控制器、鍵盤接口、RTC、ADC和DAC、DSP協(xié)處理器等,設計者應分析系統(tǒng)的需求,盡可能采用片內外圍電路完成所需的功能,這樣既可簡化系統(tǒng)的設計,同時提高系統(tǒng)的可靠性。,硬件平臺選擇,

17、硬件選擇的其他因素考慮生產規(guī)模開發(fā)的市場目標軟件對硬件的依賴性盡量使用普通的硬件,嵌入式軟件開發(fā)流程,嵌入式軟件開發(fā)流程主要涉及代碼編程、交叉編譯、交叉連接、下載到目標板、調試。,軟件平臺選擇,操作系統(tǒng)提供的開發(fā)工具向硬件接口移植的難度內存要求是否熟悉操作系統(tǒng)機器提供的API是否提供硬件的驅動程序可剪裁性實時性能,軟件平臺選擇,編程語言通用性可移植性程度執(zhí)行效率可維護性集成開發(fā)環(huán)境系統(tǒng)調試器的功能,包括

18、遠程調試環(huán)境支持庫函數(shù)編譯器開發(fā)商是否持續(xù)升級編譯器連接程序是否支持所有的文件格式和符合格式。,嵌入式軟件開發(fā)的特點,1.采用宿主機/目標機方式 嵌入式系統(tǒng)本身不具備自舉開發(fā)能力,即使設計完成以后用戶通常也是不能對其中的程序功能進行修改的。嵌入式軟件以宿主機/目標機模式開發(fā),所需要的開發(fā)環(huán)境稱為交叉開發(fā)環(huán)境,分為宿主機部分和目標機部分,兩者以統(tǒng)一的通信協(xié)議進行通信,宿主機向目標機發(fā)送命令,目標機接收、執(zhí)行

19、命令并將結果返回宿主機,從而實現(xiàn)兩機之間的交互控制。2.為了保證穩(wěn)定性和實時性,選用RTOS開發(fā)平臺 對簡單系統(tǒng)可以用傳統(tǒng)方法,從底層用匯編語言編寫程序,利用在線仿真器(ICE)、在線調試器(ICD)等開發(fā)工具進行軟件的調試。對于那些復雜的嵌入式系統(tǒng),需要在優(yōu)化級可控的情況下預測其運行狀態(tài),不利用實時操作系統(tǒng)和嵌入式系統(tǒng)開發(fā)平臺進行開發(fā),是很難、甚至是不可能達到預定要求的。為了合理地調度多任務、利用系統(tǒng)資源,

20、用戶必須選配RTOS開發(fā)平臺,這樣才能保證程序執(zhí)行的實時性、可靠性,并減少開發(fā)時間,保證軟件質量。3.生成代碼需要固態(tài)化存儲嵌入式應用程序開發(fā)環(huán)境是PC機,但運行的目標環(huán)境卻千差萬別,可以是PDA,也可以是儀器設備。而且應用軟件在目標環(huán)境下必須存儲在非易失性存儲器中,保證系統(tǒng)在掉電重啟后仍能正常使用。所以,應用軟件在開發(fā)完成以后,應生成固化版本,都固化在單片機本身或燒寫到目標環(huán)境的Flash中運行。4.軟件代碼具有高質量、高可靠性

21、,嵌入式軟件開發(fā)的特點,引入任務設計方法嵌入式系統(tǒng)設計采用DARTS設計方法進行任務的設計; DARTS給出了系統(tǒng)任務劃分的方法和定義任務間接口的機制。在系統(tǒng)設計階段,用多個并發(fā)的任務代替通用軟件的多個模塊,并定義了應用軟件任務間的接口;,嵌入式軟件開發(fā)的特點,需要固化程序嵌入式應用程序開發(fā)的環(huán)境是PC機,運行的目標環(huán)境是具體某個儀器設備;應用軟件在目標環(huán)境下必須存儲在非易失性存儲中,保證用戶用完關機后確保下次的使用。所以應用軟

22、件在開發(fā)完成后,應生成固化版本,燒寫到目標環(huán)境的Flash中運行。,2.4嵌入式軟件開發(fā)的特點,軟件開發(fā)難度大嵌入式應用有實時性的要求特別是在硬實時系統(tǒng)中,實時性至關重要;實時性的體現(xiàn)一部分來源于實時操作系統(tǒng)的實時性,另一部分依賴于應用軟件本身的設計和代碼的質量嵌入式應用軟件對穩(wěn)定性、可靠性、抗干擾等性能的要求很嚴格和苛刻,嵌入式軟件開發(fā)的特點,需要提供強大的硬件開發(fā)工具和軟件包支持,需要開發(fā)者從速度、功能和成本綜合考慮;硬件功能

23、強工具完備通信接口精簡系統(tǒng)內核以降低功耗和成本提供友好的多媒體人機界面,嵌入式軟件開發(fā)的要點,盡量使用高級語言開發(fā),少用匯編語言,提高應用軟件的可移植性;局域化不可移植部分 不可移植的代碼和匯編代碼通過宏定義和函數(shù)的形式分類集中在某幾個特定的文件中,從而提高移植的效率。提高軟件的可重用性;,2.5嵌入式系統(tǒng)的調試,調試是任何項目開發(fā)過程中必不可少的一部分,特別是在軟硬件結合非常緊密的嵌入式系統(tǒng)開發(fā)中。一般來說,大多數(shù)的調

24、試工作是在RAM中進行的,只有當程序完成并能運行后才切換到ROM上。嵌入式系統(tǒng)的調試有多種方法,可分為模擬器方式、ICE(In-Circuit Emulator,在線仿真器)方式、ICD(In-Circuit Debugger,在線調試器)方式和監(jiān)控器方式。1.模擬器方式 調試工具和待調試的嵌入式軟件都在主機上運行,通過軟件手段模擬執(zhí)行為某種嵌入式處理器編寫的源程序。簡單的模擬器可以通過指令解釋方式逐條執(zhí)行源程

25、序,分配虛擬存儲空間和外設,進行語法和邏輯上的調試。2.在線仿真器方式 在線仿真器ICE是一種完全仿造調試目標CPU設計的儀器,目標系統(tǒng)對用戶來說是完全透明的、可控的。仿真器與目標板通過仿真頭連接,與主機有串口、并口、以太網口或USB口等連接方式。該仿真器可以真正地運行所有的CPU動作,并且可以在其使用的內存中設置非常多的硬件中斷點,可以實時查看所有需要的數(shù)據(jù),從而給調試過程帶來很多便利。由于仿真器自成體系,調

26、試時可以連接目標板,也可以不接目標板。 使用ICE同使用一般的目標硬件一樣,只是在ICE上完成調試后,需要把調試好的程序重新下載到目標系統(tǒng)上而已。由于ICE價格昂貴,而且每種CPU都需要一種與之對應的ICE,使得開發(fā)成本非常高。,。,,3.監(jiān)控器方式主機和目標板通過某種接口(通常是串口)連接,主機上提供調試界面,被調試程序下載到目標板上運行監(jiān)控程序是一段運行于目標機上的可執(zhí)行程序,主要負責監(jiān)控目標機上被調試

27、程序的運行情況,與宿主機端的調試器一起完成對應用程序的調試。監(jiān)控程序包含基本功能的啟動代碼,并完成必要的硬件初始化,等待宿主機的命令。被調試程序通過監(jiān)控程序下載到目標機,就可以開始進行調試。監(jiān)控器方式操作簡單易行,功能強大,不需要專門的調試硬件,適用面廣,能提高調試的效率,縮短產品的開發(fā)周期,降低開發(fā)成本。正因為以上原因,監(jiān)控器方式才能夠廣泛應用于嵌入式系統(tǒng)的開發(fā)之中。監(jiān)控器調試主要用于調試運行在目標機操作系統(tǒng)上的應用程序,不適宜用來

28、調試目標操作系統(tǒng)。有的微處理器需要在目標板工作正常的前提下,事先燒制監(jiān)控程序,而且功能有限,特別是硬件調試能力較差。4.在線調試器方式使用ICD和目標板的調試端口連接,發(fā)送調試命令和接收調試信息,可以完成必要的調試功能。一般情況下,在ARM芯片的開發(fā)板上采用JTAG邊界掃描口進行調試。摩托羅拉公司采用專用的BDM調試接口。使用合適的開發(fā)工具可以利用這些接口。例如,ARM開發(fā)板,可以將JTAG調試器接在開發(fā)板的JTAG口上,通過JT

29、AG口與ARM處理器核進行通信。由于JTAG調試的目標程序是在目標板上執(zhí)行,仿真更接近于目標硬件,因此許多接口問題,如高頻操作限制、電線長度的限制等被最小化了。該方式是目前采用最多的一種調試方式。,板級支持包(BSP) 簡介,BSP是在標準開發(fā)板上運行的一部分軟件,主要功能是支持操作系統(tǒng)的引導與開發(fā)。通過BSP我們可以在開發(fā)板上快速的啟動操作系統(tǒng)以及分析操作系統(tǒng)的性能。有了BSP的支持,各個OEM(原始設備制造商)廠商和獨立硬件開發(fā)商就

30、可以縮短基于Windows CE平臺產品的開發(fā)周期。,CPU支持包(CSP) & OEM抽象層(OAL),OAL : OEM 抽象層位于操作系統(tǒng)內核和目標板硬件之間,負責操作系統(tǒng)和目標板的通信。由引導程序調用,隨后進行目標板的初始化工作,包括中斷服務,實時時鐘,內部計時器,調試部件,中斷使能等等由硬件 OEM廠商提供,CPU支持包(CSP) & OEM抽象層(OAL),CSP : CPU 支持包包括用以支持特定C

31、PU和相關芯片的OEM抽象層和設備驅動,這一部分是與特定開發(fā)板無關的。通常由操作系統(tǒng)開發(fā)商提供,Win CE操作系統(tǒng)是由微軟公司開發(fā)的。,板級支持包的組成,BSP 架構,創(chuàng)建BSP的兩種方法,編寫全新的BSP需要編寫所有的部分包括 OEM抽象層, 驅動, 引導程序大約消耗 20人/月工作量改寫現(xiàn)有的BSP對與目標板具有相似硬件組成的BSP的基礎上進行某些改寫,使其適用與目標板,這是最簡單的方式。,BSP開發(fā)流程,如果操作系統(tǒng)

32、映象可以直接引導,引導程序不是必須的但通常使用一個引導程序,以便日后的擴充。另外也可以用于支持制造過程中的下載測試 引導程序的重要性在于可以支持開發(fā)過程中的運行時映象加載功能,也就是說在系統(tǒng)運行過程中,動態(tài)加載需要調試的模塊,引導程序(可選),引導程序的功能,初始化目標設備內存和中斷控制器設置時鐘和內存管理單元直接引導現(xiàn)存的flash 或RAM 映象下載之前清空RAM內存讀寫測試下載os 映象到RAM或flash:

溫馨提示

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

評論

0/150

提交評論