




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),1,第4章 基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),4.1概述 ARM公司是把ARM作為知識(shí)產(chǎn)權(quán)IP推向市場(chǎng),因此ARM架構(gòu)在市場(chǎng)上出現(xiàn)也有多種形式,既有處理器內(nèi)核(如ARM7TDMI)形式,也有處理器核(如ARM720T)形式。半導(dǎo)體廠商或片上系統(tǒng)SoC設(shè)計(jì)應(yīng)用廠商采用ARM架構(gòu)來(lái)生產(chǎn)相應(yīng)的MPU或SoC芯片。ARM系統(tǒng)設(shè)計(jì)人員再在MPU或SoC芯片的基礎(chǔ)上根據(jù)實(shí)際需求再進(jìn)行硬件系統(tǒng)一級(jí)的擴(kuò)展和軟件系統(tǒng)的裁剪和應(yīng)用程序的編寫(xiě)。 嵌入式系統(tǒng)的軟/硬件框架如下圖所示。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),2,軟硬件框架圖,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),3,智能監(jiān)控器系統(tǒng)體系結(jié)構(gòu),基于ARM的硬件結(jié)
2、構(gòu)設(shè)計(jì),4,4.1.1、嵌入式系統(tǒng)的設(shè)計(jì)原則和步驟,嵌入式系統(tǒng)設(shè)計(jì)的重要特點(diǎn)之一,就是技術(shù)多樣化。知識(shí)多變性和面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)性技術(shù)多樣性就是實(shí)現(xiàn)同一個(gè)嵌入式系統(tǒng)可以有許多不同的設(shè)計(jì)方案選擇;而不同的設(shè)計(jì)方案就意味使用不同的設(shè)計(jì)和生產(chǎn)技術(shù)。所謂知識(shí)多變性是指實(shí)現(xiàn)系統(tǒng)目標(biāo)的基礎(chǔ)理論和方法隨著新知識(shí)的出現(xiàn)不斷的變化 嵌入式系統(tǒng)設(shè)計(jì)一般由5個(gè)階段構(gòu)成:需求分析、體系結(jié)構(gòu)設(shè)計(jì)、硬件/軟件設(shè)計(jì)、系統(tǒng)集成和系統(tǒng)測(cè)試。各個(gè)階段之間往往要求不斷的反復(fù)和修改,直至完成最終設(shè)計(jì)目標(biāo)。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),5,設(shè)計(jì)步驟圖,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),6,1)、需求分析階段,contents 分析用戶(hù)的需求 確
3、定硬件軟件 檢查需求分析的結(jié)果 確定項(xiàng)目的約束條件 概要設(shè)計(jì),基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),7,需求分析-羅列用戶(hù)的需求1/2,(1)系統(tǒng)用于什么任務(wù)? (2)系統(tǒng)從用戶(hù)或其他源接收什么輸入? (3)系統(tǒng)從用戶(hù)或其他源輸出什么? (4)用戶(hù)想要如何同系統(tǒng)打交道? (5)系統(tǒng)的重量和體積如何? (6)系統(tǒng)連接何種外設(shè)? (7)系統(tǒng)是否需要運(yùn)行某些現(xiàn)存的軟件? (8)系統(tǒng)處理哪種類(lèi)型的數(shù)據(jù)? (9)系統(tǒng)是否要與別的系統(tǒng)通訊? (10)系統(tǒng)是單機(jī)還是網(wǎng)絡(luò)系統(tǒng)?,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),8,需求分析-羅列用戶(hù)的需求2/2,(11)系統(tǒng)的響應(yīng)時(shí)間是多少? (12)需要什么安全措施? (13)系統(tǒng)在什么樣的
4、環(huán)境下運(yùn)行? (14)外部存儲(chǔ)媒介和內(nèi)存需要多大? (15)系統(tǒng)的可拆裝性,可靠性和牢固性的期望值是什么? 16)如何給系統(tǒng)供電? (17)系統(tǒng)如何向用戶(hù)通報(bào)故障? (18)是否需要任何手動(dòng)或機(jī)械代用裝置? (19)系統(tǒng)是否將具有遠(yuǎn)程診斷或更正問(wèn)題的功能? (20)其他問(wèn)題,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),9,2)體系結(jié)構(gòu)設(shè)計(jì),描述系統(tǒng)的功能如何實(shí)現(xiàn)是體系結(jié)構(gòu)設(shè)計(jì)的目的 。 決定因素 系統(tǒng)是硬實(shí)時(shí)系統(tǒng)還是軟實(shí)時(shí)系統(tǒng) 操作系統(tǒng)是否需要嵌入 物理系統(tǒng)的成本、尺寸和耗電量是否是產(chǎn)品成功的關(guān)鍵因素 選擇處理器和相關(guān)硬件 其他,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),10,3)詳細(xì)設(shè)計(jì)階段-硬件與軟件劃分,決定哪些用硬件實(shí)
5、現(xiàn),哪些用軟件實(shí)現(xiàn)? 例如: 浮點(diǎn)運(yùn)算 網(wǎng)絡(luò)通信控制器實(shí)現(xiàn)的功能 軟調(diào)制解調(diào)器/硬調(diào)制解調(diào)器 軟件壓縮解壓/硬件壓縮解壓圖像,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),11,詳細(xì)設(shè)計(jì)階段-硬件設(shè)計(jì),設(shè)計(jì)硬件子系統(tǒng):top-down方法 分成模塊 設(shè)計(jì)框圖 例:CPU子系統(tǒng)、存儲(chǔ)器子系統(tǒng)等 定義硬件接口 I/O端口 硬件寄存器 共享內(nèi)存 硬件中斷 存儲(chǔ)器空間分配 處理器的運(yùn)行速度,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),12,詳細(xì)設(shè)計(jì)階段-軟件設(shè)計(jì),設(shè)計(jì)軟件子系統(tǒng) 總體設(shè)計(jì)、模塊設(shè)計(jì) 定義軟件接口 模塊接口、函數(shù)接口,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),13,詳細(xì)設(shè)計(jì)階段-檢查設(shè)計(jì),小項(xiàng)目 自己審查設(shè)計(jì)文檔 中等項(xiàng)目 拿給同事朋友并向
6、他們解釋你的設(shè)計(jì) 大型項(xiàng)目-審查會(huì) 設(shè)計(jì)者應(yīng)作一個(gè)更正式的報(bào)告。由于這是一個(gè)設(shè)計(jì)審查會(huì),召集一群人,主要由工程師組成,并盡可能包括一些對(duì)項(xiàng)目有不同看法角度的成員,如做市場(chǎng)的人員、最終用戶(hù),基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),14,4)系統(tǒng)集成,把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)設(shè)計(jì)過(guò)程中的錯(cuò)誤。 5)系統(tǒng)測(cè)試 對(duì)設(shè)計(jì)好的系統(tǒng)進(jìn)行測(cè)試,看其是否滿(mǎn)足給定的要求。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),15,基于分層和模塊化的嵌入式系統(tǒng)設(shè)計(jì)方法,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),16,4.1.2 嵌入式系統(tǒng)選型原則,1、嵌入式系統(tǒng)選型原則 當(dāng)我們?cè)谠O(shè)計(jì)信息電器、數(shù)字醫(yī)療設(shè)備等嵌入式產(chǎn)品時(shí),嵌入式操作系統(tǒng)
7、的選擇至關(guān)重要。一般而言,在選擇嵌入式操作系統(tǒng)時(shí),可以遵循以下原則??偟膩?lái)說(shuō),就是“做加法還是做減法”的問(wèn)題。 1)市場(chǎng)進(jìn)入時(shí)間 制定產(chǎn)品時(shí)間表與選擇操作系統(tǒng)有關(guān)系,實(shí)際產(chǎn)品和一般演示是不同的。目前是Windows程序員可能是人力資源最豐富的?,F(xiàn)成資源最多的也就可能是WinCE。使用WinCE能夠很快進(jìn)入市場(chǎng)。因?yàn)閃inCE+X86做產(chǎn)品實(shí)際上是在做減法,去掉你不要的功能,能很快出產(chǎn)品,但伴隨的可能是成本高,核心競(jìng)爭(zhēng)力差。而某些高效的操作系統(tǒng)可能由于編程人員缺乏,或由于這方面的技術(shù)積累不夠,影響開(kāi)發(fā)進(jìn)度。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),17,2)可移植性 當(dāng)進(jìn)行嵌入式軟件開(kāi)發(fā)時(shí),可移植性是要重點(diǎn)考
8、慮的問(wèn)題。良好的軟件移植性應(yīng)該比較好,可以在不同平臺(tái)、不同系統(tǒng)上運(yùn)行,跟操作系統(tǒng)無(wú)關(guān)。軟件的通用性和軟件的性能通常是矛盾的,即通用以損失某些特定情況下的優(yōu)化性能為代價(jià)。很難設(shè)想開(kāi)發(fā)一個(gè)嵌入式瀏覽器而僅能在某一特定環(huán)境下應(yīng)用。反過(guò)來(lái)說(shuō),當(dāng)產(chǎn)品與平臺(tái)和操作系統(tǒng)緊密結(jié)合時(shí),往往你的產(chǎn)品的特色就蘊(yùn)含其中。 3)可利用資源 產(chǎn)品開(kāi)發(fā)不同于學(xué)術(shù)課題研究,它是以快速、低成本、高質(zhì)量的推出適合用戶(hù)需求的產(chǎn)品為目的的。集中精力研發(fā)出產(chǎn)品的特色,其他功能盡量由操作系統(tǒng)附加或采用第三方產(chǎn)品,因此操作系統(tǒng)的可利用資源對(duì)于選型是一個(gè)重要參考條件。Linux和WinCE都有大量的資源可以利用,這是它們被看好的重要原因。其
9、它有些實(shí)時(shí)操作系統(tǒng)由于比較封閉,開(kāi)發(fā)時(shí)可以利用的資源比較少,因此多數(shù)功能需要自己獨(dú)立開(kāi)發(fā)。從而影響開(kāi)發(fā)進(jìn)度。近來(lái)的市場(chǎng)需求顯示,越來(lái)越多的嵌入式系統(tǒng),均要求提供全功能的Web瀏覽器。而這要求有一個(gè)高性能、高可靠的圖形用戶(hù)接口GUI的支持。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),18,4)系統(tǒng)定制能力,信息產(chǎn)品不同于傳統(tǒng)PC機(jī)結(jié)構(gòu)的單純性,用戶(hù)的需求是千差萬(wàn)別的,硬件平臺(tái)也都不一樣,所以對(duì)系統(tǒng)的定制能力提出了要求。要分析產(chǎn)品是否對(duì)系統(tǒng)底層有改動(dòng)的需求,這種改動(dòng)是否伴生著產(chǎn)品特色?Linux由于其源代碼開(kāi)放的天生魅力,在定制能力方面具有優(yōu)勢(shì)。隨著WinCE 原碼的開(kāi)放,以及微軟在嵌入式領(lǐng)域力度的加強(qiáng),其定制能
10、力會(huì)有所提升。 5) 成本 成本是所有產(chǎn)品不得不考慮的問(wèn)題。Linux免費(fèi),WinCE等商業(yè)系統(tǒng)需要支付許可證使用費(fèi),但這都不是問(wèn)題的答案。成本是需要綜合權(quán)衡以后進(jìn)行考慮的-選擇某一系統(tǒng)可能會(huì)對(duì)其它一系列的因素產(chǎn)生影響,如對(duì)硬件設(shè)備的選型、人員投入、以及公司管理和與其它合作伙伴的共同開(kāi)發(fā)之間的溝通等許多方面的影響。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),19,6) 中文內(nèi)核支持,國(guó)內(nèi)產(chǎn)品需要對(duì)中文的支持。由于操作系統(tǒng)多數(shù)是采用西文方式,是否支持雙字節(jié)編碼方式,是否遵循GBK,GB18030等各種國(guó)家標(biāo)準(zhǔn),是否支持中文輸入與處理,是否提供第三方中文輸入接口是針對(duì)國(guó)內(nèi)用戶(hù)的嵌入式產(chǎn)品的必需考慮的重要因素。 上
11、面提到用WinCE+x86出產(chǎn)品,這實(shí)際上就是所謂PC家電化;另外一種做法是加法,利用家電行業(yè)的硬件解決方案(絕大部分是非x86的)加以改進(jìn),加上嵌入式操作系統(tǒng),再加上應(yīng)用軟件。這是所謂家電PC化的做法,這種加法的優(yōu)勢(shì)是成本低,特色突出,缺點(diǎn)是產(chǎn)品研發(fā)周期長(zhǎng),難度大(需要深入了解硬件和操作系統(tǒng))。如果選擇這種做法,Linux是一個(gè)好選擇,它讓你能夠深入到系統(tǒng)底層。 嵌入式系統(tǒng)是面向用戶(hù)、面向產(chǎn)品、面向應(yīng)用的。嵌入式處理器的功耗、體積、成本、可靠性、速度、處理能力、電磁兼容性等方面均受到應(yīng)用要求的制約,這些也是各個(gè)半導(dǎo)體廠商之間競(jìng)爭(zhēng)的熱點(diǎn)。嵌入式處理器的應(yīng)用軟件是實(shí)現(xiàn)嵌入式系統(tǒng)功能的關(guān)鍵。軟件要
12、求固化存儲(chǔ),軟件代碼要求高質(zhì)量、高可靠性,系統(tǒng)軟件(OS)的高實(shí)時(shí)性是基本要求。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),20,2、嵌入式操作系統(tǒng)選擇原則,嵌入式操作系統(tǒng)選擇的原則: 1)操作系統(tǒng)的硬件支持 是否支持目標(biāo)硬件平臺(tái)、 可移植性; 2)開(kāi)發(fā)工具的支持程度 ; 3)能否滿(mǎn)足應(yīng)用要求 對(duì)操作系統(tǒng)性能的要求、中文內(nèi)核支持、標(biāo)準(zhǔn)兼容性、技術(shù)支持、源代碼還是目標(biāo)代碼、 許可(一次性付費(fèi)?); 如自建操作系統(tǒng) : 一種是完全從內(nèi)核開(kāi)始,另一種是在免費(fèi)的源代碼公開(kāi)的內(nèi)核上寫(xiě)自己的RTOS。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),21,4.1.3 嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境、方法和開(kāi)發(fā)經(jīng)驗(yàn),1、嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境 嵌入式系統(tǒng)通常是
13、一個(gè)資源受限的系統(tǒng),因此直接在嵌入式系統(tǒng)的硬件平臺(tái)上編寫(xiě)軟件比較困難。目前一般采用的解決辦法是首先在通用計(jì)算機(jī)上編寫(xiě)程序,然后通過(guò)交叉編譯生成目標(biāo)平臺(tái)上可以運(yùn)行的二進(jìn)制代碼格式,最后再下載到目標(biāo)平臺(tái)上的特定位置上運(yùn)行。 交叉開(kāi)發(fā)環(huán)境是指編譯、鏈接和調(diào)試嵌入式應(yīng)用軟件的環(huán)境,它與運(yùn)行嵌入式應(yīng)用軟件的環(huán)境有所不同,通常采用宿主機(jī)/目標(biāo)機(jī)模式。 宿主機(jī)(Host)是一臺(tái)通用計(jì)算機(jī)(如PC機(jī)或者工作站),它通過(guò)串口或者以太網(wǎng)接口與目標(biāo)機(jī)通信。宿主機(jī)的軟硬件資源比較豐富,不但包括功能強(qiáng)大的操作系統(tǒng)(如Windows和Linux),而且還有各種各樣優(yōu)秀的開(kāi)發(fā)工具,能夠大大提高嵌入式應(yīng)用軟件的開(kāi)發(fā)速度和效率
14、。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),22,嵌入式系統(tǒng)的交叉開(kāi)發(fā)環(huán)境一般包括交叉編譯器、交叉調(diào)試器和系統(tǒng)仿真器,其中交叉編譯器用于在宿主機(jī)上生成能在目標(biāo)機(jī)上運(yùn)行的代碼,而交叉調(diào)試器和系統(tǒng)仿真器則用于在宿主機(jī)與目標(biāo)機(jī)間完成嵌入式軟件的調(diào)試。在采用宿主機(jī)/目標(biāo)機(jī)模式開(kāi)發(fā)嵌入式應(yīng)用軟件時(shí),首先利用宿主機(jī)上豐富的資源和良好的開(kāi)發(fā)環(huán)境開(kāi)發(fā)和仿真調(diào)試目標(biāo)機(jī)上的軟件,然后通過(guò)串口或者以太網(wǎng)接口將交叉編譯生成的目標(biāo)代碼傳輸并裝載到目標(biāo)機(jī)上,并在監(jiān)控程序或者操作系統(tǒng)的支持下利用交叉調(diào)試器進(jìn)行分析和調(diào)試,最后目標(biāo)機(jī)在特定環(huán)境下脫離宿主機(jī)單獨(dú)運(yùn)行。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),23,建立交叉開(kāi)發(fā)環(huán)境是進(jìn)行嵌入式軟件開(kāi)發(fā)的第一
15、步,目前常用的交叉開(kāi)發(fā)環(huán)境主要有開(kāi)放和商業(yè)兩種類(lèi)型。開(kāi)放的交叉開(kāi)發(fā)環(huán)境的典型代表是GNU工具鏈、目前已經(jīng)能夠支持x86、ARM、MIPS、PowerPC等多種處理器。商業(yè)的交叉開(kāi)發(fā)環(huán)境則主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、Embedded Visual C+等。 在完成嵌入式軟件的編碼之后,需要進(jìn)行編譯和鏈接以生成可執(zhí)行代碼,由于開(kāi)發(fā)過(guò)程大多是在使用Intel公司x86系列CPU的通用計(jì)算機(jī)上進(jìn)行的,而目標(biāo)環(huán)境的處理器芯片卻大多為ARM、MIPS、PowerPC等系列的微處理器,這就要求在建立好的交叉開(kāi)發(fā)環(huán)境中進(jìn)
16、行交叉編譯和鏈接。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),24,交叉編譯器和交叉鏈接器是能夠在宿主機(jī)上運(yùn)行,并且能夠生成在目標(biāo)機(jī)上直接運(yùn)行的二進(jìn)制代碼的編譯器和鏈接器。例如在基于ARM體系結(jié)構(gòu)的gcc交叉開(kāi)發(fā)環(huán)境中,arm-linux-gcc是交叉編譯器,arm-linux-ld是交叉鏈接器。 嵌入式系統(tǒng)在鏈接過(guò)程中通常都要求使用較小的函數(shù)庫(kù),以便最后產(chǎn)生的可執(zhí)行代碼能夠盡可能的小,因此實(shí)際運(yùn)用時(shí)一般使用經(jīng)過(guò)特殊處理的函數(shù)庫(kù)。對(duì)于嵌入式Linux系統(tǒng)來(lái)講,功能越來(lái)越強(qiáng)、體積越來(lái)越大的C語(yǔ)言函數(shù)庫(kù)glibc和數(shù)學(xué)函數(shù)庫(kù)libm已經(jīng)很難滿(mǎn)足實(shí)際的需要,因此需要采用它們的精化版本uClibc、uClibm和ne
17、wlib等,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),25,目前嵌入式的集成開(kāi)發(fā)環(huán)境都支持交叉編譯和交叉鏈接,如Windriver Tornado和GNU工具鏈等,編寫(xiě)好的嵌入式軟件經(jīng)過(guò)交叉編譯和交叉鏈接后通常會(huì)生成兩種類(lèi)型的可執(zhí)行文件:用于調(diào)試的可執(zhí)行文件和用于固化的可執(zhí)行文件。 2、嵌入式開(kāi)發(fā)流程 在嵌入式系統(tǒng)的應(yīng)用開(kāi)發(fā)中,整個(gè)系統(tǒng)的開(kāi)發(fā)過(guò)程有選擇嵌入式處理器、選擇嵌入式操作系統(tǒng)、開(kāi)發(fā)嵌入式應(yīng)用軟件、進(jìn)行測(cè)試和開(kāi)發(fā)結(jié)束。 嵌入式系統(tǒng)發(fā)展到今天,對(duì)應(yīng)于各種微處理器的硬件平臺(tái)一般都是通用的、固定的、成熟的,這就大大減少了由硬件系統(tǒng)引入錯(cuò)誤的機(jī)會(huì)。此外,由于嵌入式操作系統(tǒng)屏蔽了底層硬件的復(fù)雜性,使得開(kāi)發(fā)者通過(guò)操
18、作系統(tǒng)提供的API函數(shù)就可以完成大部分工作,因此大大簡(jiǎn)化了開(kāi)發(fā)過(guò)程,提高了系統(tǒng)的穩(wěn)定性。嵌入式系統(tǒng)的開(kāi)發(fā)者現(xiàn)在已經(jīng)從反復(fù)進(jìn)行硬件平臺(tái)設(shè)計(jì)的過(guò)程中解脫出來(lái),從而可以將主要精力放在滿(mǎn)足特定的需求上。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),26,嵌入式系統(tǒng)開(kāi)發(fā)流程框圖,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),27,在嵌入式軟件開(kāi)發(fā)中,調(diào)試時(shí)采用的是在宿主機(jī)和目標(biāo)機(jī)之間進(jìn)行的遠(yuǎn)程調(diào)試,調(diào)試器仍然運(yùn)行在宿主機(jī)的通用操作系統(tǒng)之上,但被調(diào)試的進(jìn)程卻是運(yùn)行在基于特定硬件平臺(tái)的嵌入式操作系統(tǒng)中,調(diào)試器和被調(diào)試進(jìn)程通過(guò)串口或者網(wǎng)絡(luò)進(jìn)行通信,調(diào)試器可以控制、訪問(wèn)被調(diào)試進(jìn)程,讀取被調(diào)試進(jìn)程的當(dāng)前狀態(tài),并能夠改變被調(diào)試進(jìn)程的運(yùn)行狀態(tài)。 遠(yuǎn)程調(diào)試
19、(Remote Debug)允許調(diào)試器以某種方式控制目標(biāo)機(jī)上被調(diào)試進(jìn)程的運(yùn)行方式,并具有查看和修改目標(biāo)機(jī)上內(nèi)存單元、寄存器以及被調(diào)試進(jìn)程中變量值等各種調(diào)試功能。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),28,嵌入式系統(tǒng)遠(yuǎn)程調(diào)試方法很多,可被細(xì)分成不同的層次,但一般都具有以下特點(diǎn): 調(diào)試器和被調(diào)試進(jìn)程運(yùn)行在不同的機(jī)器上,調(diào)試器運(yùn)行在PC或者工作站上(宿主機(jī)),而被調(diào)試進(jìn)程則運(yùn)行在各種專(zhuān)業(yè)調(diào)試板上(目標(biāo)機(jī))。 調(diào)試器通過(guò)某種通信方式與被調(diào)試進(jìn)程建立聯(lián)系,如串口、并口、網(wǎng)絡(luò)、DBM、JTAG或者專(zhuān)用的通信方式。 目標(biāo)機(jī)可能是某種形式的系統(tǒng)仿真器,通過(guò)在宿主機(jī)上運(yùn)行目標(biāo)機(jī)的仿真軟件,整個(gè)調(diào)試過(guò)程可以在一臺(tái)計(jì)算機(jī)上運(yùn)
20、行。此時(shí)物理上雖然只有一臺(tái)計(jì)算機(jī),但邏輯上仍然存在著宿主機(jī)和目標(biāo)機(jī)的區(qū)別。 在嵌入式軟件開(kāi)發(fā)過(guò)程中的調(diào)試方式有很多種,應(yīng)根據(jù)實(shí)際的開(kāi)發(fā)要求和條件進(jìn)行選擇。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),29,ARM實(shí)驗(yàn)平臺(tái)與PC機(jī)連接關(guān)系框圖,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),30,3、 嵌入式系統(tǒng)開(kāi)發(fā)工具與測(cè)試 通常采用宿主機(jī)/目標(biāo)機(jī)方式。首先,利用宿主機(jī)上豐富的資源及良好的開(kāi)發(fā)環(huán)境開(kāi)發(fā)和仿真調(diào)試目標(biāo)機(jī)上的軟件。然后,通過(guò)串行口或網(wǎng)絡(luò)及交叉編譯生成目標(biāo)代碼傳輸并裝載到目標(biāo)機(jī)上,并用交叉調(diào)試器在監(jiān)控程序或?qū)崟r(shí)內(nèi)核/操作系統(tǒng)的支持下進(jìn)行實(shí)時(shí)分析和調(diào)度。最后,目標(biāo)機(jī)在特定的環(huán)境下運(yùn)行。 嵌入式系統(tǒng)開(kāi)發(fā)工具主要包括有高級(jí)語(yǔ)言編
21、譯器、源程序模擬器和實(shí)時(shí)在線仿真器。 1)高級(jí)語(yǔ)言編譯器 C語(yǔ)言作為一種通用高級(jí)語(yǔ)言大幅度提高了嵌入式系統(tǒng)工程的工作效率,充分發(fā)揮出嵌入式處理器日益提高的性能,縮短產(chǎn)品進(jìn)入市場(chǎng)時(shí)間。另外,C語(yǔ)言便于移植和修改,使產(chǎn)品的升級(jí)和繼承更迅速。嵌入式系統(tǒng)中C語(yǔ)言編譯器要專(zhuān)門(mén)進(jìn)行優(yōu)化,以提高編譯效率。優(yōu)秀的C編譯器代碼長(zhǎng)度僅比以匯編語(yǔ)言編寫(xiě)的同樣功能程度長(zhǎng)520。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),31,2)源程序模擬器 它是在廣泛使用的、人機(jī)接口完備的工作平臺(tái)上,如小型機(jī)和PC機(jī),通過(guò)軟件手段模擬執(zhí)行某種嵌入式處理器內(nèi)核編寫(xiě)的源程序測(cè)試工具。簡(jiǎn)單的模擬器可以通過(guò)指令解釋方式逐條執(zhí)行源程序,分配虛擬存儲(chǔ)空間和外
22、設(shè),供程序員檢查。高級(jí)的模擬器可以利用計(jì)算機(jī)的外部接口模擬處理器的I/O信號(hào)。模擬器軟件獨(dú)立于處理器硬件,一般與編譯器集成在同一個(gè)環(huán)境中,是一種有效的源程序檢驗(yàn)和測(cè)試工具。但其畢竟是以一種處理器模擬另一種處理器的運(yùn)行,在指令執(zhí)行時(shí)間、中斷響應(yīng)、定時(shí)器等方面可能與實(shí)際處理器有相當(dāng)大的差別。另外,它無(wú)法和ICE一樣,仿真嵌入式系統(tǒng)在應(yīng)用系統(tǒng)中的實(shí)際執(zhí)行情況。 3)實(shí)時(shí)在線仿真系統(tǒng)ICE 在計(jì)算機(jī)輔助設(shè)計(jì)非常發(fā)達(dá)的今天,實(shí)時(shí)在線仿真,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),32,系統(tǒng)(ICE)仍是進(jìn)行嵌入式應(yīng)用系統(tǒng)調(diào)試最有效的開(kāi)發(fā)工具。ICE首先可以通過(guò)實(shí)際執(zhí)行,對(duì)應(yīng)用程序進(jìn)行原理性檢驗(yàn),排除人的思維難以發(fā)現(xiàn)的設(shè)
23、計(jì)邏輯錯(cuò)誤。ICE的另一個(gè)主要功能是在應(yīng)用系統(tǒng)中仿真微控制器的實(shí)際執(zhí)行,發(fā)現(xiàn)和排除由于硬件干擾等引起的異常執(zhí)行行為。此外,高級(jí)的ICE帶有完善的跟蹤功能,可以將應(yīng)用系統(tǒng)的實(shí)際狀態(tài)變化、微控制器對(duì)狀態(tài)變化的反映、以及應(yīng)用系統(tǒng)對(duì)控制的響應(yīng)等以一種錄像的方式連續(xù)記錄下來(lái),以供分析和優(yōu)化控制過(guò)程。 嵌入式應(yīng)用的特點(diǎn)是和現(xiàn)實(shí)世界中硬件系統(tǒng)有關(guān),存在各種異變和事先未知的變化,這就給微處理器的指令執(zhí)行帶來(lái)了各種不確定性,這種不確定性只有通過(guò)ICE的實(shí)時(shí)在線仿真才能發(fā)現(xiàn),特別是在分析可靠性時(shí)要在同樣條件下多次仿真以發(fā)現(xiàn)偶然出現(xiàn)的錯(cuò)誤。ICE不僅是軟件硬件排錯(cuò)工具,同時(shí)也是提高和優(yōu)化系統(tǒng)性能指標(biāo)的工具。,基于A
24、RM的硬件結(jié)構(gòu)設(shè)計(jì),33,4)軟件測(cè)試有兩種方法: (1)白盒測(cè)試 基于代碼的測(cè)試檢查程序的內(nèi)部設(shè)計(jì)。把100%的代碼都測(cè)試一遍是不可能的,所以要選擇最重要的代碼進(jìn)行白盒測(cè)試。在進(jìn)行測(cè)試是要把系統(tǒng)的與其用途作為重要依據(jù),根據(jù)實(shí)際中對(duì)負(fù)載、定時(shí)、性能的要求,判斷軟件是否滿(mǎn)足這些需求規(guī)范。 白盒測(cè)試一般在目標(biāo)硬件上進(jìn)行。通過(guò)硬件仿真進(jìn)行,所以選取的測(cè)試工具應(yīng)該支持在宿主環(huán)境中進(jìn)行。這種方法一般是開(kāi)發(fā)方的內(nèi)部測(cè)試方法。 (2)黑盒測(cè)試 在某些情況下也稱(chēng)為功能測(cè)試。不依賴(lài)于代碼,而是從使用的角度進(jìn)行測(cè)試。 黑盒只能限制在需求的范圍內(nèi)進(jìn)行。第三方采用的方法,進(jìn)行驗(yàn)證和確認(rèn)測(cè)試。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì)
25、,34,嵌入式軟件的測(cè)試工具 內(nèi)存分析工具、性能分析工具、GUI(圖形界面)測(cè)試工具、覆蓋分析工具。 硬件故障的特性像一個(gè)浴缸曲線。在模塊的生命初期,硬件故障率是很高的;在產(chǎn)品的有效生命期,故障率比較低;一旦達(dá)到生命末期,模塊的故障率又提高了。 嵌入式微處理器的設(shè)計(jì)一般都具備有結(jié)構(gòu)多樣性和應(yīng)用靈活性的兩大特點(diǎn)。就智能性來(lái)說(shuō),現(xiàn)代的芯片計(jì)算機(jī)可以進(jìn)行邏輯、符號(hào)和語(yǔ)言處理等,這些被認(rèn)為是大腦左半球的功能,而且達(dá)到了人類(lèi)自己都感到驚奇的程度。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),35,4、嵌入式系統(tǒng)開(kāi)發(fā)方法的變化 過(guò)去擅長(zhǎng)于軟件設(shè)計(jì)的編程人員一般對(duì)硬件電路設(shè)計(jì)敬而遠(yuǎn)之,硬件設(shè)計(jì)和軟件設(shè)計(jì)被認(rèn)為是性質(zhì)完全不同的
26、技術(shù)。隨著電子信息技術(shù)和計(jì)算機(jī)技術(shù)的飛速發(fā)展,特別是HDL的發(fā)明,硬件設(shè)計(jì)方法發(fā)生了變化,數(shù)字系統(tǒng)的硬件組成及其行為完全可以用HDL來(lái)描述和仿真。在這種情況下,要求設(shè)計(jì)人員都要借助HDL工具來(lái)描述硬件電路的行為、功能、結(jié)構(gòu)、數(shù)據(jù)流、信號(hào)連接關(guān)系和定時(shí)關(guān)系,設(shè)計(jì)出滿(mǎn)足各種功能要求的硬件系統(tǒng)。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),36,EDA工具允許有兩種設(shè)計(jì)輸入工具,分別適應(yīng)硬件電路設(shè)計(jì)人員和軟件設(shè)計(jì)人員有兩種不同背景的需要。讓具有硬件背景的設(shè)計(jì)人員用已習(xí)慣的原理圖輸入方式,而讓具有軟件背景的實(shí)際人員用硬件描述語(yǔ)言輸入方式。由于采用HDL描述輸入,因而與系統(tǒng)行為描述更接近,且更便于綜合、時(shí)域傳遞和修改,還
27、能建立獨(dú)立于工藝的設(shè)計(jì)文件。所以,擅長(zhǎng)軟件編程的人一旦掌握了HDL和一些必要的硬件知識(shí),往往可以比習(xí)慣于傳統(tǒng)設(shè)計(jì)的工程師設(shè)計(jì)出更好的硬件電路和系統(tǒng)。所以,習(xí)慣于傳統(tǒng)設(shè)計(jì)的工程師應(yīng)該學(xué)會(huì)用HDL來(lái)描述和編程。 嵌入式系統(tǒng)設(shè)計(jì)的3個(gè)層次 第1層次以PCB CAD軟件和ICE為主要工具的設(shè)計(jì)方法。這是過(guò)去和現(xiàn)在我國(guó)單片機(jī)應(yīng)用人員一直沿用的方法,其步驟是先抽象后具體。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),37,第2層次以EDA工具軟件和EOS為開(kāi)發(fā)平臺(tái)的設(shè)計(jì)方法。隨著微電子工藝的發(fā)展,各種通用的可編程半定制邏輯器件應(yīng)運(yùn)而生。這樣,硬件設(shè)計(jì)人員從過(guò)去選擇和使用標(biāo)準(zhǔn)通用集成電路,逐步轉(zhuǎn)向自己設(shè)計(jì)和制作部分專(zhuān)用的集成
28、電路器件ASIC。隨著半制定器件的規(guī)模增大,可集成的器件越來(lái)越多,使印制板上互連器件的線路、裝配和調(diào)試費(fèi)用越來(lái)越少,即減少了面積和插件的數(shù)量,降低了成本,又增加了可編程應(yīng)用的靈活性。更重要的是降低了系統(tǒng)的功耗,提高了系統(tǒng)的工作速度和可靠性及安全性。 半定制邏輯器件經(jīng)歷了可編程邏輯陣列PLA、可編程陣列邏輯PAL、通用陣列邏輯GAL、復(fù)雜可編程邏輯器件CPLD和現(xiàn)場(chǎng)可編程門(mén)陣列FPGA的發(fā)展過(guò)程。設(shè)計(jì)人員可以利用各種EDA工具和標(biāo)準(zhǔn)的CPLD和FPGA等,設(shè)計(jì)和自制用戶(hù)專(zhuān)用的集成電路。然后再通過(guò)自下而上的設(shè)計(jì)方法,把用半定制期間設(shè)計(jì)自制的集成電路、可編程外圍器件、所選擇的ASIC與嵌入式微控制器
29、或微處理器在印版上布局、布線構(gòu)成系統(tǒng)。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),38,第3層次以IP內(nèi)核庫(kù)為設(shè)計(jì)基礎(chǔ),用軟硬件協(xié)同設(shè)計(jì)技術(shù)的設(shè)計(jì)方法。已開(kāi)始從集成電路級(jí)設(shè)計(jì)轉(zhuǎn)向到集成系統(tǒng)級(jí)的設(shè)計(jì)。目前已進(jìn)入單片系統(tǒng)SOC設(shè)計(jì)階段,并開(kāi)始進(jìn)入實(shí)用階段。如智能IC卡等。 這3個(gè)層次各有各的應(yīng)用范圍。初級(jí)應(yīng)用設(shè)計(jì)人員會(huì)以第1種方法為主;富有經(jīng)驗(yàn)的設(shè)計(jì)人員會(huì)以第2種方法為主;很專(zhuān)業(yè)的設(shè)計(jì)人員會(huì)用第3種方法進(jìn)行簡(jiǎn)單單片系統(tǒng)的設(shè)計(jì)和應(yīng)用。 嵌入式微處理器的設(shè)計(jì)一般都具有結(jié)構(gòu)多樣性與應(yīng)用靈活性的兩大特點(diǎn)。硬件和軟件的協(xié)同設(shè)計(jì)在嵌入式系統(tǒng)設(shè)計(jì)中是一項(xiàng)很重要的技術(shù)。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),39,5、 嵌入式系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),
30、嵌入式系統(tǒng)設(shè)計(jì)主要適用于電子玩具、工業(yè)控制、民用電器、機(jī)電一體化產(chǎn)品、航天航海等眾多領(lǐng)域。它們的應(yīng)用開(kāi)發(fā)不單是軟件的開(kāi)發(fā),其開(kāi)發(fā)語(yǔ)言和硬件密切相關(guān)。所以只有開(kāi)發(fā)者對(duì)嵌入式系統(tǒng)的內(nèi)部結(jié)構(gòu)非常了解,才能編好軟件。而嵌入式系統(tǒng)的開(kāi)發(fā)應(yīng)用還涉及到硬件擴(kuò)展接口和各類(lèi)傳感器,更重要的是必須盡可能地了解各學(xué)科中適應(yīng)嵌入式系統(tǒng)完成的控制項(xiàng)目以及控制過(guò)程。 掌握嵌入式系統(tǒng)的應(yīng)用開(kāi)發(fā)需要一個(gè)過(guò)程。首先必須掌握數(shù)字電路和模擬電路方面的知識(shí),還必須學(xué)習(xí)單片機(jī)原理、硬件結(jié)構(gòu)、擴(kuò)展接口和編程語(yǔ)言。初次開(kāi)發(fā)時(shí)由于沒(méi)經(jīng)驗(yàn),可能要經(jīng)過(guò)多次反復(fù)才能完成項(xiàng)目。這時(shí),你會(huì)得到較大的收獲和積累,表現(xiàn)在以下幾個(gè)方面: 硬件設(shè)計(jì)方面的積累
31、; 軟件設(shè)計(jì)方面的積累; 設(shè)計(jì)經(jīng)驗(yàn)方面的積累。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),40,系統(tǒng)的應(yīng)用開(kāi)發(fā)不單是軟件的開(kāi)發(fā),其開(kāi)發(fā)語(yǔ)言和硬件密切相關(guān)。所以只有開(kāi)發(fā)者對(duì)嵌入式系統(tǒng)的內(nèi)部結(jié)構(gòu)非常了解,才能編好軟件。而嵌入式系統(tǒng)的開(kāi)發(fā)應(yīng)用還涉及到硬件擴(kuò)展接口和各類(lèi)傳感器,更重要的是必須盡可能地了解各學(xué)科中適應(yīng)嵌入式系統(tǒng)完成的控制項(xiàng)目以及控制過(guò)程。 硬件開(kāi)發(fā)是嵌入式系統(tǒng)開(kāi)發(fā)的基礎(chǔ),軟件的開(kāi)發(fā)是建立在硬件之上,軟硬件設(shè)計(jì)的巧妙結(jié)合是項(xiàng)目開(kāi)發(fā)質(zhì)量保證的關(guān)鍵。在硬件開(kāi)發(fā)設(shè)計(jì)中應(yīng)注意以下幾個(gè)方面: 開(kāi)發(fā)者必須學(xué)習(xí)應(yīng)用最新嵌入式系統(tǒng),如新型的MPU的優(yōu)勢(shì)表現(xiàn)在時(shí)鐘頻率的進(jìn)一步提高。處理器相關(guān)功能的提高,內(nèi)部程序存儲(chǔ)器和數(shù)據(jù)
32、存儲(chǔ)器容量的進(jìn)一步擴(kuò)大,A/D和D/A轉(zhuǎn)換器的內(nèi)部集成,LCD顯示等功能模塊的內(nèi)部集成,外部擴(kuò)展功能的增強(qiáng)。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),41,擴(kuò)展接口的開(kāi)發(fā)盡可能采用FPGA或CPLD等器件開(kāi)發(fā)。這類(lèi)器件都有開(kāi)發(fā)平臺(tái)的支持,開(kāi)發(fā)難度較小,開(kāi)發(fā)出的硬件性能可靠、結(jié)構(gòu)緊湊、利于修改、保密性好。 在擴(kuò)展了RS-232等標(biāo)準(zhǔn)串口以后,嵌入式系統(tǒng)可和PC機(jī)通信,對(duì)于眾多測(cè)控方面的人機(jī)對(duì)話、報(bào)表輸出、集成控制等功能進(jìn)行優(yōu)勢(shì)互補(bǔ)。 C語(yǔ)言是普及最廣泛的程序設(shè)計(jì)語(yǔ)言,它既有高級(jí)語(yǔ)言的各種特點(diǎn),又可對(duì)硬件進(jìn)行操作,并可進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì),用C語(yǔ)言編寫(xiě)的程序較容易移植。目前已有專(zhuān)用的C語(yǔ)言編譯器,它們可生成簡(jiǎn)潔可
33、靠的目標(biāo)代碼,在代碼效率和代碼執(zhí)行速度上完全可以和匯編媲美。 有時(shí)開(kāi)發(fā)一個(gè)嵌入式系統(tǒng)應(yīng)用項(xiàng)目,在仿真調(diào)試完成后系統(tǒng)運(yùn)行正常,而接入現(xiàn)場(chǎng)后出現(xiàn)不能正常運(yùn)行或運(yùn)行時(shí)好時(shí)壞,脫離現(xiàn)場(chǎng)后一切正常,這種現(xiàn)象就涉及到可靠性問(wèn)題。解決這種問(wèn)題可以從以下幾個(gè)方面考慮:,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),42,1)選擇性能好、抗干擾能力強(qiáng)的供電系統(tǒng),盡量少地從電源引入干擾; 2)設(shè)計(jì)電路板時(shí)排除可能引起干擾的因素,合理布線,避免高頻信號(hào)的干擾; 3)選擇較好的接地方式,如模擬地和數(shù)字地采用一點(diǎn)接地方式,驅(qū)動(dòng)大電流信號(hào)時(shí)采用光電隔離; 4)數(shù)據(jù)采集時(shí)進(jìn)行數(shù)字濾波處理,常用的數(shù)字濾波方式有:程序判斷濾波、中位值濾波、算術(shù)平
34、均濾波、遞推平均濾波法、防脈沖干擾平均值濾波、一階滯后濾波等。 由于干擾問(wèn)題可能是由于不同的原因引起,在設(shè)計(jì)時(shí)要根據(jù)項(xiàng)目應(yīng)用場(chǎng)所分析可能出現(xiàn)的干擾,有目的地設(shè)計(jì)抗干擾電路。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),43,其中,開(kāi)發(fā)平臺(tái)部分為用戶(hù)提供了一個(gè)簡(jiǎn)易,方便的開(kāi)發(fā)環(huán)境,使用戶(hù)可對(duì)單片機(jī)應(yīng)用項(xiàng)目進(jìn)行可視化開(kāi)發(fā) 硬件智能開(kāi)發(fā)部分提供了一個(gè)通過(guò)選項(xiàng)開(kāi)發(fā)硬件原理圖的方法,這個(gè)過(guò)程中根據(jù)硬件方案平臺(tái)自動(dòng)的生成一部分配套軟件。 可視化軟件開(kāi)發(fā)可簡(jiǎn)單方便的開(kāi)發(fā)出用戶(hù)程序,成品系統(tǒng)庫(kù)中有大量已開(kāi)發(fā)成功的項(xiàng)目,在產(chǎn)品開(kāi)發(fā)時(shí)如開(kāi)發(fā)項(xiàng)目功能相近,只要略加修改便可成為一個(gè)新的項(xiàng)目。成品系統(tǒng)庫(kù)開(kāi)發(fā)為用戶(hù)升級(jí)成品庫(kù)提供了一個(gè)開(kāi)放
35、式的環(huán)境。 子程序開(kāi)發(fā)中為子程序的升級(jí)提供了一個(gè)開(kāi)放式的環(huán)境。實(shí)用信息部分提供了開(kāi)發(fā)方面用到的大量實(shí)用信息,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),44,4.1.4嵌入式系統(tǒng)設(shè)計(jì)的層次和設(shè)計(jì)架構(gòu),嵌入式系統(tǒng)設(shè)計(jì)的層次分為系統(tǒng)級(jí)和應(yīng)用級(jí) 設(shè)計(jì)原則具體分為: 復(fù)用原則 模塊化原則 標(biāo)準(zhǔn)化原則 地址總線;數(shù)據(jù)總線;控制總線 電源、網(wǎng)絡(luò)標(biāo)號(hào)的使用-網(wǎng)絡(luò)標(biāo)號(hào)的使用反映用途 例如:RXD,TXD等 分圖的處理 分圖之間的連接線盡量少,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),45,嵌入式系統(tǒng)硬件系統(tǒng)的設(shè)計(jì)架構(gòu)大致可包含三部分: (1)、微處理器的選型、時(shí)鐘及復(fù)位電路的設(shè)計(jì) (2)、存儲(chǔ)系統(tǒng)ROM/RAM的設(shè)計(jì) (3)、系統(tǒng)外圍設(shè)備接口
36、電路的設(shè)計(jì) 其中系統(tǒng)外圍設(shè)備接口電路的硬件部分包括:通用接口的設(shè)計(jì)、人機(jī)交互接口的設(shè)計(jì)和網(wǎng)絡(luò)接口的設(shè)計(jì)。 針對(duì)不同類(lèi)型的處理器應(yīng)采用不同的設(shè)計(jì)方法。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),46,近年來(lái),各種可編程芯片的出現(xiàn),改變了嵌入式硬件模塊的設(shè)計(jì)方法,出現(xiàn)“可重構(gòu)計(jì)算“的概念??芍貥?gòu)計(jì)算是通過(guò)可編程邏輯器件實(shí)現(xiàn)的,它允許在不改變硬件電路板的情況下,實(shí)現(xiàn)不同的控制接口和控制功能??芍貥?gòu)計(jì)算結(jié)合了通用微處理器和ASIC的特點(diǎn)。 可重構(gòu)計(jì)算是通過(guò)現(xiàn)場(chǎng)編成門(mén)陣列FPGA實(shí)現(xiàn)的。FPGA是20世紀(jì)80年代中期以后發(fā)展起來(lái)的一種可編程的大規(guī)模集成器件。FPGA具有保密性好、體積小、重量輕、可靠性高等一系列專(zhuān)用大規(guī)
37、模集成電路ASIC的優(yōu)點(diǎn),是一種新型的ASIC產(chǎn)品。 FGPA的出現(xiàn),是電子系統(tǒng)設(shè)計(jì)領(lǐng)域內(nèi)的一次重大變革。這次變革使一個(gè)電子系統(tǒng)可僅僅由三種標(biāo)準(zhǔn)模塊構(gòu)成,即微處理器、存儲(chǔ)器和可編程邏輯器件。以往,前兩種器件已經(jīng)產(chǎn)品化、系列化,而系統(tǒng)中大量的邏輯控制仍由許多中小規(guī)模器件來(lái)實(shí)現(xiàn),其工作復(fù)雜,開(kāi)發(fā)周期長(zhǎng),而且速度低,可靠性差。FPGA的出現(xiàn),使系統(tǒng)中的第三個(gè)模塊也實(shí)現(xiàn)了大規(guī)模集成化與可編程化。這一方面改進(jìn)了系統(tǒng)的可調(diào)整性,降低了功耗,提高了可靠性促使系統(tǒng)更加小型化,另一方面大大縮短了系統(tǒng)的開(kāi)發(fā)周期,減少了設(shè)計(jì)成本,并降低了設(shè)計(jì)風(fēng)險(xiǎn)。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),47,4.2 微處理器系統(tǒng)的硬件設(shè)計(jì),在
38、現(xiàn)階段,嵌入式系統(tǒng)設(shè)計(jì)仍處于一種手工階段。雖然有關(guān)硬件結(jié)構(gòu)和軟件子系統(tǒng)的知識(shí)是很清楚的,但是還沒(méi)有協(xié)調(diào)整個(gè)設(shè)計(jì)過(guò)程的通用系統(tǒng)設(shè)計(jì)方法,在大多數(shù)項(xiàng)目中嵌入式系統(tǒng)的設(shè)計(jì)仍然采用某種特定方法。 嵌入式系統(tǒng)設(shè)計(jì)所面臨的某些挑戰(zhàn)源于基礎(chǔ)技術(shù)的改變以及系統(tǒng)各部件如何能全部正確地混合和集成在一起的細(xì)微之處,另一些挑戰(zhàn)源于新的并且常常是不熟悉的系統(tǒng)需求。此外用于通信和協(xié)作的基礎(chǔ)設(shè)施和技術(shù)的改善已經(jīng)使快速設(shè)計(jì)以響應(yīng)市場(chǎng)需求呈現(xiàn)出前所未有的可能性。但是,還沒(méi)有有效的設(shè)計(jì)方法和相關(guān)的設(shè)計(jì)工具足以迅速應(yīng)付這些挑戰(zhàn)。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),48,微處理器系統(tǒng)的硬件一般包括有微處理器、時(shí)鐘電路、復(fù)位電路和電源管理等幾
39、部分。 微處理器是根據(jù)不同應(yīng)用的場(chǎng)合來(lái)進(jìn)行選型。 時(shí)鐘管理為各個(gè)外圍模塊提供時(shí)鐘。在不使用某個(gè)單元時(shí)刻關(guān)閉其時(shí)鐘以降低功耗。這些時(shí)鐘均來(lái)自核內(nèi)部的可控頻率的時(shí)鐘源PLL。 復(fù)位電路一般有硬件復(fù)位(RESET引腳)、Watchdog軟件復(fù)位等方式。 電源管理可控制處理器的幾種不同耗電的工作方式。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),49,(1)運(yùn)行方式 屬正常工作方式,允許所有電源和允許的時(shí)鐘。在復(fù)位可進(jìn)入運(yùn)行方式。 (2)空閑方式 允許用戶(hù)停止CPU核時(shí)鐘,但仍繼續(xù)監(jiān)視片內(nèi)和外中斷服務(wù)請(qǐng)求。這時(shí)系統(tǒng)單元模塊(中斷控制器、LCD控制器、時(shí)鐘和電源管理器等)及存儲(chǔ)器仍處于運(yùn)行狀態(tài) (3)睡眠方式 內(nèi)核可無(wú)電
40、源,僅電源管理器繼續(xù)工作。僅喚醒信號(hào)和復(fù)位信號(hào)等才能觸發(fā)處理器。 快速方式(PXA250)或低速方式(S3C2410) 部分機(jī)器帶有允許處理機(jī)核在短時(shí)間內(nèi)高速/低速運(yùn)行。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),50,4.2.1 ARM微處理器芯片選型的一般原則,(1)ARM內(nèi)核 如果希望使用WinCE或Linux等操作系統(tǒng)以減少軟件開(kāi)發(fā)時(shí)間,就需要選擇ARM7T以上帶有MMU功能的ARM芯片。 (2)系統(tǒng)時(shí)鐘控制器 系統(tǒng)時(shí)鐘決定了ARM芯片的處理速度,常見(jiàn)的ARM7芯片系統(tǒng)時(shí)鐘為20MHZ133MHZ ,ARM9的系統(tǒng)時(shí)鐘為100MHZ233MHZ,ARM10最高可以達(dá)到700MHZ。有的芯片只有一個(gè)主時(shí)
41、鐘頻率,這樣的芯片不能顧及UART和音頻時(shí)鐘的準(zhǔn)確性。有的芯片內(nèi)部時(shí)鐘控制器可以分別為CPU內(nèi)核和USB、DSP、音頻等功能部件提供不同頻率的時(shí)鐘。 還有內(nèi)存儲(chǔ)器容量、USB接口、GPIO(引腳)數(shù)量、IIS(集成音頻接口)、LCD控制器、PWM輸出、ADC和DAC、UART和IrDA、DSP、內(nèi)置FPGA、DMA控制器等。還有多ARM內(nèi)核、ARM芯核+DSP芯核、ARM芯核+FPGA等。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),51,ARM處理器本身是32位設(shè)計(jì),但也配備16位指令集,以允許軟件編碼為更短的16位指令。與等價(jià)的32代碼相比,占用的存儲(chǔ)器空間可節(jié)省高達(dá)35%,然而保留了32位系統(tǒng)所有的優(yōu)勢(shì)。
42、 ARM還提供了兩個(gè)前沿特性嵌入式ICERT邏輯和嵌入式跟蹤宏核系列,用以輔助帶嵌入式處理器核的、高集成的SOC器件的調(diào)試。 ARM業(yè)界領(lǐng)先的跟蹤解決方案嵌入式跟蹤宏單元(ETM,Embeddeb Trace Macrocell),被設(shè)計(jì)成駐留在ARM處理器上,用以監(jiān)控內(nèi)部總線,并能以核速度無(wú)妨礙地跟蹤指令和數(shù)據(jù)的訪問(wèn)。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),52,* 基于ARM7架構(gòu)的嵌入式芯片Samsung3C44B0 x芯片* 8MB SDRAM,1MB線性Flash、16MB非線性Flash* 接口豐富:串口、USB等* 鍵盤(pán)輸入,320240分辨率16級(jí)灰度LCD顯示* 10M以太網(wǎng)口,支持TC
43、P/IP協(xié)議* 觸摸屏* 預(yù)留A/D、I/D、SPI、I2C、IIS等總線接口,簡(jiǎn)介,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),53,嵌入式硬件平臺(tái)體系結(jié)構(gòu)圖,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),54,4.2.2 多路時(shí)鐘電路的設(shè)計(jì),在8位單片機(jī)中時(shí)鐘電路產(chǎn)生的頻率可直接作為單片機(jī)的主頻工作,但在高頻時(shí)易產(chǎn)生電磁干擾。因此在高性能的嵌入式處理器上通常使用頻率較低的基準(zhǔn)時(shí)鐘源,然后通過(guò)鎖相倍頻電路得到高頻時(shí)鐘在進(jìn)行分頻器進(jìn)行分頻,獲得多時(shí)鐘源來(lái)提供給系統(tǒng)使用。 出于節(jié)電設(shè)計(jì)的考慮,不同的I/O接口等智能部件的工作狀態(tài)可以由處理器的編程控制。于是這樣處理器內(nèi)部設(shè)計(jì)了多種時(shí)鐘源,分別為處理器內(nèi)核、實(shí)時(shí)時(shí)鐘電路、I/O部件提供
44、不同的時(shí)鐘信號(hào)。例如,使用MC68EZ328的鎖相時(shí)鐘電路可以形成四種時(shí)鐘輸出,其一是CLK32,即32khz的時(shí)鐘源,送給實(shí)時(shí)時(shí)鐘,完成嵌入式處理器的日歷功能。其二是LCDCLK,液晶控制器的時(shí)鐘。其三是DMACLK,DMA控制器的時(shí)鐘。最后是SYSCLK,系統(tǒng)主時(shí)鐘。 ARM微處理器內(nèi)核中有一個(gè)可控頻率的時(shí)鐘源PLL(Phase Locked Loop,鎖相環(huán)電路)把低頻振蕩器的輸出作為自己的輸入,產(chǎn)生所需的高頻信號(hào)。時(shí)鐘發(fā)生模塊有一個(gè)邏輯電路,用來(lái)在復(fù)位后或各種模式下產(chǎn)生穩(wěn)定的時(shí)鐘頻率。其他的時(shí)鐘均來(lái)自核內(nèi)部的PLL。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),55,多路時(shí)鐘方式一般用于高性能的嵌入式處
45、理器中,通常32位及以上處理器中不同的功能部件電路使用不同頻率的時(shí)鐘頻率工作。 各個(gè)時(shí)鐘內(nèi)部之間具有相關(guān)性,它們是通過(guò)主時(shí)鐘分頻或倍頻來(lái)形成的。有的系統(tǒng)是采用兩套石英晶振來(lái)實(shí)現(xiàn)。 日歷時(shí)鐘系統(tǒng)與處理器集成在一起。 日歷時(shí)鐘32.768KHz,可以通過(guò)兩種方式實(shí)現(xiàn)。其一是通過(guò)對(duì)主時(shí)鐘進(jìn)行分頻方式來(lái)實(shí)現(xiàn),其二是由外部32.768KHz晶體振蕩器直接產(chǎn)生32.768KHz 日歷時(shí)鐘信號(hào)。 處理器的日歷時(shí)鐘一直工作,即使系統(tǒng)進(jìn)入省電狀態(tài)的時(shí)候也同樣工作。 系統(tǒng)不需要外接日歷時(shí)鐘芯片和相關(guān)的電路,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),56,4.2.3 系統(tǒng)復(fù)位電路的設(shè)計(jì),系統(tǒng)復(fù)位電路的設(shè)計(jì)也是設(shè)計(jì)中一個(gè)必要的環(huán)節(jié)。
46、比如在 微處理器S3C44B0X中,首先把外部復(fù)位信號(hào)也作為一個(gè)中斷來(lái)處理。在系統(tǒng)復(fù)位的時(shí)候,程序(PC)指針被設(shè)置成0,使程序跳轉(zhuǎn)到0 x00000000開(kāi)始運(yùn)行。此空間對(duì)應(yīng)的是Bank0,系統(tǒng)的1MB的線性Flash和處理器的Bank0相連接。在線性Flash里存儲(chǔ)的是供系統(tǒng)初始化的程序,此程序負(fù)責(zé)配置處理系統(tǒng)的結(jié)構(gòu)、工作模式以及自動(dòng)檢測(cè)嵌入式控制器的各個(gè)硬件是否工作正常。系統(tǒng)經(jīng)過(guò)初始化和硬件自檢以后,此程序負(fù)責(zé)把存儲(chǔ)在16MB的非線性處理器里面的system.bin文件復(fù)制到0 xc000000地址(此地址是系統(tǒng)8MB的SDRAM的首地址)。然后,引導(dǎo)程序把程序(PC)指針指向0 xc0
47、00000地址,系統(tǒng)開(kāi)始運(yùn)行。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),57,系統(tǒng)復(fù)位電路圖,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),58,初始化內(nèi)容,中斷向量表(vector table) 始終在 0 地址處開(kāi)始。 初始化存儲(chǔ)器系統(tǒng) Memory access interface: type, timing, etc. 初始化堆棧 為指定的模式分別設(shè)置 SP,注意模式改變次序 初始化有特殊要求的端口、設(shè)備 初始化應(yīng)用程序執(zhí)行環(huán)境 全局變量區(qū),動(dòng)態(tài)存儲(chǔ)器分配區(qū) 改變處理器模式 包括中斷使能控制 呼叫應(yīng)用程序 跳轉(zhuǎn)至主函數(shù)入口,部分次序可調(diào)整,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),59,4.2.4 電源管理器,嵌入式系統(tǒng)中各個(gè)單元的電
48、壓范圍有如下幾種: 1.35V(部分微處理器)、 3.3V(外部接口芯片) 和 5.0V、 12V(外部設(shè)備)。 操作系統(tǒng)是通過(guò)電源管理器來(lái)進(jìn)行系統(tǒng)的電源管理,提高整個(gè)系統(tǒng)的電源效率,并為每一個(gè)外圍設(shè)備模塊提供電源管理。通過(guò)電源管理不僅可以減少目標(biāo)設(shè)備上的電源損耗,而且可以在系統(tǒng)重啟、運(yùn)行、空閑和掛起的電源狀態(tài)下保存RAM 中的文件系統(tǒng)。電源管理模塊通過(guò)軟件來(lái)控制系統(tǒng)時(shí)鐘,以降低微處理器的耗電量。這些方案與、時(shí)鐘控制邏輯、外設(shè)的時(shí)鐘控制以及喚醒信號(hào)有關(guān)。 電源管理器會(huì)同三種不同的客戶(hù)端程序發(fā)生作用,對(duì)于這三種客戶(hù)端電源管理器提供了不同的編程接口:,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),60,電源管理器相關(guān)
49、的設(shè)備驅(qū)動(dòng)程序 可以改變系統(tǒng)電源狀態(tài)或者改變?cè)O(shè)備性能的應(yīng)用程序,如一些需要改變系統(tǒng)時(shí)鐘頻率的應(yīng)用; 在電源相關(guān)事件發(fā)生時(shí)需要得到通知的應(yīng)用程序以及影響系統(tǒng)的電源狀態(tài)的改變的應(yīng)用程序,例如電池電量低時(shí)發(fā)出警告的程序。 芯片的電源管理技術(shù): 芯片內(nèi)部:電壓分區(qū)設(shè)置、時(shí)鐘管理、分區(qū)投切 外圍器件:電源開(kāi)關(guān)、可關(guān)斷DC/DC、可關(guān)斷器件 電源管理器可控制微處理器的幾種不同耗電的工作方式:運(yùn)行方式、空閑方式、睡眠方式。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),61,4.3 存儲(chǔ)系統(tǒng)的分析與設(shè)計(jì),存儲(chǔ)器是構(gòu)成嵌入式系統(tǒng)硬件的重要組成部分。出于成本和體積的限制,嵌入式系統(tǒng)的存儲(chǔ)器通常采用高度集成的存儲(chǔ)芯片,以節(jié)省電路板的
50、面積,減少設(shè)計(jì)的復(fù)雜性,提高系統(tǒng)的可靠性。 基于嵌入式微處理器/控制器的專(zhuān)用嵌入式系統(tǒng)而言,它們的存儲(chǔ)器系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)方法有所不同,主要體現(xiàn)在以下幾個(gè)方面。 嵌入式系統(tǒng)由于體積的限制,盡量使用存儲(chǔ)密度比較大的存儲(chǔ)芯片。 嵌入式系統(tǒng)由于功耗的限制,在設(shè)計(jì)嵌入式系統(tǒng)的存儲(chǔ)系統(tǒng)時(shí)需要考慮功耗問(wèn)題。 出于成本考慮,大多數(shù)嵌入式系統(tǒng)的存儲(chǔ)器容量與軟件的大小相匹配。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),62,使用MCU微控制器的嵌入式系統(tǒng),由于微控制器上集成了存儲(chǔ)器資源(ROM和RAM),因此有的系統(tǒng)可以不需要另外設(shè)計(jì)存儲(chǔ)器子系統(tǒng);有的則需要擴(kuò)展一部分存儲(chǔ)器子系統(tǒng)。 如果嵌入式處理器上沒(méi)有存儲(chǔ)器,就進(jìn)行
51、擴(kuò)充,通常需要擴(kuò)充ROM子系統(tǒng)用于存儲(chǔ)程序,RAM子系統(tǒng)用于存儲(chǔ)中間數(shù)據(jù),F(xiàn)lachROM子系統(tǒng)用于存儲(chǔ)配置數(shù)據(jù)和常數(shù)。 嵌入式系統(tǒng)的存儲(chǔ)子系統(tǒng)通常設(shè)置成模塊結(jié)構(gòu),包括ROM子系統(tǒng)、RAM子系統(tǒng),每個(gè)子系統(tǒng)占用一定的存儲(chǔ)空間。 嵌入式系統(tǒng)的存儲(chǔ)器通常與系統(tǒng)主板設(shè)計(jì)在一起,而不設(shè)計(jì)成所謂的內(nèi)存條形式。原因是:一方面嵌入式系統(tǒng)的內(nèi)存通常是固定大小的;另一方面一體系結(jié)構(gòu)可以提高系統(tǒng)的可靠性。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),63,ARM架構(gòu)處理器的存儲(chǔ)器尋址空間有4GB。該存儲(chǔ)空間可以分為快存/緩存區(qū)域和不可快存/不可緩存區(qū)域。 ARM架構(gòu)的處理器有的帶有指令快存和數(shù)據(jù)快存。但是片內(nèi)都不帶有RAM和ROM
52、。 系統(tǒng)所需的RAM和ROM(包括閃存)都通過(guò)總線外接。由于系統(tǒng)的地址范圍較大,所以有的片內(nèi)還帶有MMU。ARM架構(gòu)處理器還允許外接PCMCIA。 快存(Cache)是一種小容量、高速度的存儲(chǔ)器,用于處理器與主存之間存放當(dāng)前被使用的主存內(nèi)容,以減少訪問(wèn)主存的等待時(shí)間??齑娣胖脭?shù)據(jù)的常用地址變換方法有直接映像、組相聯(lián)映像、和全相聯(lián)映像方式。替換算法有隨機(jī)法、近期最少使用法和循環(huán)法。存儲(chǔ)器寫(xiě)策略采用寫(xiě)直達(dá)法、通過(guò)緩存寫(xiě)直達(dá)法和寫(xiě)回法。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),64,對(duì)于32位地址、4GB尋址的ARM微處理器一般都采用頁(yè)式尋址的方式。若頁(yè)面大小為4KB,可采用2級(jí)頁(yè)表的方式來(lái)尋址。在32位邏輯地址
53、中,最高10位用作為目錄索引,接下來(lái)的10位作為頁(yè)表項(xiàng)索引,余下的作偏移量。 由于頁(yè)目錄和頁(yè)表都存放在主存中,從邏輯地址變換至物理地址需讀2次主存。因此在它們之間插入了一個(gè)地址變換緩沖器TLB(轉(zhuǎn)換旁路緩沖器)。TLB中每一項(xiàng)都由邏輯頁(yè)號(hào)與相對(duì)應(yīng)物理頁(yè)號(hào)所組成。TLB采用類(lèi)似快存的結(jié)構(gòu),只存放最近使用過(guò)的頁(yè)表項(xiàng),故也稱(chēng)為快表。而頁(yè)表與段表之間的變換表則稱(chēng)為慢表。 ARM的存儲(chǔ)器管理MMU是通過(guò)系統(tǒng)控制協(xié)處理器CP15來(lái)實(shí)現(xiàn)和完成虛擬存儲(chǔ)器管理功能的。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),65,高速緩沖存儲(chǔ)器,工作原理:,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),66,4.3.1 存儲(chǔ)系統(tǒng)的構(gòu)成分析,下面以基于S3C44
54、B0X的存儲(chǔ)系統(tǒng)為例來(lái)進(jìn)行介紹。 支持?jǐn)?shù)據(jù)存儲(chǔ)的大/小端選擇(通過(guò)外部引腳和程序進(jìn)行選擇) 地址空間:具有8個(gè)存儲(chǔ)體,每個(gè)存儲(chǔ)體可達(dá)32Mb,總共可達(dá)256MB。 對(duì)所有存儲(chǔ)體的訪問(wèn)大小均可進(jìn)行改變(8位16位32位) 8個(gè)Bank中,Bank0Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和EDOSDRAM等。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),67,1) 存儲(chǔ)器接口,ARM的總線接口信號(hào)分成4類(lèi)(以ARM7TDMI為例說(shuō)明): 時(shí)鐘和時(shí)鐘控制信號(hào):MCLK、ECLK、nRESET、nWAIT。 地址類(lèi)信號(hào):A31.0、nRW、MAS1.0、nOPC、nTRANS、L
55、OCK、TBIT。 存儲(chǔ)器請(qǐng)求信號(hào):nMREQ、SEQ。 數(shù)據(jù)時(shí)序信號(hào):D31.0、DIN31.0、DOUT31.0、ABORT、BL3.0。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),68,2)典型系統(tǒng)中存儲(chǔ)體的分配情況,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),69,系統(tǒng)的存儲(chǔ)空間分配,Bank0:1片2MB NOR Flash,放置系統(tǒng)引導(dǎo)程序,系統(tǒng)上電復(fù)位后,PC指針自動(dòng)指向Bank0的第一個(gè)單元,進(jìn)行系統(tǒng)自舉。以便從硬盤(pán)中將系統(tǒng)文件和用戶(hù)應(yīng)用程序復(fù)制到SDRAM內(nèi)存中執(zhí)行。值得注意的是在嵌入式系統(tǒng)中內(nèi)核映象與根系統(tǒng)映象也可以直接在Flash這樣的固態(tài)存儲(chǔ)器中直接運(yùn)行,但是會(huì)使其運(yùn)行速度減慢。 Bank1:非線性尋址
56、。Bank1上接16M NAND Flash,當(dāng)做系統(tǒng)硬盤(pán)使用,可以構(gòu)造文件系統(tǒng),存放海量數(shù)據(jù)。 用SDRAM當(dāng)作系統(tǒng)內(nèi)存,只有Bank6/Bank7能支持SDRAM,所以將SDRAM接在Bank6上。如果同時(shí)使用Bank6/Bank7,則要求連接相同容量的存儲(chǔ)器,而且其地址空間在物理上是連續(xù)的。 Bank2:PDIUSBD12。USB設(shè)備端接口芯片,占用系統(tǒng)外部中斷0。8位數(shù)據(jù)總線。 Bank3、Bank4未接設(shè)備??梢怨U(kuò)展使用。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),70,Bank5:RTL8019AS,ISA總線兼容的10M以太網(wǎng)(PHYMAC層)控制芯片。占用系統(tǒng)外部中斷1,16位數(shù)據(jù)總線;擴(kuò)展
57、IO口 Bank6:SDRAM,起始地址為0 xC000000。在SDRAM中,前512Kbyte的空間劃分出來(lái),作為系統(tǒng)的LCD顯示緩沖區(qū)使用(更新其中的數(shù)據(jù),就可以更新LCD的顯示)。系統(tǒng)的程序存儲(chǔ)空間從0 xC080000開(kāi)始。也就是,引導(dǎo)系統(tǒng)的時(shí)候,需要把system.bin文件復(fù)制到0 xC080000開(kāi)始的地址空間,把PC指針指向0 xC080000。 Bank7:未使用。可以擴(kuò)展另一片SDRAM,或者其他的外設(shè)。 系統(tǒng)的同步串行口(SIO),連接著觸摸屏控制芯片F(xiàn)M7843(與ADS7843完全兼容);CAN總線控制芯片MCP2510;Max504(D/A);鍵盤(pán)和LED掃描芯片
58、ZLG7289。在同步串行口上,還可以擴(kuò)展其他的芯片。通過(guò)IO口控制設(shè)備的片選信號(hào)(CS)來(lái)防止設(shè)備的沖突。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),71,3) Boot Loader的任務(wù),Boot Loader是系統(tǒng)加電后首先運(yùn)行的一段代碼,其目的是將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),為調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。對(duì)于不使用操作系統(tǒng)的嵌入式系統(tǒng)而言,應(yīng)用程序的運(yùn)行同樣也需要依賴(lài)它,因此Boot Loader對(duì)于嵌入式系統(tǒng)是必要的。 每種嵌入式微處理器體系結(jié)構(gòu)都有不同的Boot Loader。即使是基于相同嵌入式微處理器構(gòu)建不同嵌入式目標(biāo)板也要修改Boot Loader的源程序。因此,建立一個(gè)通用
59、、標(biāo)準(zhǔn)的Boot Loader應(yīng)該是幾乎不可能的。 通常, Boot Loader只有幾十KB的大小,其作用相當(dāng)于普通pc機(jī)的BIOS,是在系統(tǒng)復(fù)位后執(zhí)行的第一段代碼。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),72,因此,整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由Boot Loader來(lái)完成。它首先完成系統(tǒng)硬件的初始化,包括時(shí)鐘的設(shè)置、存儲(chǔ)器的映射等。并設(shè)置堆棧指針,然后跳轉(zhuǎn)到操作系統(tǒng)內(nèi)核入口,如系統(tǒng)在加電或復(fù)位時(shí)通常從地址0 x00000000處開(kāi)始執(zhí)行,而在這個(gè)地址處安排的通常就是系統(tǒng)的Boot Loader程序。這樣,將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。在此之后,系統(tǒng)
60、的運(yùn)行在操作系統(tǒng)的控制下了。 另外,由于大多數(shù)Boot Loader都分為階段1和階段2兩部分。依賴(lài)于CPU的體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在階段1中,而且通常用匯編語(yǔ)言來(lái)實(shí)現(xiàn),以達(dá)到短小精悍的目的。而階段2通常用C語(yǔ)言來(lái)實(shí)現(xiàn),這樣可以實(shí)現(xiàn)一些復(fù)雜的功能,而且代碼會(huì)具有更好的可讀性和移植性。,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),73,堆棧初始化,DRAM配置,設(shè)定特殊寄存器,開(kāi)始,建立中斷向量表,內(nèi)存初始化,鏡像文件拷貝,系統(tǒng)重新映射,切換到用戶(hù)模式,進(jìn)入C代碼區(qū),在Flash Memory中執(zhí)行,在SDRAM中執(zhí)行,啟動(dòng)代碼流程圖,基于ARM的硬件結(jié)構(gòu)設(shè)計(jì),74,Boot Loader
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)集線器行業(yè)前景規(guī)劃及投資潛力分析報(bào)告
- 2025-2030年中國(guó)鑄造扣件市場(chǎng)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)蠔油醬行業(yè)需求規(guī)模及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)草柳編制工藝品市場(chǎng)運(yùn)營(yíng)狀況及投資規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)自動(dòng)支票打字機(jī)專(zhuān)用色帶行業(yè)運(yùn)行態(tài)勢(shì)及發(fā)展戰(zhàn)略分析報(bào)告
- 2025-2030年中國(guó)羥丙基甲基纖維素行業(yè)十三五規(guī)劃與發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)純棉內(nèi)衣市場(chǎng)運(yùn)營(yíng)狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國(guó)科技地產(chǎn)行業(yè)競(jìng)爭(zhēng)現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)硫酸氧釩行業(yè)風(fēng)險(xiǎn)評(píng)估規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)真空凍干蔬菜行業(yè)運(yùn)行狀況及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 質(zhì)譜儀產(chǎn)品商業(yè)計(jì)劃書(shū)
- 課件:舉手意識(shí)課件講解
- 中考體育培訓(xùn)合同
- 基金應(yīng)知應(yīng)會(huì)專(zhuān)項(xiàng)考試題庫(kù)(證券類(lèi)190題)附有答案
- 固定式、車(chē)載式、便攜式反無(wú)人機(jī)實(shí)施方案
- 陜西省2024年高中學(xué)業(yè)水平合格考數(shù)學(xué)試卷試題(含答案)
- 美術(shù)基礎(chǔ)試題庫(kù)含答案
- 鄉(xiāng)村研學(xué)旅行方案
- 《養(yǎng)老機(jī)構(gòu)認(rèn)知障礙照護(hù)專(zhuān)區(qū)設(shè)置與服務(wù)規(guī)范》
- DLT 5630-2021 輸變電工程防災(zāi)減災(zāi)設(shè)計(jì)規(guī)程-PDF解密
- 輸電線路安全施工培訓(xùn)
評(píng)論
0/150
提交評(píng)論