版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西安電子科技大學(xué)Xidian University嵌入式系統(tǒng)設(shè)計(jì)課程大作業(yè)(2015年下半學(xué)期)學(xué)院:電子工程學(xué)院專業(yè):電子信息工程姓名:崔婕學(xué)號(hào)級(jí):1402014目錄Xidian University1、敘述JTAG接口在嵌入式開(kāi)發(fā)中的作用。2、敘述嵌入式平臺(tái)的搭建過(guò)程,以linux為例。3、給出現(xiàn)今有哪些用于嵌入式開(kāi)發(fā)的芯片名稱,他們分別是哪些公司的產(chǎn)品?體系結(jié)構(gòu)是什么?4、 現(xiàn)今較流行的嵌入式操作系統(tǒng)有哪些?5、PXA270嵌入式開(kāi)發(fā)板的接口有哪些?6、請(qǐng)寫(xiě)出Nor Flash和 Nand Flash的區(qū)別。7、馮。諾依曼架構(gòu)與哈佛架構(gòu)的區(qū)別。8、單周期3級(jí)流水
2、的情況下,第10個(gè)指令周期時(shí),第幾條指令執(zhí)行結(jié)束?9、下面是linux下的一個(gè)簡(jiǎn)單的設(shè)備驅(qū)動(dòng)程序,寫(xiě)出linux設(shè)備驅(qū)動(dòng)常用的數(shù)據(jù)結(jié)構(gòu),同時(shí)閱讀下面代碼,請(qǐng)給出測(cè)試程序中的每條語(yǔ)句加以注釋。(詳情見(jiàn)后頁(yè))10、基于Intel Gilelo開(kāi)發(fā)板,設(shè)計(jì)一個(gè)項(xiàng)目,項(xiàng)目題目自選,給出項(xiàng)目的總體設(shè)計(jì)圖,以及對(duì)圖中模塊的功能分析,若可以,給出實(shí)現(xiàn)項(xiàng)目的詳細(xì)設(shè)計(jì)和程序及代碼,及實(shí)物。西安電子科技大學(xué)Xidian University1、JTAG接口在嵌入式開(kāi)發(fā)中的作用。(原創(chuàng))一、 引言JTAG接口為高速發(fā)展的嵌入式系統(tǒng)的測(cè)試和燒寫(xiě)提供便利,但仍有改進(jìn)之處。二、 JTAG的定義JTAG(Joint Tes
3、t Action Group):聯(lián)合測(cè)試工作組) IEEE 1149.1兼容,多用于芯片內(nèi)部測(cè)試和基于PCB的集成電路調(diào)試。大多數(shù)的高級(jí)器件及嵌入式平臺(tái)都支持JTAG協(xié)議,如DSP、FPGA、ARM器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。JTAG較于并口通信正因?yàn)槠浣涌谏偎俣瓤於鴱V受青睞。三、 JTAG開(kāi)發(fā)背景目前初學(xué)8051單片機(jī)等的硬件的學(xué)習(xí)者們最常見(jiàn)的編程方法是使用編程器(燒錄器)編程,而過(guò)去的生產(chǎn)部門的負(fù)責(zé)人則常常會(huì)使用OPB模式編程。但硬件學(xué)習(xí)者在深入學(xué)習(xí)嵌入式接觸到類似ARM的開(kāi)發(fā)板就會(huì)注意到傳統(tǒng)的編程方式對(duì)于日
4、益復(fù)雜的變成項(xiàng)目來(lái)說(shuō)已經(jīng)遠(yuǎn)遠(yuǎn)不夠,一個(gè)小系統(tǒng)的燒錄時(shí)間也長(zhǎng)達(dá)分鐘。同時(shí)在微電子與集成技術(shù)飛速發(fā)展的今天,工廠編程往往會(huì)考慮最大化生產(chǎn)效益,而新舊不同廠家生產(chǎn)的半導(dǎo)體器件編程時(shí)間各異,可獲性不同,價(jià)格懸殊,甚至頻繁變更編程規(guī)則。此時(shí)ATE編程在PCB設(shè)計(jì)過(guò)程中就弊端突出,高端元器件在OPB環(huán)境效率低下,嵌入式開(kāi)發(fā)由于測(cè)試調(diào)控時(shí)間過(guò)長(zhǎng)生產(chǎn)成本上升而生產(chǎn)周期長(zhǎng),上市困難,編程方式亟待更新。四、 JTAG特性JTAG主要是利邊界掃描編程將指令通過(guò)處理器內(nèi)部的TAP控制器轉(zhuǎn)入FLASH中對(duì)芯片進(jìn)行測(cè)試,通過(guò)大多數(shù)芯片邊界掃描單元構(gòu)成的邊界掃描寄存器BSC回路進(jìn)行,對(duì)不同半導(dǎo)體供應(yīng)商所提供的元器件有很大的
5、兼容性。此通信方式不使用片上資源,即完全非插入式調(diào)試,只用一根專用電纜即可完成調(diào)試,標(biāo)準(zhǔn)的JTAG線路也只有4個(gè)。不僅于此,由于邊界掃描寄存器是直接與內(nèi)部邏輯相連,所以在調(diào)試時(shí)不用真正調(diào)用外部模塊,在復(fù)雜的嵌入式生產(chǎn)的調(diào)試中十分安全。一方面它避免芯片管腳誤觸發(fā)外部器件的失誤,另一方面又甚至可以在沒(méi)有軟件的情況下訪問(wèn)CPU連接的設(shè)備進(jìn)行單板調(diào)試,大大縮短開(kāi)發(fā)周期。西安電子科技大學(xué)Xidian University同時(shí)有很多類似EmbeddedICE基于JTAG的ARM內(nèi)核調(diào)試通道,以EmbeddedICE為例,這種編程方式支持正常的斷點(diǎn),在調(diào)試中可得到完全的源代碼級(jí)別調(diào)試功能,成為程序設(shè)計(jì)人員在
6、本地或基于ICE的調(diào)試中習(xí)慣采用的方式,JTAG的方便可見(jiàn)一斑。此外,通過(guò)JTAG來(lái)對(duì)flash燒寫(xiě)程序速度往往非???,因?yàn)镴TAG中的TCK線是來(lái)做時(shí)鐘驅(qū)動(dòng)的可以有自己的CPU時(shí)鐘,所以不受被測(cè)試CPU系統(tǒng)時(shí)鐘的限制。雖然設(shè)置時(shí)注意應(yīng)不能過(guò)快使程序不穩(wěn)定。五、 JTAG的改進(jìn)之處雖然JTAG在嵌入式開(kāi)放中應(yīng)用廣泛,但對(duì)于一些元器件仍有不兼容的情況。同時(shí),燒寫(xiě)速度由不同的目標(biāo)芯片來(lái)定,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),工程師們往往需要靠經(jīng)驗(yàn)和摸索燒寫(xiě)速度,對(duì)不同的芯片還要查閱芯片手冊(cè)了解各種芯片的系統(tǒng)時(shí)鐘等特性,若生產(chǎn)商沒(méi)有及時(shí)更新數(shù)據(jù)則會(huì)對(duì)測(cè)試帶來(lái)不好的影響。六、 總結(jié)JTAG在嵌入式仿真方面提供的便利是巨大
7、的,本人也使用它完成STM32的調(diào)試,親測(cè)比串口下載和人工調(diào)試方便很多,通過(guò)設(shè)置斷點(diǎn)等方法非常方便的找出了程序的錯(cuò)誤,在程序出錯(cuò)的地方根據(jù)推理設(shè)置一些斷點(diǎn)和運(yùn)行結(jié)果來(lái)判斷錯(cuò)誤類型等等,也很快學(xué)會(huì)了更多新東西。對(duì)于以后的應(yīng)用想必前景也是巨大的。七、 附錄參考文獻(xiàn):1.基于JTAG的嵌入式調(diào)試技術(shù)的研究_彭德剛儀表技術(shù)2008年底3期2.嵌入式系統(tǒng)中的JTAG接口編程技術(shù)_何希順電子技術(shù)應(yīng)用2001年第12期3.嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用教程_田澤(北京航空航天大學(xué)出版社)4.JTAG百度百科5.編程器百度百科6.中國(guó)電子網(wǎng)技術(shù)論壇【關(guān)于jtag速度的奇怪問(wèn)題】西安電子科技大學(xué)Xidian Univer
8、sity2、敘述嵌入式平臺(tái)的搭建過(guò)程,以linux為例。嵌入式平臺(tái)的搭建主要分為四個(gè)部分:1.開(kāi)發(fā)環(huán)境的搭建2.BootLoader移植3.Linux操作系統(tǒng)移植4.根文件的移植1.開(kāi)發(fā)環(huán)境的搭建Tftp及nfs安裝與配置交叉編譯器與SDK安裝交叉編譯器:(1) 針對(duì)目標(biāo)板操作系統(tǒng)的編譯器gcc;(2) 針對(duì)目標(biāo)板操作系統(tǒng)的二進(jìn)制編譯工具binutils;(3) 目標(biāo)辦操作系統(tǒng)的標(biāo)準(zhǔn)c庫(kù)glibc;(4) 目標(biāo)板操作系統(tǒng)的Linux內(nèi)核頭文件。2.BootLoader移植嵌入式系統(tǒng)一般都需要Bootloader作為引導(dǎo)加載程序其中若選用Uboot作為引導(dǎo)加載程序,則如下:(1) 燒寫(xiě)NAND程
9、序(2) 裝載完成后分別燒寫(xiě)NAND UBL與Uboot3.Linux操作系統(tǒng)移植內(nèi)核修剪與配置內(nèi)核下載與燒寫(xiě)4.根文件的移植nfs文件系統(tǒng)掛載啟動(dòng)嵌入式平臺(tái)自啟動(dòng)西安電子科技大學(xué)Xidian University3、給出現(xiàn)今有哪些用于嵌入式開(kāi)發(fā)的芯片名稱,他們分別是哪些公司的產(chǎn)品?體系結(jié)構(gòu)是什么?芯片名稱公司體系架構(gòu)龍芯中國(guó)科學(xué)院自主研發(fā)MIPS指令集Opteron A1100AMD(Advanced Micro Devices)Cortex-A57GX-210JAAMD(Advanced Micro Devices)X86AVRARMARMStellaris® Cortex-M
10、MCUIT(Texas Instruments)ARMTMS320C2000/C5000IT(Texas Instruments)ARMMCS-29IntelARMTriCoreSimensTriCorearm7ARMARMarm9ARMARM4、 現(xiàn)今較流行的嵌入式操作系統(tǒng)有哪些?據(jù)百度百科:PalmOSWindows CEWindows XP EmbeddedWindows Vista Embedded嵌入式LinuxECOSQNXLynxAndroiduTenuxuC/OS IIRT-threaduCLinuxFreeRTOSRTXArm-LinuxVxWorksRTEMSpSOSNuc
11、leus個(gè)人感受:紅色字體我認(rèn)為是與我們聯(lián)系比較緊密的,就不都粘貼定義了。目前本人只是試用過(guò)ucosII,正在學(xué)習(xí)linux,個(gè)人感覺(jué)ucosII系統(tǒng)的多任務(wù)進(jìn)程和自愿的中斷部分比起之前學(xué)習(xí)的單片機(jī)的中斷和程序的執(zhí)行來(lái)說(shuō)更有序,感覺(jué)更加友好。想必linux也是如此吧。西安電子科技大學(xué)Xidian University5、PXA270嵌入式開(kāi)發(fā)板的接口有哪些?6、請(qǐng)寫(xiě)出Nor Flash和 Nand Flash的區(qū)別。性能比較flash閃存是非易失存儲(chǔ)器,可以對(duì)稱為塊的存儲(chǔ)器單元塊進(jìn)行擦寫(xiě)和再編程。任何flash器件的寫(xiě)入操作只能在空或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫(xiě)入操作之前必須
12、先執(zhí)行擦除。NAND器件執(zhí)行擦除 操作是十分簡(jiǎn)單的,而NOR則要求在進(jìn)行擦除前 先要將目標(biāo)塊內(nèi)所有的位都寫(xiě)為1。由于擦除NOR器件時(shí)是以64128KB的塊進(jìn)行的,執(zhí)行一個(gè)寫(xiě)入/擦除操作的時(shí)間為5s ,西安電子科技大學(xué)Xidian University與此相反,擦除NAND器件是以832KB的塊進(jìn) 行的,執(zhí)行相同的操作最多只需要4ms。執(zhí)行擦除時(shí)塊尺寸的不同進(jìn)一步拉大了NOR和NAND之間的性能差距,統(tǒng)計(jì)表明,對(duì)于給定的一套寫(xiě)入操作(尤其是更新小文件時(shí)), 更多的擦除操作必須在基于NOR的單元中進(jìn)行。這樣,當(dāng)選擇存儲(chǔ)解決方案時(shí),設(shè)計(jì)師必 須權(quán)衡以下的各項(xiàng)因素。 NOR的讀速度比NAND稍快一些。
13、 NAND的寫(xiě)入速度比NOR快很多。 NAND的擦除速度遠(yuǎn)比NOR快。 NAND的擦除單元更小,相應(yīng)的擦除電路更加簡(jiǎn)單。 NAND的實(shí)際應(yīng)用方式要比NOR復(fù)雜的多。 NOR可以直接使用,并在上面直接運(yùn)行代碼,而NAND需要I/O接口,因此使用時(shí)需要驅(qū)動(dòng)。接口差別NORflash帶有SRAM接口,有足夠的地址引腳來(lái)尋址,可以很容易地存取其內(nèi)部的每 一個(gè)字節(jié)。NAND器件使用復(fù)雜的I/O口來(lái)串行地存取數(shù)據(jù),各個(gè)產(chǎn)品或廠商的方法可能各不相同 。8個(gè)引腳用來(lái)傳送控制、地址和數(shù)據(jù)信息。NAND讀和寫(xiě)操作采用512字節(jié)的塊,這一點(diǎn)有點(diǎn)像硬盤(pán)管理此類操作,很自然地,基于NAND的存儲(chǔ)器就可以取代硬盤(pán)或其他塊
14、設(shè)備。NOR的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP, eXecute In Place),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NOR的傳輸效率很高,在14MB的小容量時(shí)具有很高的成本效益,但是很低的寫(xiě)入和擦除速度大大影響了它的性能。NAND結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲(chǔ)密度,并且寫(xiě)入和擦除的速度也很快。應(yīng)用NAND的困難在于flash的管理需要特殊的系統(tǒng)接口。NAND特點(diǎn)編輯容量和成本NAND flash的單元尺寸幾乎是NOR器件的一半,由于生產(chǎn)過(guò)程更為簡(jiǎn)單,NAND結(jié)構(gòu)可 以在給定的模具尺寸內(nèi)提供更高的容量,也就 相應(yīng)地降低了價(jià)格。NOR flash占據(jù)了
15、容量為116MB閃存市場(chǎng)的大部分,而NAND flash只是用在8128M B的產(chǎn)品當(dāng)中,這也說(shuō)明NOR主要應(yīng)用在代碼存 儲(chǔ)介質(zhì)中,NAND適合于數(shù)據(jù)存儲(chǔ),NAND在CompactFlash、Secure Digital、PC Cards和M MC存儲(chǔ)卡市場(chǎng)上所占份額最大。物理構(gòu)成NAND Flash 的數(shù)據(jù)是以bit的方式保存在memory cell,一般來(lái)說(shuō),一個(gè)cell 中只能存儲(chǔ)一個(gè)bit。這些cell 以8個(gè)或者16個(gè)為單位,連成bit line,形成所謂的byte(x8)/word(x16),這就是NAND Device的位寬。這些Line會(huì)再組成Page,(NAND Flash
16、有多種結(jié)構(gòu),我使用的NAND Flash 是K9F1208,下面內(nèi)容針對(duì)三星的K9F1208U0M),每頁(yè)528Bytes(512byte(Main Area)+16byte(Spare Area),每32個(gè)page形成一個(gè)Block(32*528B)。具體一片flash上有多少個(gè)Block視需要所定。我所使用的三星k9f1208U0M具有4096個(gè)block,故總?cè)萘繛?096*西安電子科技大學(xué)Xidian University(32*528B)=66MB,但是其中的2MB是用來(lái)保存ECC校驗(yàn)碼等額外數(shù)據(jù)的,故實(shí)際中可使用的為64MB。NAND flash以頁(yè)為單位讀寫(xiě)數(shù)據(jù),而以塊為單位擦除
17、數(shù)據(jù)。按照這樣的組織方式可以形成所謂的三類地址:Column Address:Starting Address of the Register. 翻成中文為列地址,地址的低8位Page Address :頁(yè)地址Block Address :塊地址對(duì)于NAND Flash來(lái)講,地址和命令只能在I/O7:0上傳遞,數(shù)據(jù)寬度是8位??煽磕陀眯圆捎胒lash介質(zhì)時(shí)一個(gè)需要重點(diǎn)考慮的問(wèn)題是可靠性。對(duì)于需要擴(kuò)展MTBF的系統(tǒng)來(lái)說(shuō) ,F(xiàn)lash是非常合適的存儲(chǔ)方案。可以從壽命(耐用性)、位交換和壞塊處理三個(gè)方面來(lái)比較NOR和NAND的可靠性。壽命(耐用性):在NAND閃存中每個(gè)塊的最大擦寫(xiě)次數(shù)是一百萬(wàn)次,而
18、NOR的擦寫(xiě)次數(shù)是十萬(wàn)次。NAND存儲(chǔ)器除了具有10比1的塊擦除周期優(yōu)勢(shì),典型 的NAND塊尺寸要比NOR器件小8倍,每個(gè)NAND存儲(chǔ)器塊在給定的時(shí)間內(nèi)的刪除次數(shù)要少一 些。位交換:所有flash器件都受位交換現(xiàn)象的困擾。在某些情況下(很少見(jiàn),NAND發(fā)生的次數(shù)要比NOR多),一個(gè)比特位會(huì)發(fā)生反轉(zhuǎn)或被報(bào)告反轉(zhuǎn)了。這個(gè)問(wèn)題對(duì)于用NAND存儲(chǔ)多媒體信息時(shí)倒不是致命的。當(dāng)然,如果用本地存儲(chǔ)設(shè)備來(lái)存儲(chǔ)操作系統(tǒng)、配置文件或其他敏感信息時(shí), 必須使用EDC/ECC系統(tǒng)以確??煽啃?。壞塊處理:NAND器件中的壞塊是隨機(jī)分布的。以前也曾有過(guò)消除壞塊的努力,但發(fā)現(xiàn)成品率太低,代價(jià)太高,根本不劃算。NAND器件需
19、要對(duì)介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用。在已制 成的器件中,如果通過(guò)可靠的方法不能進(jìn)行這項(xiàng) 處理,將導(dǎo)致高故障率。易于使用可以非常直接地使用基于NOR的閃存,可以像其他存儲(chǔ)器那樣連接,并可以在上面直 接運(yùn)行代碼。由于需要I/O接口,NAND要復(fù)雜得多。各種NAND器件的存取方法因廠家而異。在使用NAND器件時(shí),必須先寫(xiě)入驅(qū)動(dòng)程序,才能繼續(xù)執(zhí)行其他操作。向NAND器件寫(xiě) 入信息需要相當(dāng)?shù)募记?,因?yàn)樵O(shè)計(jì)師絕不能向壞 塊寫(xiě)入,這就意味著在NAND器件上自始至終都必須進(jìn)行虛擬映射。軟件支持當(dāng)討論軟件支持的時(shí)候,應(yīng)該區(qū)別基本的讀/寫(xiě)/擦操作和高一級(jí)的用于磁盤(pán)仿真和 閃存管理算法的軟件,包
20、括性能優(yōu)化。西安電子科技大學(xué)Xidian University在NOR器件上運(yùn)行代碼不需要任何的軟件支持,在NAND器件上進(jìn)行同樣操作時(shí),通常 需要驅(qū)動(dòng)程序,也就是內(nèi)存技術(shù)驅(qū)動(dòng)程序(MTD ),NAND和NOR器件在進(jìn)行寫(xiě)入和擦除操作時(shí)都需要MTD。使用NOR器件時(shí)所需要的MTD要相對(duì)少一些,許多廠商都提供用于NOR器件的更高級(jí)軟 件,這其中包括M-System的TrueFFS驅(qū)動(dòng),該驅(qū) 動(dòng)被Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所采用。驅(qū)動(dòng)還用于對(duì)DiskOnChip產(chǎn)品進(jìn)行仿真和NAND閃存的管理,包
21、括糾錯(cuò)、壞塊處理和 損耗平衡。(糾正一點(diǎn):NOR擦除時(shí),是全部寫(xiě)1,不是寫(xiě)0,而且,NOR FLASH SECTOR擦除時(shí)間視品牌、 大小不同而不同,比如,4M FLASH,有的SECTOR擦除時(shí)間為60ms,而有的需要最大6S。)NOR FLASH的主要供應(yīng)商是INTEL ,MICRO等廠商,曾經(jīng)是FLASH的主流產(chǎn)品,但現(xiàn)在被 NAND FLASH擠的比較難受。它的優(yōu)點(diǎn)是可以直接從FLASH中運(yùn)行程序,但是工藝復(fù)雜,價(jià)格比 較貴。NAND FLASH的主要供應(yīng)商是SAMSUNG和東芝,在U盤(pán)、各種存儲(chǔ)卡、MP3播放器里面的都是這種 FLASH,由于工藝上的不同,它比NOR FLASH擁有更
22、大存儲(chǔ)容量,而且便宜。但也有缺點(diǎn),就是無(wú)法尋址直接運(yùn)行程序,只能存儲(chǔ)數(shù)據(jù)。另外NAND FLASH 非常容易出現(xiàn)壞區(qū),所以需要有校驗(yàn)的算法。在掌上電腦里要使用NAND FLASH 存儲(chǔ)數(shù)據(jù)和程序,但是必須有NOR FLASH來(lái)啟動(dòng)。除了SAMSUNG處理器,其他用在掌上電腦的主流處理器還不支持直接由NAND FLASH 啟動(dòng)程序。因此,必須先用一片小的NOR FLASH 啟動(dòng)機(jī)器,在把OS等軟件從NAND FLASH 載入SDRAM中運(yùn)行才行,挺麻煩的。來(lái)源:百度百科“Nor flash”、“Nand flash”重新編排西安電子科技大學(xué)Xidian University7、馮。諾依曼架構(gòu)與哈
23、佛架構(gòu)的區(qū)別。前言:私以為嵌入式是哈佛結(jié)構(gòu)未來(lái)占據(jù)的領(lǐng)域。馮諾依曼結(jié)構(gòu)在計(jì)算機(jī)領(lǐng)域最為著名。此題我認(rèn)為only Vonne博客園里面有一篇有關(guān)于區(qū)別的文章寫(xiě)得特別好,鏈接在下面粘貼出來(lái)了,本人整合了一些觀點(diǎn)。使用哈佛結(jié)構(gòu)的芯片:使用哈佛結(jié)構(gòu)的中央處理器和微控制器有很多,除了Microchip公司的PIC系列芯片,還有摩托羅拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安謀公司的ARM9、ARM10和ARM11,51單片機(jī)也屬于哈佛結(jié)構(gòu)。使用馮諾依曼結(jié)構(gòu)的芯片:目前使用馮·諾伊曼結(jié)構(gòu)的中央處理器和微控制器有除了英特爾公司的8086,英特爾公司的其他中央處理
24、器、安謀公司的ARM7、MIPS公司的MIPS處理器也采用了馮·諾伊曼結(jié)構(gòu)。區(qū)別一:存儲(chǔ)數(shù)據(jù)與指令的位置馮·諾伊曼結(jié)構(gòu)也稱普林斯頓結(jié)構(gòu),是一種將程序指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合并在一起的存儲(chǔ)器結(jié)構(gòu)。程序指令存儲(chǔ)地址和數(shù)據(jù)存儲(chǔ)地址指向同一個(gè)存儲(chǔ)器的不同物理位置,因此程序指令和數(shù)據(jù)的寬度相同,如英特爾公司的8086中央處理器的程序指令和數(shù)據(jù)都是16位寬。哈佛結(jié)構(gòu)是一種將程序指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開(kāi)的存儲(chǔ)器結(jié)構(gòu)。中央處理器首先到程序指令存儲(chǔ)器中讀取程序指令內(nèi)容,解碼后得到數(shù)據(jù)地址,再到相應(yīng)的數(shù)據(jù)存儲(chǔ)器中讀取數(shù)據(jù),并進(jìn)行下一步的操作(通常是執(zhí)行)。程序指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開(kāi),可以使指令和
25、數(shù)據(jù)有不同的數(shù)據(jù)寬度,如Microchip公司的PIC16芯片的程序指令是14位寬度,而數(shù)據(jù)是8位寬度。區(qū)別二:與中央處理器的通信方式馮.諾依曼原理強(qiáng)調(diào)程序是一種數(shù)據(jù),它可以像數(shù)據(jù)一樣被處理,因此可以和數(shù)據(jù)一起被存儲(chǔ)在同一個(gè)存儲(chǔ)器中。所以數(shù)據(jù)總線和地址總線共用。西安電子科技大學(xué)Xidian University哈佛結(jié)構(gòu)中程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是兩個(gè)獨(dú)立的存儲(chǔ)器,每個(gè)存儲(chǔ)器獨(dú)立編址、獨(dú)立訪問(wèn)。與兩個(gè)存儲(chǔ)器相對(duì)應(yīng)的是系統(tǒng)的4條總線:程序的數(shù)據(jù)總線與地址總線,數(shù)據(jù)的數(shù)據(jù)總線與地址總線。這種分離的程序總線和數(shù)據(jù)總線允許在一個(gè)機(jī)器周期內(nèi)同時(shí)獲得指令字(來(lái)自程序存儲(chǔ)器)和操作數(shù)(來(lái)自數(shù)據(jù)存儲(chǔ)器),從而提高
26、了執(zhí)行速度,使數(shù)據(jù)的吞吐率提高了1倍。又由于程序和數(shù)據(jù)存儲(chǔ)器在兩個(gè)分開(kāi)的物理空間中,因此取指和執(zhí)行能完全重疊。優(yōu)缺點(diǎn)分析:哈佛架構(gòu)改進(jìn)之處私以為利大于弊,缺點(diǎn)即在于它對(duì)資源的利用率不夠,在通用計(jì)算機(jī)上統(tǒng)一編碼分配資源是馮諾依曼結(jié)構(gòu)的優(yōu)勢(shì)。但是對(duì)于嵌入式系統(tǒng)與通用計(jì)算機(jī)的情況不一樣所以哈佛結(jié)構(gòu)更加適合嵌入式??偨Y(jié):馮諾依曼結(jié)構(gòu)奠定了計(jì)算機(jī)結(jié)構(gòu)的基礎(chǔ),確立了計(jì)算機(jī)五大組成部分:控制器、運(yùn)算器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備。而哈佛結(jié)構(gòu)基于馮諾依曼結(jié)構(gòu)在數(shù)據(jù)運(yùn)算處理能力和安全性上做出優(yōu)化,使其在數(shù)字信號(hào)處理及嵌入式方向有更好的發(fā)展前景。參考資料:1. 馮諾依曼體系結(jié)構(gòu)與哈弗體系結(jié)構(gòu)的區(qū)別only Von
27、ne博客園2. 百度百科“馮諾依曼結(jié)構(gòu)”、“哈佛結(jié)構(gòu)”3. 百度百科“通用計(jì)算機(jī)”8、單周期3級(jí)流水的情況下,第10個(gè)指令周期時(shí),第幾條指令執(zhí)行結(jié)束?10-3=7答:第7條。西安電子科技大學(xué)Xidian University解析:三級(jí)流水示例:第三周期第二周期第一周期t第三周期第二周期第四周期第三周期第五周期第四周期取指執(zhí)行編譯由圖即可推算出7條。9、下面是linux下的一個(gè)簡(jiǎn)單的設(shè)備驅(qū)動(dòng)程序,寫(xiě)出linux設(shè)備驅(qū)動(dòng)常用的數(shù)據(jù)結(jié)構(gòu),同時(shí)閱讀下面代碼,請(qǐng)給出測(cè)試程序中的每條語(yǔ)句加以注釋。設(shè)備驅(qū)動(dòng)程序Keypad.c的源代碼:#include <linux/module.h>/包含li
28、nux/module.h頭文件#include <linux/fs.h>/包含linux/fs.h頭文件#include <linux/init.h>/包含linux/init.h頭文件#include <linux/poll.h>/包含linux/poll.h頭文件#include <linux/types.h>/包含linux/types.h頭文件#include <linux/fs.h>/包含linux/fs.h頭文件(第二行已經(jīng)包含了這個(gè)文件啊,)#include <linux/rtc.h>/包含linux/rtc
29、.h頭文件#include <linux/delay.h>/包含linux/delay.h頭文件#include <asm/hardware.h>/包含asm/hardware.h頭文件#include <asm/delay.h>/包含asm/delay.h頭文件#include <asm/uaccess.h>/包含asm/uaccess.h頭文件#define LEDnKEY_MAJOR 251西安電子科技大學(xué)Xidian University#define KEYPAD_NAME "X-Hyper250 Keypad"#d
30、efine KEYPAD_VERSION "Version 0.1"#define EXT_KEY_CS EXT_PORT2#define EXT_LED_CS EXT_PORT3#define LED_SHOW 10/*EXT_KEY_CS 為向外部LED進(jìn)行數(shù)值設(shè)定,它定義在其它頭文件里*/void led_off_on() /*led開(kāi)關(guān)程序*/int i;/定義一個(gè)16位變量EXT_LED_CS = 0xff;/0xff是11111111,將EXT_PORT3的GPIO全部置高for(i =0 ; i<8;+i)/循環(huán)EXT_LED_CS = (1 <&
31、lt; i) & 0xff);/*i左移一位,末位補(bǔ)0,然后和11111111相與取 高位,再取反,即一開(kāi)始是11111110,1111110111111011,11111001*/udelay(30000);/延時(shí)30000微秒(編寫(xiě)應(yīng)用層程序要調(diào)用另一個(gè)頭文件<unistd.h>)EXT_LED_CS = 0xff;/將EXT_PORT3的GPIO全部置高/應(yīng)用程序用open來(lái)打開(kāi)設(shè)備文件實(shí)際表現(xiàn)為調(diào)用驅(qū)動(dòng)int lednkey_open(struct inode *inode, struct file *filp)MOD_INC_USE_COUNT;/*在linux/
32、module.h文件中的宏定義,2.6核使用try_get_module(THIS_MODULE);和 module_put(THIS_MODULE);管理自己被使用的計(jì)數(shù)(增加)*/return (0); /* success */ int lednkey_release(struct inode *inode, struct file *filp)/釋放設(shè)備文件led_off_on();/*led開(kāi)關(guān)程序*/MOD_DEC_USE_COUNT;/減少計(jì)數(shù)return (0);/* success */ssize_t lednkey_read(struct file *filp, char
33、*Putbuf, size_t length, loff_t *f_pos)/讀鍵盤(pán)程序unsigned short BottonStatus; unsigned char Bottontmp = 0;int i; BottonStatus = ( EXT_KEY_CS & 0xff );/取 EXT_PORT3的電位并轉(zhuǎn)化為0與1的數(shù)據(jù)西安電子科技大學(xué)Xidian Universityfor(i = 0 ; i < 8; +i)if( (BottonStatus >> i) & 1) = 0 ) Bottontmp = (i+1);/最高0位copy_to_
34、user( Putbuf, &Bottontmp, length); /* 從內(nèi)核區(qū)中讀取數(shù)據(jù)到用戶區(qū)簡(jiǎn)述:#include <linux/uaccess.h>unsigned long copy_to_user(void _user *to, const void *from, unsigned long n);如果數(shù)據(jù)拷貝成功,則返回零;否則,返回沒(méi)有拷貝成功的數(shù)據(jù)字節(jié)數(shù)。*to是用戶空間的指針,*from是內(nèi)核空間指針,n表示從內(nèi)核空間向用戶空間拷貝數(shù)據(jù)的字節(jié)數(shù)。*/return length;ssize_t lednkey_write(struct file *fi
35、lp, const char *Getbuf, size_t length, loff_t *f_pos)int num;unsigned char UsrWantLed; copy_from_user( &UsrWantLed, Getbuf, length);num = ( (UsrWantLed) & 0xff );/num用二進(jìn)制顯示出來(lái)EXT_LED_CS = (1 << (num-1);/*將用戶區(qū)得到的變量num-1再左移一位然后取反,可能拉低是點(diǎn)亮LED*/return (0);/獲取或改變正在運(yùn)行的設(shè)備參數(shù)int lednkey_ioctl(str
36、uct inode *inode, struct file *filp, unsigned int cmd,unsigned long arg)switch(cmd)case LED_SHOW: 西安電子科技大學(xué)Xidian Universityif(arg)/給的參數(shù)不是0就執(zhí)行l(wèi)ed_off_on(); break;return 0;struct file_operations lednkey_fops = open: lednkey_open,read: lednkey_read,write: lednkey_write,ioctl: lednkey_ioctl,release: led
37、nkey_release,;/*初始化設(shè)備函數(shù),在函數(shù)名前加上這個(gè)屬性后,系統(tǒng)會(huì)在初始化完成后丟棄初始化函數(shù),收回內(nèi)存,以減小占用的內(nèi)存空間。*/static int _init xhyper250_keypad_init(void) int result;result = register_chrdev(LEDnKEY_MAJOR, "lednkey", &lednkey_fops);/*向操作系統(tǒng)注冊(cè)一個(gè)主號(hào)251,設(shè)備openRegister_chrdev()是內(nèi)核提供的函數(shù),作用是完成注冊(cè)新的字符設(shè)備*/printf("%s %s initiali
38、zed.n",KEYPAD_NAME, KEYPAD_VERSION);led_off_on();return 0;static void _exit xhyper250_keypad_exit(void)/向操作系統(tǒng)卸載設(shè)備函數(shù) unregister_chrdev( LEDnKEY_MAJOR, "lednkey" ); led_off_on();module_init(xhyper250_keypad_init); /顯式聲明初始化設(shè)備函數(shù)module_exit(xhyper250_keypad_exit); /顯式聲明卸載設(shè)備函數(shù)/*通過(guò)上面兩個(gè)聲明內(nèi)核知道驅(qū)動(dòng)程序的進(jìn)入點(diǎn)*/測(cè)試文件的源代碼如下:#incl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年銷售經(jīng)理區(qū)域市場(chǎng)拓展聘用合同模板2篇
- 2025年項(xiàng)目工程中介協(xié)議書(shū)模板(含設(shè)計(jì)、施工、驗(yàn)收)3篇
- 2025年私人房產(chǎn)買賣合同文本與合同解除條件3篇
- 民政局2025版離婚協(xié)議書(shū)婚姻糾紛調(diào)解服務(wù)協(xié)議2篇
- 二零二五版美容院美容院連鎖加盟管理合同4篇
- 墻面裝飾板施工方案
- 窮人續(xù)寫(xiě)200字6篇
- 2024年中級(jí)經(jīng)濟(jì)師考試題庫(kù)(典型題)
- 2025年消防系統(tǒng)智能化改造與安全評(píng)估合同協(xié)議3篇
- 2024年園區(qū)綠化管理制度
- 二零二五年度無(wú)人駕駛車輛測(cè)試合同免責(zé)協(xié)議書(shū)
- 2025年湖北華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員52名歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 高三日語(yǔ)一輪復(fù)習(xí)助詞「と」的用法課件
- 毛渣采購(gòu)合同范例
- 2023中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 五年級(jí)上冊(cè)小數(shù)遞等式計(jì)算200道及答案
- 2024年廣東高考政治真題考點(diǎn)分布匯 總- 高考政治一輪復(fù)習(xí)
- 燃?xì)夤艿滥甓葯z驗(yàn)報(bào)告
- GB/T 44052-2024液壓傳動(dòng)過(guò)濾器性能特性的標(biāo)識(shí)
- FZ/T 81013-2016寵物狗服裝
- JB∕T 14089-2020 袋式除塵器 濾袋運(yùn)行維護(hù)技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論