嵌入式系統(tǒng)備課下學期簡化版((上冊))_第1頁
嵌入式系統(tǒng)備課下學期簡化版((上冊))_第2頁
嵌入式系統(tǒng)備課下學期簡化版((上冊))_第3頁
嵌入式系統(tǒng)備課下學期簡化版((上冊))_第4頁
嵌入式系統(tǒng)備課下學期簡化版((上冊))_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 . . . 嵌入式系統(tǒng)原理與應用(本科使用、??茀⒖际褂茫┙虒W備課材料曉秋編湖 南 涉 外 經 濟 學 院 2010 2011第一學 期 教 學 周 歷課程名稱嵌入式系統(tǒng) 計算機 學部 計科0801、0802、0803、計應09 專業(yè) 4、3 年級課程學期總學時其中上課周數(shù)周學時學分考核方式采用教材情況教材名稱ARM9嵌入式系統(tǒng)設計基礎教程講授實驗(踐)主編(著)黃智偉、鄧月明等名稱航空航天大學2882286018164考試出版時間20088周次日期上課節(jié)次上課地點每周時數(shù)分配教學容備注講授實驗(踐)合計時數(shù)14七教44系統(tǒng)基礎部分:定義、發(fā)展、實時系統(tǒng)24七教44系統(tǒng)的體系結構與四個層次分

2、類、特點、存儲34七教44嵌入式系統(tǒng)微處理器和類型、ARM系統(tǒng)介紹44七教44從8位機到32位機的發(fā)展,與一個實例54七教44ARM9的概念、存儲格式、指令、操作模式等64七教44狀態(tài)、狀態(tài)、異常、中斷74七教44系統(tǒng)復位、尋址方式、堆棧的幾種形式84七教44指令格式與幾種類型,例題講解94七教44S3C2410部結構、技術特點102六、七教224部存儲器與地址分配112六、七教224與存儲相關的寄存器地址、計算、功能設置等122六、七教224容同上132六、七教224中斷的一般過程與特征142六、七教224端口實例152六、七教224中斷實例162六、七教224NOR FLASH NAND

3、FLASH SDRAM DDR講解172六、七教224嵌入式的存儲口系統(tǒng)、層次、特點182六、七教224全書復習192六、七教224全書復習20考試說明:1、教學容按每次授課容填寫。 2、考核方式分考試與考查兩種。3、任課教師在每學期開課以前根據(jù)教學大綱編寫教學日歷,一式四份,經學部(系、室)主任審閱同意后,一份自存,一份交所在系,一份交所在學部,一份交學生。學部(系、室)主任簽名:任課老師簽名: 曉秋 1011上學期課表(嵌入式系統(tǒng)原理與應用)使用班級:計科200801、200802、200803計應:09級窗體頂端周課時16,200801共44人,200802共53人,200803共51人

4、,計應09級共44人。期末考試為筆試,學生成績見成績單。幾個重要掌握的概念一、“嵌入”的意義從語言上理解:一個物體嵌入到另一個物體中;從計算機的角度理解:服務器與客戶機的關系;從學習程度上理解:專業(yè)知識的綜合運用;從個人工作上理解:屬于計算機應用的圍;從嵌入與被嵌入上理解:獨立功能與系統(tǒng)功能,受控與不受控的關系。二、本課程的研究對象是ARM9、ARM指令、S3C2410、一般系統(tǒng)接口;關于ARM9與S3C2410的功能特點、技術參數(shù)等由生產廠家已經確定,在課程教學中沒有修改與補充,這些容主要由學生自己自學完成。窗體底端窗體頂端窗體底端窗體頂端如何上好這門課認真獨立完成作業(yè)、實驗報告、加深理解、

5、掌握基礎知識;上課做好筆記,在課堂中將結合實踐情況有大量容的補充,講課的順序與教材不完全一樣,因此課堂筆記將是一種今后自己的復習資料。(??疲┳⒁饣A知識的學習,做好課后復習,特別要將以前學習過的專業(yè)課書籍進行相關的復習;軟件、硬件是嵌入式系統(tǒng)重要組成部分,缺一不可,不可分割,在學習中只能做到全面發(fā)展,決不能將通用計算機中的軟件、硬件完全分開來看,掌握嵌入式系統(tǒng)中的軟件、硬件必須在一個大的框架協(xié)調工作。(??疲┰趯W習中要有自己的目標,基本硬件結構和基本軟件是學習嵌入式系統(tǒng)的關鍵,從8位處理器開始,向32位處理器沖擊,掌握嵌入式系統(tǒng)和基本結構和特點,如果堅持這樣,學習嵌入式系統(tǒng)是肯定成功的。學習

6、基本硬件結構,比學習電子電路和模擬電路的難度小,嵌入式系統(tǒng)中要使用大量的集成電路,在今后的實踐中,一定要先學好集成電路的技術資料(學會上網自己查找),然后才能設計硬件結構和系統(tǒng)軟件。在學習中決不可盲目求新,由系統(tǒng)功能和用戶要求確定系統(tǒng)結構,注意設計成本和生產條件,保證設計的嵌入式系統(tǒng)便利地升級、使用和維護。(??疲┍緦W期的重點是熟悉使用、實驗體會、掌握提高。掌握并理解以紅色字體標出的容。第一章:嵌入式系統(tǒng)的基礎部份1.1 定義定義:以應用為中心、以計算機技術為基礎,符合多方面嚴格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)是計算機技術、半導體技術和微電子技術等多種先進技術的產物。從嵌入式系統(tǒng)運行的軟件是固

7、化在硬件系統(tǒng)中與硬件形成一個不可分割的整體,同一個嵌入式硬件系統(tǒng)一般很難采用改變軟件的方法用于其它領域,因此不可能有一個標準化的設計,這是嵌入式系統(tǒng)最大的特點?!扒度胄浴薄ⅰ皩S眯浴迸c“計算機系統(tǒng)”是嵌入式系統(tǒng)的三個基本要素。1.2 發(fā)展1.2.1 基本過程從工業(yè)生產和自動控制開始,發(fā)展到現(xiàn)在的嵌入式系統(tǒng)(以講述為主)1.2.2 具體過程(1) 無操作系統(tǒng)階段單片機是最早應用的嵌入式系統(tǒng),一般沒有操作系統(tǒng)的支持,程序設計采用匯編語言。優(yōu)點是由單片機構成的這種嵌入式系統(tǒng)使用簡便、價格低廉,在工業(yè)控制領域中得到了非常廣泛的應用,現(xiàn)在的生產實踐中還使用得非常很廣。(2) 簡單操作系統(tǒng)階段在20世紀8

8、0年代后,隨著計算機的發(fā)展,嵌入式系統(tǒng)的地位在系統(tǒng)應用中的越來越高,由此出現(xiàn)了面向I/O設計的微控制器(或微處理器)在嵌入式系統(tǒng)設計應用。一些簡單的嵌入式操作系統(tǒng)開始出現(xiàn)并得到迅速發(fā)展。(一般由8位以上CPU為中心)(3) 實時操作系統(tǒng)階段20世紀90年代后,嵌入式系統(tǒng)在應用中飛速發(fā)展。隨著硬件實時性要求的提高,嵌入式系統(tǒng)的軟件規(guī)模也不斷擴大,實時多任務操作系統(tǒng)逐漸形成,系統(tǒng)能夠運行在各種不同類型的微處理器上,具備了文件和目錄管理、設備管理、多任務、網絡、圖形用戶界面等功能,并提供了大量的應用程序接口,從而使應用軟件的開發(fā)變得更加簡單。(32位機)(4) 面向Internet階段進入21世紀,

9、Internet技術與信息家電、工業(yè)控制技術等的結合日益緊密,嵌入式技術與Internet技術的結合正在推動著嵌入式系統(tǒng)的飛速發(fā)展。(與互聯(lián)網結合)1.2.3 嵌入式系統(tǒng)的發(fā)展趨勢(1) 新的微處理器層出不窮,降低功耗和軟硬件成本,多媒體人機交互界面更豐富。(2) 嵌入式操作系統(tǒng)迅速發(fā)展,逐步進行各個領域。(3) 嵌入式系統(tǒng)的開發(fā)成了一項系統(tǒng)工程。(4) 大量可編程器件和系統(tǒng)開發(fā)工具的出現(xiàn),為嵌入式系統(tǒng)的發(fā)展提供支持。如:嵌入式數(shù)字信號處理器(digital signal processing DSP)PLD(programmable logic device 可編程邏輯器件)、FPGA(fi

10、eld programmable gate array 現(xiàn)場可編程邏輯器件)等。1.2.4IP核(Intellectual Property Core,知識產權核)IP核是具有專有知識產權,帶有具體功能并且有規(guī)的接口,可在多個系統(tǒng)設計中重復使用的功能模塊,是實現(xiàn)嵌入式片上系統(tǒng)的基本構件。1.3嵌入式系統(tǒng)的組成(重點關心1.3.1、1.3.2)嵌入式系統(tǒng)通常由包含有嵌入式處理器、嵌入式操作系統(tǒng)、應用軟件和外圍設備接口等組成。嵌入式計算機系統(tǒng)是整個嵌入式系統(tǒng)的核心,可以分為硬件層、中間層、系統(tǒng)軟件層和應用軟件層。(注意:兩個系統(tǒng)的區(qū)別)嵌入式應用軟件嵌入式中間級嵌入式操作系統(tǒng)嵌入式處理器存儲器接口

11、系統(tǒng)軟件硬件層嵌入式操作系統(tǒng)對上層連接應用程序,對下層管理硬件系統(tǒng)。抽象層,是軟件與硬件的接口,完成上下層的工作中間層對被控對象的控制應用軟件BSP使上層軟件開發(fā)人員無需關心底層硬件的具體情況。嵌入式計算機系統(tǒng)1.3.1 嵌入式計算機系統(tǒng)的硬件層硬件層中包含嵌入式微處理器、存儲器、通用設備接口和I/O接口(一般為可看到的構件)。特點是:硬件層通常是一個以嵌入式處理器為中心進行設計,一般包含有電源電路、時鐘電路和存儲器電路等模塊(不可少的構件)。(1) 嵌入式微處理器嵌入式微處理器是嵌入式系統(tǒng)硬件層的核心,將通用CPU、多板卡集成在一個芯片(以前的單板機和單片機的區(qū)別),從而有利于系統(tǒng)設計趨于小

12、型化、高效率和高可靠性。(2) 存儲器嵌入式系統(tǒng)的存儲器包含Cache、主存儲器和輔助存儲器,目的是用來存放數(shù)據(jù)和執(zhí)行代碼。Cache一般集成在嵌入式微處理器,可分為數(shù)據(jù)Cache、指令Cache或混合Cache。主存儲器用來存放系統(tǒng)和用戶的程序與數(shù)據(jù),是嵌入式微處理器能直接訪問的存儲器。輔助存儲器通常指硬盤或大容量存儲設備,其主要特點有一般容量較大,其讀、取速度與主存相比要慢一些。(3) 通用設備接口和I/O接口設備接口完成信息的相互轉換與匹配;I/O接口完成信息的輸入與輸出。(注意:兩個接口的區(qū)別,在一個系統(tǒng)中這兩個接口全部都有,在這要運用學過的微機接口知識。)1.3.2 中間層中間層也稱

13、為硬件抽象層或板級支持包,位于硬件層和軟件層之間,將系統(tǒng)上層軟件與底層硬件分離開來,是上層軟件與下層硬件平臺之間的接口,需要為操作系統(tǒng)提供操作和控制具體硬件的方法。(1) 嵌入式系統(tǒng)硬件初始化系統(tǒng)初始化過程按照自底向上、從硬件到軟件的次序依次可以分為片級初始化、板級初始化和系統(tǒng)級初始化3個主要環(huán)節(jié)(注意:方向)。片級初始化把嵌入式微處理器從上電時的默認狀態(tài)設置成系統(tǒng)所要求的工作狀態(tài)(CPU的初始化)。板級初始化是一個軟、硬件操作過程,完成嵌入式微處理器以外的其他硬件設備的初始化(相對獨立,不構成系統(tǒng))。系統(tǒng)級初始化主要進行操作系統(tǒng)的初始化(完整)。(2) 硬件相關的設備驅動程序中間層中包含硬件

14、了與相關設備的驅動程序,但是這些設備驅動程序通常不直接由中間層使用,而是在系統(tǒng)初始化過程中將中間層與操作系統(tǒng)用的設備驅動程序關聯(lián)起來,并在隨后的應用中調用這些設備驅動程序,實現(xiàn)對硬件設備的操作。BSP級:驅動程序操作系統(tǒng)任務:需要操作硬件設備被系統(tǒng)操作的對應硬件設備初始化時上、下關聯(lián)使用時調用完成設備的輸出與輸入1.3.3 系統(tǒng)軟件層(專科不作要求,本科作一般了解,為今后的發(fā)展打好基礎)系統(tǒng)軟件層通常包含有實時多任務操作系統(tǒng)、文件系統(tǒng)、圖形用戶接口、網絡系統(tǒng)與通用組件模塊組成。(1) 嵌入式操作系統(tǒng)(Embedded Operating System,EOS)EOS負責嵌入式系統(tǒng)的軟件、硬件的

15、資源分配、任務調度,控制協(xié)調。(2) 文件系統(tǒng)嵌入式文件系統(tǒng)與通用操作系統(tǒng)的文件系統(tǒng)不完全一樣,主要提供文件存儲、檢索和更新等功能,一般不提供保護和加密等安全機制。(3) 圖形用戶接口(GUI)GUI使用戶可以通過窗口、菜單、按鍵等方式來方便地操作計算機或者嵌入式系統(tǒng)。1.3.4 應用軟件層應用軟件層用來實現(xiàn)對被控對象的控制功能,由所開發(fā)的應用程序組成,面向被控對象和用戶。為方便用戶操作,通常需要提供一個友好的人機界面,我們以前學習的開發(fā)平臺所編寫的程序大多是應用軟件層的應用程序,這些相關容以前有所了解,本課程沒有過多的研究。(下面的分類只作了解要求)1.4嵌入式微處理器體系結構1.4.1&#

16、183;諾依曼(Von Neumann)結構與哈佛(Harvard)結構、特點。(要求:掌握重點與正確判斷結構)數(shù)據(jù)、指令同一存儲區(qū)。由PC指示數(shù)據(jù)、地址的存儲位置,單一總線完成數(shù)據(jù)與指令的復用功能數(shù)據(jù)存儲區(qū)指令存儲區(qū)數(shù)據(jù)、指令存儲區(qū)(馮·諾依曼結構)數(shù)據(jù)、地址總線數(shù)據(jù)總線地址總線PC指示(哈佛結構)1.4.2精簡指令集計算機(要求:掌握重點與使用條件)(1) 早期的計算機采用復雜指令集計算機(Complex Instruction Set Computer,CISC)體系,采用的都是典型的CISC體系結構。通過增強指令系統(tǒng)的功能,簡化了軟件,但增加了硬件的復雜程度,而這些復雜指令并

17、不等于有利于縮短程序的執(zhí)行時間。(2)精簡指令集計算機(Reduced Instruction Set Computer,RISC)體系結構是20世紀80年代提出來的。目前,RISC已經成為當前計算機發(fā)展不可逆轉的趨勢。RISC是在CISC的基礎上產生并發(fā)展起來的,RISC架構也不可以取代CISC架構。事實上,RISC和CISC各有優(yōu)勢。現(xiàn)代的CPU往往采用CISC的外圍,部加入了RISC的特性。在PC機和服務器領域, CISC體系結構是市場的主流;在嵌入式系統(tǒng)領域, RISC結構的微處理器將占有重要的位置。1.4.3 流水線的基本概念(本科掌握這種思想)流水線技術的基本思想是將一個重復的時序

18、分解成若干個子過程,而每一個子過程都可有效地在其專用功能段上與其他子過程同時執(zhí)行,同一時間,多個子過程同時運行,這是最重要的特點。1.5信息存儲的字節(jié)順序1.5.1 大端和小端存儲法大多數(shù)計算機使用8位為數(shù)據(jù)塊的最小單位,稱為一個字節(jié)。存儲器的每一個字節(jié)都用一個唯一的地址來標識。所有可能地址的集合稱為存儲器空間。對于軟件而言,它將存儲器看作一個大的字節(jié)數(shù)組,稱為虛擬存儲器(提問:為什么是虛擬存儲器)。對于一個多字節(jié)類型的數(shù)據(jù),在存儲器中有兩種存放方法。一種是低字節(jié)數(shù)據(jù)存放在存低地址處,稱為小端字節(jié)順序存儲法;另一種是高字節(jié)數(shù)據(jù)存放在高地址處,稱為大端字節(jié)順序存儲法。注意:地址有高地址和低地址;

19、數(shù)據(jù)有高位和低位;它們如何組合,這就是存儲的方法,實際使用時要根據(jù)使用的實際情況與要求,靈活掌握。1.5.2 存儲的幾種常見問題(理解以下4點的概念,在今后的設計中一定要注意)(1) 不同模式下的問題(不同位長的機器交換數(shù)據(jù)時)(2) 可移植性問題(同位長相互間傳遞數(shù)據(jù)時)(3) 通信中的存儲順序問題(不同協(xié)議的影響)(4) 數(shù)據(jù)格式的存儲順序(不同數(shù)據(jù)格式的影響)1.6嵌入式微處理器的結構和類型(??埔话懔私猓迷谇度胧接嬎銠C系統(tǒng)中的微處理器稱為嵌入式微處理器,其是嵌入式微處理器是嵌入式硬件系統(tǒng)的核心。嵌入式微處理器的字長寬度可分為4位、8位、16位、32位和64位。一般把16位與以下的稱

20、為嵌入式微控制器, 32位與以上的稱為嵌入式微處理器。如果微處理器部僅包含單純的中央處理器單元,人們一般稱其為CPU,常稱為單芯片微控制器(用MCU表示),如單片機,89C51等。嵌入式微處理器(用MPU表示)由通用計算機中的CPU發(fā)展而來,嵌入式微處理器只保留和嵌入式應用緊密相關的功能硬件,去除其他的冗余功能部分,以最低的功耗和資源實現(xiàn)嵌入式應用的特殊要求。根據(jù)用途,可以分為嵌入式微控制器、嵌入式微處理器、嵌入式DSP處理器、嵌入式片上系統(tǒng)、雙核或多核處理器等類型。16位 32位單片微控制器嵌入式微控制器嵌入式微處理器中央處理器的發(fā)展計算機CPU的發(fā)展復雜的嵌入式系統(tǒng)簡單的嵌入式系統(tǒng)1.7

21、ARM系列ARM(Advanced RISC Machine)公司的ARM微處理器體系結構目前被公認為是嵌入式應用領域領先的32位嵌入式RISC微處理器結構。ARM處理器系列中的各種處理器,雖然在實現(xiàn)技術、應用場合和性能方面都不一樣,但只要支持一樣的ARM體系版本,基于它們的應用軟件是兼容的。(沒有講述的不作要求)1.7.1嵌入式DSP處理器嵌入式DSP處理器(Digital Signal Processor,DSP)是專門用于數(shù)字信號處理方面的處理器,芯片部采用程序和數(shù)據(jù)分開存儲和傳輸?shù)墓鸾Y構,具有專門硬件乘法器,采用流水線操作,提供特殊的DSP指令,可用來快速地實現(xiàn)各種數(shù)字信號處理算法,

22、使其處理速度比最快的CPU還快1050倍。可編程DSP也為廣大用戶提供了易于升級的良好途徑。為縮短軟件開發(fā)的周期,DSP軟件開發(fā)通常使用高級語言進行。1.7.2嵌入式片上系統(tǒng)嵌入式片上系統(tǒng)(System On Chip,SOC)最大的特點是成功實現(xiàn)了軟、硬件無縫結合,直接在處理器片嵌入操作系統(tǒng)的代碼模塊,而且具有極高的綜合性,在SOC中,絕大部分系統(tǒng)構件都是在系統(tǒng)部,系統(tǒng)簡潔,系統(tǒng)的體積和功耗小,可靠性高。1.7.3多核處理器將兩個或多個微控制器封裝在一個芯片部構成一個多核的處理器。另外,由于多核處理器對外的“界面”是統(tǒng)一的,從兼容性和系統(tǒng)升級成本方面來考慮有諸多的優(yōu)勢。總結:第一章要掌握的幾

23、個方面一:定義、發(fā)展、趨勢;二:嵌入式計算機系統(tǒng)的層次與層次關系;三:幾個概念 二個結構(、哈結構);二個指令集(復雜與精簡);流水與存儲。第1章習題1舉例說明嵌入式系統(tǒng)的“嵌入性”、“專用性”、“計算機系統(tǒng)”的基本特征。(P2)2.·諾依曼結構與哈佛結構各有什么特點?(P12)3大端存儲法與小端存儲法有什么不同?對存儲數(shù)據(jù)有什么要求與影響?(P16)第二章:從8位機到32位機要點:本章是教材第二章的擴展,重要強調知識的連續(xù)性和擴展性,對于學生今后的自學是一個很好的例。2.1 89C51單片機(嵌入式微控制器)2.1.1 51系列CPU主要功能插腳簡介(雙列直插,40個引腳)XTAL

24、1 P0XTAL2 P1 P2 51CPU P3EA/ RESETALE Vcc共有四個輸入/輸出口(即雙向口),其中P3口具有第二功能。在嵌入式系統(tǒng)中一般使用其第二功能,而不是作為一個簡單的輸入/輸出口使用。減P3口的第二具體的功能以后細述。2.1.2 51系列CPU存儲空間的確定程序存儲器:片4K,片外64K(ROM只讀),兩者統(tǒng)一編址。數(shù)據(jù)存儲器:片256個單元,片外64K(均為RAM隨機存儲器),片與片外根據(jù)不同的指令進行獨立編址。I/O口:有4個8位的雙向I/O端口,各個端口根據(jù)編程可具有特定的功能。 片 片外0FFF4KB ROMEA=10000FFFF64KBROM10000FF

25、FEA=00000FFFF64KBRAM(I/O)0000FF80 專用寄存器 RAM7F00 通用寄存器2.1.3CPU時序時鐘周期:機器中最基本的時間單位,由外接振蕩器決定,用S表示。機器周期:完成一個基本操作所需時間,一般情況下由若干個時鐘周期組成。指令周期:執(zhí)行一條指令所需的時間,一般情況下由約若干個時鐘周期組成。三者關系可用下圖表示:指令周期時鐘周期機器周期共有12個在MCS-51系統(tǒng)中一個機器周期為12個時鐘周期,因此保證機器周期的條件下,減少時鐘周期的大小,可以改變指令的速度,新型處理器就有這種思路,這些也為選型提供了好的理論基礎。2.1.4 一個實例(本科認真復習,??埔莆辗?/p>

26、析方法。)以8位長度為例,建立片選與片外地址的概念。CPUA7A6A5A4A3A2A1A074LS139G/ Y3B Y2A Y1 Y0CE/61XXCS/8255CE/27XX地址的確定:27XX:001001 20H-3FH 61XX:010001 40H-5FH 8255:011001 60H-7FH2.1.5 幾點概念由8位機到32位機經過了二次進步,有8位機的基礎,學習32位機不會有很大困難;8位機與32位機使用精簡指令集計算機,有8086匯編語言的基礎,學習將不會有很大困難;從結構上講,8位機的CPU中有程序存儲器和數(shù)據(jù)存儲器,32位的微處理器中有指令Cache、數(shù)據(jù)Cache和存

27、儲器因此速度更快;在8086中一個字長是16位,由兩個字節(jié)組成;在ARM中一個字長是32位,由兩個16位的半字組成,所以決定一個字的長度必須考慮總線的寬度;8位機(51系列CPU)中有4組通用寄存器,每組8個,每個字長為8位,共計32個通用寄存器,ARM處理器共有37個通用寄存器,在不同模式下有可見和不可見之分,不是以分組的形式出現(xiàn),每個通用寄存器字長32位。2.2 ARM9工作狀態(tài)與存儲方式(注意:P27開始,前面的不作要求)2.2.1概述先進的ARM920T(常稱ARM9)是嵌入式微處理器的核。下面的介紹均以ARM920T(即ARM9)為例,典型產品如Samsung(三星)公司的S3C24

28、10A(學校實驗室的實驗箱就是使用這種處理器)處理工作狀態(tài)從程序員的角度上看,ARM920T可以工作在下面兩種工作狀態(tài)下的一種:ARM狀態(tài):執(zhí)行32位ARM指令(本學期重點要掌握);Thumb狀態(tài):執(zhí)行16位半字的Thumb指令(一般了解)。注意:32位為一個字,與以前學的有區(qū)別,學習要更新。2.2.2 存儲空間的格式ARM920T將存儲器空間視為從地址為0開始,單元由字節(jié)組成的線性存儲集合,一個字占用4個字節(jié)的存儲空間,ARM可尋址圍有4GB空間(因為地址有32位長),ARM處理器有的帶有指令Cache和數(shù)據(jù)Cache,但不帶有片RAM和片ROM(與8位機的區(qū)別),系統(tǒng)所需的RAM和ROM(

29、包括Flash)都通過總線外接。ARM920T對存儲的字,可以按照小端或大端的存儲方式對待(前面已講)。注意:指令長度和數(shù)據(jù)長度2.3 操作模式ARM920T支持7種操作模式:(認真看書P29中)用戶模式(user模式); 快速中斷模式(fig模式);中斷模式(irq模式);超級用戶模式(svc模式);異常中斷模式(abt模式);系統(tǒng)模式(sys模式);未定義模式(und模式)。重點總結:這些“模式”的關系有:外部中斷、異常操作、軟件控制都可以改變?yōu)橹袛嗄J健4蠖鄶?shù)應用程序都是在用戶模式下運行。不在用戶模式下的稱為特權模式;不在用戶模式和系統(tǒng)模式下的稱為異常模式(P29上的圖上的標示)。2.4

30、 寄存器組織重要總結:ARM共有37個32位的寄存器(每個4個字節(jié),共占用148個字節(jié)長37*4=148,即94H個單元),其中31個是通用寄存器(16個通用+15個私用=31個),6個是狀態(tài)寄存器(1當前+5個備用,共計37個)。但在同一時間(或同時模式下),并不是所有的寄存器都可見(不是37個都可見)。2.4.1 ARM狀態(tài)下的寄存器(分三類問題進行總結)(1) 在ARM狀態(tài)下,任何時刻都可以看到16個通用寄存器,1或2個狀態(tài)寄存器。(2) 寄存器R15作為系統(tǒng)CP,寄存器R14作為系統(tǒng)稱連接寄存器,寄存器R13作為系統(tǒng)堆棧指針。(3) 寄存器CPSR是當前程序狀態(tài)寄存器;寄存器SPSR是

31、備用狀態(tài)寄存器。(4) 下劃線后的標出了是什么模式下的私用寄存器,在不同械下系統(tǒng)使用的私有寄存器數(shù)是不一樣的。注意:不是通用寄存器系統(tǒng)和用戶FIQ超級用戶異常中止IRQ未定義1 R0R0R0R0R0R02 R1R1R1R1R1R13 R2R2R2R2R2R24 R3R3R3R3R3R35 R4R4R4R4R4R46 R5R5R5R5R5R57 R6R6R6R6R6R68 R7R7R7R7R7R79 R81 R8_fiqR8R8R8R810 R92 R9_fiqR9R9R9R911 R103 R10_fiqR10R10R10R1012 R114 R11_fiqR11R11R11R1113 R12

32、5 R12_fiqR12R12R12R1214 R136 R13_fiq8 R13_svc10 R13_abt12 R13_irq14 R13_und15 R147 R14_fiq9 R14_svc11 R14_abt13 R14_irq15 R14_und16 R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)RAM狀態(tài)下的狀態(tài)寄存器1 CPSRCPSRCPSRCPSRCPSRCPSR空1 SPSR_fiq2 SPSR_svc3 SPSR_abt4 SPSR_irq5 SPSR_und圖 RAM狀態(tài)下寄存器集2.4.2Thumb狀態(tài)下的寄存器(1) Thum

33、b狀態(tài)寄存器是ARM狀態(tài)寄存器的一個子集。程序員可以直接操作8個通用寄存器R0-R7,同樣也可以操作程序計數(shù)器R15(PC),堆棧指針寄存器R13(SP),R14(link)寄存器(LR),和CPSR與SPSR。系統(tǒng)和用戶FIQ超級用戶異常中止IRQ未定義R0R0R0R0R0R0R1R1R1R1R1R1R2R2R2R2R2R2R3R3R3R3R3R3R4R4R4R4R4R4R5R5R5R5R5R5R6R6R6R6R6R6R7R7R7R7R7R7SPSP_fiqSP_svcSP_abtSP_undSP_fiqLRLR_fiqLR_svcLR_abtLR_undLR_fiqPCPCPCPCPCPC

34、Thumb狀態(tài)下的狀態(tài)寄存器CPSRCPSRCPSRCPSRCPSRCPSR空SPSR_fiqSPSR_svcSPSR_abtSPSR_irqSPSR_und圖 Thumb狀態(tài)下的寄存器集2.4.3 ARM和Thumb狀態(tài)寄存器間的關系(1) Thumb下R0-R7和ARM狀態(tài)下R0-R7是等同的;(2) Thumb狀態(tài)的CPSR和SPSR跟ARM 狀態(tài)的CPSR和SPSR是等同的;(3)Thumb狀態(tài)下的SP映射在ARM狀態(tài)下的R13上;(4) Thumb狀態(tài)下的LR映射在ARM狀態(tài)下的R14上;(5)Thumb狀態(tài)下的程序計數(shù)器映射在ARM狀態(tài)下的程序計數(shù)器上(R15)。THUMB 狀態(tài)對

35、應關系RAM狀態(tài)R0R0R2R2R3R3R4R4R5R5R6R6R7R7R8R9R10R11R12Stack Pointer(SP)Stack Pointer(R13)Link register(LR)Link register(R14)Program Counter(PC)Program Counter(R15)CPSRCPSRSPSRSPSR圖 Thumb狀態(tài)下和ARM狀態(tài)下寄存器之間的映射關系2.4.4 在Thumb狀態(tài)下訪問高地址寄存器(??撇蛔饕螅┰赥humb狀態(tài)下寄存器R8-R15(高地址寄存器)不是標準寄存器集。但是,匯編語言的程序員可以訪問它們并用它們作快速暫存。向R8-R1

36、5寫入或讀出數(shù)據(jù),可以采用MOV指令的某個變型,從R0-R7(低地址寄存器)的某個寄存器傳送數(shù)據(jù)到高地址寄存器,或者從高地址寄存器傳送到低地址寄存器。還可以采用CMP和ADD指令,將高地址寄存器的值與低地址寄存器的值進行比較或相加。2.5 程序寄存器狀態(tài)ARM920T具有一個當前程序狀態(tài)寄存器(CPSR),另外還有5個保存程序狀態(tài)寄存器(SPSR)用于異常中斷處理,這些寄存器的功能有三種:保留最近完成的ALU(運算器)操作的信息;控制中斷的使能和禁止;設置處理器的操作模式。31 30 29 28 27 26 25 24 23 ·· 8 7 6 5 4 3 2 1 0NZCV

37、········IFTM4M3M2M1M0其中處理器的的信息與意義如下:其中:N、Z、C、V稱為條件碼標志;D27D8為保留位;IM0稱為控制位標志。2.5.1 條件碼標志N、Z、C、V均為條件碼標志位。它們的容根據(jù)算術或邏輯運算的結果所改變,并且可用來作為一些指令是否運行的檢測條件。在ARM狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的;在Thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。2.5.2 控制位(IM0)的幾種取值情況M4:0模式可視的THUNM狀態(tài)寄存器可視的ARM狀態(tài)寄存器10000用戶模式R7R0, LR,

38、 SP PC, CPSRR14R0, PC, CPSR10001FIQ 模式R7R0, LR_fiq, SP_fiq PC, CPSR, SPSR_fiqR7R0, R14_fiq.R8_fiq, PC, CPSR, SPSR_fiq10010IRQ 模式R7R0, LR_irq, SP_irq PC, CPSR, SPSR_irqR12R0, R14_irq, R13_irq, PC, CPSR, SPSR_irq10011超級用戶模式R7R0, LR_svc, SP_svc, PC, CPSR, SPSR_svcR12R0, R14_svc, R13_svc, PC, CPSR, SPSR

39、_svc10111中止R7R0, LR_abt, SP_abt, PC, CPSR, SPSR_abtR12R0, R14_abt, R13_abt, PC, CPSR, SPSR_abt11011未定義模式R7R0 LR_und, SP_und, PC, CPSR, SPSR_undR12R0, R14_und, R13_und, PC, CPSR11111系統(tǒng)模式R7R0, LR, SP PC, CPSRR14R0, PC, CPSRCPRS的低8位(包括I、F、T和M4:0)稱為控制位,當發(fā)生異常時這些位會被改變,如果處理器在特權模式下(非用戶模式)運行,這些位也可以由程序修改。(1)

40、T標記位:該位反映處理器的運行狀態(tài)。(2) 中斷禁止位:I、F位為中斷禁止位(注意:I給IRQ使用,F(xiàn)給FIQ使用,它們是分開使用,不是合起來使用),當它們被置1時可以相應地禁止IRQ和FIQ中斷。CPSR中的其余位為保留位,當改變CPSR中的條件碼標志位或控制位時,必須確保其“保留”位不能變,在程序中也不要使用“保留位”來存儲數(shù)據(jù)值。2.6 異常(除用戶模式和系統(tǒng)模式外)當正常的程序執(zhí)行流程被臨時中斷時(可由系統(tǒng)部或系統(tǒng)外部的事件引起),稱為產生了異常(注意異常比中斷的定義圍大)。在處理異常前,當前處理器的狀態(tài)必須被保留(保護現(xiàn)場),處理異常程序完成后,處理器能恢復原來的狀態(tài)并執(zhí)行原來程序(

41、恢復現(xiàn)場并可靠返回)。有可能同時產生好幾個異常,如果出現(xiàn)這種情況,就應該按優(yōu)先級的順序進行處理。P33上列出了7類導異常,它們均有固定的異常入口地址,這個地址又稱“異常向量”(以前學過中斷向量)。另外,關于異常類型的含義希望認真理解。2.6.1進入異常時的行為(以ARM狀態(tài)為例)下以圖說明,當一個異常發(fā)生時,ARM920T響應和返回時的狀態(tài)。注意書上分別進行了討論,希望同學們將二個過程進行綜合考慮,先把下面的圖掌握,課后再看書上的討論。注意:你不需要特別指明切換回Thumb狀態(tài)。因為原來的CPSR被自動地保存到了SPSR。NN+1R14CPSRCPSR保護和恢復原狀態(tài)保護和恢復斷點異常服務程序

42、裝入異常服務程序的狀態(tài)PC裝入異常程序入口地址說明:異常發(fā)生響應異常異常返回主程序異常過程示意圖2.6.3異常中斷向量(特點:4個字節(jié)一個地址)地址異常中斷類型進入時處理器的模式0x00000000Reset復位管理模式0x00000004Undefined instruction未定義模式0x00000008Software Interrupt軟件中斷管理模式0x0000000CAbort (預取指令中止)Abort異常預取指中止模式0x00000010Abort (數(shù)據(jù)中止)Abort異常數(shù)據(jù)中止模式0x00000018IRQIRQ外部中斷請求模式0x0000001CFIQFIQ快速中斷請

43、求模式圖 異常向量表2.6.4異常中斷優(yōu)先級當多個異常中斷同時發(fā)生時,處理器根據(jù)一個固定(不是設計人員設定的,是處理器已經定下的)的優(yōu)先級系統(tǒng)來決定處理它們的順序。最高優(yōu)先級:1.復位;2.數(shù)據(jù)中止;3. FIQ;4. IRQ;5. 預取指中止;最低中斷優(yōu)先級:6.未定義指令和軟件中斷。關于異常類型、異常入口地址、異常優(yōu)先級見P34中表2.4.12.7 ARM尋址方式2.7.18位機的基本尋址方式尋址方式就是尋找地址的方式,為什么要尋址,因為地址指示的那個單元有重要的數(shù)據(jù)。立即尋址 MOV A,#34H 指令中有數(shù)據(jù)直接尋址 MOV A,34H 地址在指令中寄存器尋址 MOV A,R2 寄存器

44、中的容為數(shù)據(jù)寄存器間接尋址 MOVX A,R0 寄存器中的容為地址變址尋址 MOVC A,A+DPTR 地址是一個合成地址相對尋址 JC 03H(C=1,則PC+3;C=0,不轉)位對址 SETB 3DH 對規(guī)定的位進行操作堆棧操作 PUSH叫壓棧(入棧),POP叫出棧(彈出)2.7.2 ARM處理器中的尋址方式。(1) 寄存器尋址操作數(shù)的值在寄存器中,指令中地址碼字段給出的是寄存器編號,寄存器的容是操作數(shù)(指令執(zhí)行時直接取出寄存器的值進行操作)。例如指令MOV R1,R2 ;R1R2 SUB R0,R1,R2 ;R0R1- R2(2) 立即尋址在立即尋址指令中數(shù)據(jù)就包含在指令當中,立即尋址指

45、令的操作碼字段后面的地址碼段部分就是操作數(shù)本身,取出指令也就取出了可以立即使用的操作數(shù)(也稱為立即數(shù))。立即數(shù)要以“”為前綴,表示16進制數(shù)值時以“0x”表示。例如指令ADD R0,R0,#1 ;R0R0 + 1MOV R0,#0xff00 ;R00xff00(3) 寄存器移位尋址寄存器移位尋址是ARM指令集特有的尋址方式。第2個寄存器操作數(shù)在與第1個操作數(shù)結合之前,先進行移位操作。例如指令:MOV R0,R2,LSL #3 ;R2的值左移3位,結果放入R0,即R0=R2 * 8ANDS R1,R1,R2,LSL R3 ;R2的值左移3位,然后和R1相與操作,結果放入R1可采用的移位操作如下:

46、LSL:邏輯左移,寄存器中字的低端空出的位補0。LSR:邏輯右移,寄存器中字的高端空出的位補0。ASR:算術右移,移位過程中保持符號位不變,即如果源操作數(shù)為正數(shù),則字的高端空出的位補0,否則補1ROR:循環(huán)右移,由字的低端移出的位填入字的高端空出的位。RRX:帶擴展的循環(huán)右移,操作數(shù)右移一位,高端空出的位用原C 標志值填充。 各移位操作過程如下圖所示。(4) 寄存器間接尋址(注意:使用括號了,表示寄存器為一個地址。)指令中的地址碼段給出的是一個通用寄存器編號,所需要的操作數(shù)保存在寄存器指定地址的存儲單元中,即寄存器為操作數(shù)的地址指針,操作數(shù)存放在存儲器中。例如指令(以R0為研究對象,認真分析讀

47、、寫的特點)LDR R0,R1 ;R0R1(將R1中的數(shù)值作為地址,取出此地址中的數(shù)據(jù)保存在R0中)STR R0,R1 ;R1 R0(5) 變址尋址(注意:操作的方向)變址尋址是將基址寄存器的容與指令中給出的偏移量相加,形成操作數(shù)的有效地址,變址尋址用于訪問基址附近的存儲單元,常用于查表,數(shù)組操作,功能部件寄存器訪問等。例如指令:LDR R2,R3,#4 ;R2R3 + 4(將R3中的數(shù)值加4作為地址,取出此地址的數(shù)值保存在R2 中)STR R1,R0,#-2 ;R0-2 R1(將R0中的數(shù)值減2 作為地址,把R1中的容保存到此地址位置)幾個英語單詞:LD Load 存儲器 M(memory)

48、 增加 I(increas) 升序 A(ascending) ST Set 寄存器 R(register) 減少 D(decreas) 降序 D(descending) 滿 E(empty) 在 之后 A(after)空 F(full) 在 之前 B(before)(6) 多寄存器尋址(注意:操作的方向)采用多寄存器尋址方式,一條指令可以完成多個寄存器值的傳送,這種尋址方式用一條指令最多可以完成16個寄存器值的傳送。例 LDMIA R1!,R2-R7,R12 ;將R1單元中的數(shù)據(jù)讀出,并保存到R2-R7和R12中,每次R1的地址值自動加1STMIA R0!,R3-R6,R10 ;將R3-R6、

49、R10中的數(shù)據(jù)保存到R0所指向的地址單元中,每次R0的地址值自動加1例如指令LDMIA R0,R1,R2,R3,R5 ;R1R0 ;R2R0 + 4;R3R0 + 8 ;R4R0 + 12 注意:使用多寄存器尋址指令時,寄存器子集的順序由大到小,連續(xù)的寄存器中間用“-”號連接,單個的用“,”號書寫。(7) 堆棧尋址增 滿減 空所以有四種棧頂棧底第一個空位置堆棧地址變化的方向小方向,遞減堆棧。大方向,遞增堆棧。SP指向將要壓入的有效數(shù)據(jù)位稱為“空堆?!?。SP指向最后壓入的有效數(shù)據(jù)時稱為“滿堆?!?。滿遞增:LDMFA、STMFA空遞增:LDMEA、STMEA滿遞減:LDMFD、STMFD空遞減:L

50、DMED、STMED堆棧是一個按特定順序進行存取的存儲區(qū)。同時,堆棧區(qū)是存儲區(qū)的一部分。向上生長:向高地址方向生長,Ascending Stack。向下生長:向低地址方向生長,Decending Stack。堆棧指針的指向也有二種情況:滿堆棧,F(xiàn)ull Stack??斩褩?,Empty Stack。由上面情況進行組合后楞有四種類型的堆棧工作方式:滿遞增堆棧;滿遞減堆棧;空遞增堆棧;空遞減堆棧。在這四種工作方式中的任何一種均可有LDM和STM二種尋址方式,所以:四種工作方式共有8種尋址方式相對應。例: STMFD SP!,R1-R7,LR ;滿遞減,將R1-R7,LR壓棧 LDMFD SP!,R1-R7,LR ;滿遞減,將數(shù)據(jù)彈出棧并保存在R1-R7,LR中注意:STM有“壓入、寫入”有含義;LDM有“彈出、讀出”的含義,區(qū)分好STR與LDR。(8) 塊復制尋址IA:每次傳送后地址加4(increas after);IB:每次傳送前地址加4(increase

溫馨提示

  • 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

提交評論