劉彥文等《Linux環境嵌入式系統開發基礎》第2章_第1頁
劉彥文等《Linux環境嵌入式系統開發基礎》第2章_第2頁
劉彥文等《Linux環境嵌入式系統開發基礎》第2章_第3頁
劉彥文等《Linux環境嵌入式系統開發基礎》第2章_第4頁
劉彥文等《Linux環境嵌入式系統開發基礎》第2章_第5頁
已閱讀5頁,還剩82頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第2章 微處理器組成及程序員模型 本章重點本章重點 : S3C2410A微處理器概述; S3C2410A微處理器組成、芯片封裝、引腳編號與引腳信號名、特殊功能寄存器簡介; ARM920T; ARM程序員模型:處理器操作狀態、存儲器格式和數據類型、處理器操作方式、寄存器等。2.1 S3C2410A微處理器概述 SAMSUNG公司的S3C2410A芯片是一款16/32位的RISC微處理器芯片,芯片內使用了ARM公司的ARM920T內核,采用了稱為AMBA(Advanced Microcontroller Bus Architecture,先進微處理器總線結構)的總線結構。 nS3C2410A芯片組

2、成介紹如下: ARM920T,內部包含兩個協處理器、單獨16KB指令Cache和MMU、單獨16KB數據Cache和MMU等 存儲器控制器,產生對SDRAM/Nor Flash/SRAM存儲器芯片的控制和片選邏輯 Nand Flash控制器 中斷控制器 LCD控制器,支持STN及TFT液晶顯示器 帶有外部請求引腳的4通道DMA 3通道通用異步收發器(UART),支持紅外傳輸 2通道SPI(Serial Peripheral Interface,串行外設接口) 1通道多主IIC總線控制器,1通道IIS總線控制器 MMC/SD/SDIO主控制器 2端口USB主控制器,1端口USB設備控制器(Ver

3、 1.1) 4通道脈寬調制(PWM)定時器與1通道內部定時器 看門狗定時器 117位GPIO端口,其中24通道可用作24路外部中斷源 電源管理,支持NORMAL、SLOW、IDLE和Power_OFF模式 8通道10位ADC與觸摸屏接口 帶日歷功能的RTC 帶鎖相環(PLL)的片內時鐘發生器2.2 S3C2410A微處理器 組成與引腳信號2.2.1 S3C2410A微處理器組成 S3C2410A微處理器組成 S3C2410A組成框圖如圖2.1所示。 n圖2.1中,S3C2410A片內組成可以分為三部分:ARM920T、連接在AHB總線上的控制器,以及連接在APB總線上的控制器或外設。其中ARM

4、920T在2.3節中講述。nAHB(Advanced High_performance Bus,先進高性能總線)是一種片上總線,用于連接高時鐘頻率和高性能的系統模塊,支持突發傳輸、支持流水線操作,也支持單個數據傳輸,所有的時序都是以單一時鐘的前沿為基準操作。nAPB(Advanced Peripheral Bus,先進外設總線)也是一種片上總線,為低性能、慢速外設提供了較為簡單的接口,不支持流水線操作。n4通道DMA與總線橋支持存儲器到存儲器、I/O到存儲器、存儲器到I/O、I/O到I/O的DMA傳輸;它將AHB/APB的信號轉換為合適的形式,以滿足連接到APB上設備的要求。橋能夠鎖存地址、數

5、據及控制信號,同時進行二次譯碼,選擇相應的APB設備。 AHB總線連接的控制器簡介 存儲器控制器 支持小端/大端數據存儲格式 全部尋址空間為1GB,分為8個banks,每個128MB bank1bank7支持可編程的8/16/32位數據總線寬度,bank0支持可編程的16/32位數據總線寬度 bank0bank7支持ROM/SRAM,其中bank6和bank7也支持SDRAM 每個bank存儲器訪問周期可編程 對ROM/SRAM,支持外部等待信號(nWAIT)擴展總線周期 在Power_down,支持SDRAM自己刷新(self_refresh)模式 支持使用Nor Flash、EEPROM等

6、作為引導ROM 支持存儲器與I/O端口統一尋址 Nand Flash控制器 支持從Nand Flash存儲器進行引導 有4KB SRAM內部緩沖區,用于引導時保存從Nand Flash讀出的程序 支持Nand Flash存儲器4KB(引導區)以后的區域作為一般Nand Flash使用 中斷控制器 支持55個中斷源,包括S3C2410A芯片外部,由引腳引入的24個中斷源;其余為芯片內部中斷源,看門狗(1個)、定時器(5個)、UART(9個)、DMA(4個)、RTC(2個)、ADC(2個)、IIC(1個)、SPI(2個)、SDI(1個)、USB(2個)、LCD(1個)以及電源失效(1個) 外部中斷

7、源通過編程,可選擇中斷請求信號使用電平或邊沿觸發方式 電平或邊沿觸發信號極性可編程 對于非常緊急的中斷請求,支持快速中斷請求FIQ LCD控制器nLCD控制器支持STN LCD顯示以及TFT LCD顯示,顯示緩沖區使用系統存儲器(內存),支持專用LCD DMA將顯示緩沖區數據傳送到LCD控制器緩沖區。nSTN LCD顯示特點: 支持4位雙掃描、4位單掃描、8位單掃描顯示類型STN LCD面板 支持單色、4灰度級、16灰度級、256色、4096色STN LCD顯示 支持多種屏幕尺寸,典型的有640480、320240、160160等 最大虛擬屏顯示存儲器空間為4MB,在256色模式,支持的虛擬屏

8、尺寸有40961024、20482048、10244096等nTFT LCD顯示特點: 支持1、2、4或8 BPP(Bit Per Pixel)面板彩色顯示 支持16 BPP真彩顯示 在24 BPP模式,支持最大16M色 支持多種屏幕尺寸,典型的有640480、320240、160160等 最大虛擬屏顯示存儲器空間為4MB,在64K色模式,支持的虛擬屏尺寸有20481024等 USB主控制器 2個端口的USB主(Host)控制器 兼容OHCI Rev 1.0 兼容USB V 1.1 支持低速和全速設備 時鐘與電源管理 S3C2410A片內有MPLL(Main Phase Locked Loop

9、,主鎖相環)和UPLL(USB PLL,USB鎖相環) UPLL產生的時鐘用于USB主/設備控制器操作 MPLL產生的時鐘在內核供電電壓為2.0V時,最大頻率為266MHz 時鐘信號能夠通過軟件有選擇地送到(或不送)每個功能模塊 電源管理支持NORMAL、SLOW、IDLE和Power_OFF模式 由EINT15:0或RTC報警中斷,能夠從Power_OFF模式中將MCU喚醒 ExtMaster 對由S3C2410A芯片外部另一個總線主設備提出,并送到S3C2410A的請求控制局部總線的請求,以及S3C2410A的響應,進行管理。 APB總線連接的部件簡介 通用異步收發器(UART 0、1、2

10、) 3通道UART,支持基于查詢、基于DMA或基于中斷方式操作 支持5/6/7/8位串行數據發送/接收(Tx/Rx) 支持外部時鐘(UEXTCLK)用于UART操作 可編程的波特率 支持紅外通信協議IrDA 1.0 通用I/O端口(GPIO) GPIO端口共有117位,其中24位可用于外部中斷請求源 通過編程,可以將各端口的不同位,設置為不同功能 定時器/脈寬調制 4通道16位脈寬調制定時器,1通道16位內部定時器,均支持基于DMA或基于中斷方式操作 實時時鐘(RTC) 看門狗定時器(WDT) A/D轉換器與觸摸屏 IIC(Intel Integrated Circuit,內部集成電路)總線接

11、口 IIS(Intel IC Sound,集成電路內部聲音)總線接口 SPI(Serial Peripheral Interface,串行外設接口) MMC/SD/SDIO主控制器 USB設備控制器 操作電壓、頻率和封裝 操作電壓 內核:1.8V,用于S3C2410A-20,最高200MHz 2.0V,用于S3C2410A-26,最高266MHz 存儲器與I/O:3.3V 操作頻率 最高到266MHz 芯片封裝 2.2.2 S3C2410A芯片封裝、 引腳編號與引腳信號名 S3C2410A芯片封裝形式n S3C2410A芯片有272個引腳,FBGA封裝,底視圖見圖2.2。n圖2.2中每個引腳所

12、在行、列對應的字母、數字,是分配給該引腳的編號,例如左下引腳為A1,左上引腳為U1。見圖2.2 S3C2410A引腳編號與引腳信號名nS3C2410A各引腳編號與對應的引腳信號名,見表2-1。n表2-1中,如果一個引腳編號對應一個引腳信號名,那么這個引腳信號名就代表該引腳的缺省功能;如果一個引腳編號對應多個引腳信號名,那么帶下劃線的引腳信號名,代表該引腳的缺省功能。缺省功能是指Reset后,該引腳第一次配置前的功能。 S3C2410A引腳信號名與對應功能nS3C2410A引腳信號名與對應功能描述,分別在相關章節講述;附錄A列出的是引腳信號名與對應功能描述的匯總表。 2.2.3 S3C2410A

13、特殊功能寄存器簡介n特殊功能寄存器(Special Function Registers,SFR),有時也稱特殊寄存器或專用寄存器。占用存儲器空間地址為0 x480000000 x5FFFFFFF的一片區域,稱為SFR Area(特殊功能寄存器區域),這些寄存器均在S3C2410A芯片內部,它們的含義和功能在第5章第13章中分別講述。2.3 ARM920T核nARM920T核也稱ARM920T處理器、CPU、內核,或直接稱為ARM920T。S3C2410A微處理器組成中包含了ARM920T核。nARM920T是通用微處理器ARM9TDMI系列中的一員,ARM9TDMI系列包含: ARM9TDM

14、I(ARM9TDMI核) ARM940T(ARM9TDMI核、Cache和保護單元) ARM920T(ARM9TDMI核、Cache和MMU) nARM9TDMI處理器核使用了五級流水線,五級流水線由取指、譯碼、執行、存儲(數據緩沖)和回寫組成。ARM9TDMI作為一個標準的單獨的核提供,能夠被嵌入到許多功能復雜的產品中。這個標準的單獨的核有一個簡單的總線接口,允許用戶圍繞著它設計自己的Cache/存儲器系統。nARM9TDMI微處理器系列支持兩種指令集,32位ARM和16位Thumb指令集,允許用戶選擇不同的指令集,在高性能和高代碼密度之間轉換。 nARM920T是一款哈佛Cache結構的處

15、理器,內部有單獨的16KB指令Cache和單獨的16KB數據Cache(均為8個字的行長度),指令Cache和數據Cache各自使用單獨的地址線和單獨的數據線。ARM920T實現了ARMv4T結構。ARM920T的MMU提供了對指令和數據地址的傳送及訪問的約束檢查。nARM920T支持ARM調試結構(debug architecture),也包含了對協處理器的支持。nARM920T接口與AMBA總線架構兼容,ARM920T既可以作為全兼容的AMBA總線的主設備,又可以在測試該產品時作為從設備。2.4 ARM920T的程序員模型2.4.1 處理器操作狀態 ARM920T處理器的兩種操作狀態 AR

16、M狀態,在這種狀態執行32位長度的、字邊界對齊的ARM指令。 Thumb狀態,在這種狀態執行16位長度的、半字邊界對齊的Thumb指令。 在Thumb狀態,程序計數器PC使用bit1來選擇切換半字。 在ARM和Thumb之間轉換狀態,不影響處理器操作方式或寄存器內容。 轉換狀態n使用ARM指令集的BX指令、并且BX指令指定寄存器的bit0=1,能夠從ARM狀態進入到Thumb狀態。使用Thumb指令集的BX指令、并且BX指令指定寄存器的bit0=0,能夠從Thumb狀態進入到ARM狀態。n無論處理器在ARM狀態或Thumb狀態,發生了異常,進入異常處理程序處理器一定是在ARM狀態。如果一個異常

17、在Thumb狀態出現,處理器要轉換到ARM狀態,異常處理完返回時自動轉換回Thumb狀態。n剛進入異常處理程序后處理器處在ARM狀態,如果需要,異常處理程序能夠轉換到Thumb狀態,但是異常處理程序結束前,處理器必須轉換到ARM狀態,在ARM狀態才允許異常處理程序正確的終止。 2.4.2 存儲器格式和數據類型 存儲器格式nARM920T處理器把存儲器看作一個以字節編號的單元的線性集合,編號即存儲器地址,每個存儲器單元能夠存放1字節數據,對應一個地址。地址從0開始,連續上升,例如:地址從0到3的單元保存了第1個存儲字;地址從4到7的單元保存了第2個存儲字。凡是地址的最低2位二進制數為00,從這個

18、地址開始,用連續4個單元保存一個字數據的,稱為一個字數據存放在字邊界對齊的地址單元中,簡稱地址是字邊界對齊的。nARM920T處理器允許使用大、小端格式,它能夠對存儲在存儲器中的字以大端或小端格式訪問。缺省格式是小端格式。n大端或小端格式是指一個字數據中的4個字節數據,必須被放在字邊界對齊的存儲器地址A開始的連續4個字節地址單元中的什么位置。n在數據以字存放在存儲器中,而以字節或半字訪問時,對CPU被配置為大端或小端格式要特別注意。 小端格式n在小端格式,處理器寄存器中的32位二進制數用bit31:0表示,其中bit31為最高位,bit0為最低位,分為4字節,bit31:24為數據的最高字節,

19、bit7:0為數據的最低字節。當寄存器的內容以字格式保存在字邊界對齊的存儲器地址A中時,存儲器4個地址對應的單元中保存的字節數據與寄存器bit31:0的對應關系見圖2.3。 大端格式n在大端格式,當寄存器的內容以字格式保存在字邊界對齊的存儲器地址A中時,存儲器4個地址對應的單元中保存的字節數據與寄存器bit31:0的對應關系見圖2.4。 數據類型nARM920T處理器支持三種數據類型: 字,32位; 半字,16位; 字節,8位。n所謂的邊界對齊必須遵循: 字數據必須以4字節為邊界對齊存取; 半字數據必須以2字節為邊界對齊存取; 字節數據可以使用任意字節地址存取。 存儲器系統支持上述三種數據類型

20、的存取。 2.4.3 處理器操作方式nARM920T支持7種操作方式,見表2-2。n方式的改變可以在軟件控制下改變,也可以由外部中斷或者由異常(exception)處理帶來改變。除了用戶方式,其他幾種方式都被稱為特權方式。特權方式用于為中斷或異常服務,或訪問受保護的資源。除了用戶方式和系統方式,其他幾種方式都屬于異常方式。表2.2 處理器7種操作方式方 式方式標識描述User(用戶)(用戶)usr用戶方式是通常用戶方式是通常ARM程序執行狀態,用于程序執行狀態,用于執行大部分應用程序執行大部分應用程序Fast interrupt(快速中斷請求)(快速中斷請求)fiq快速中斷請求方式支持數據傳送

21、或通道處理快速中斷請求方式支持數據傳送或通道處理Interrupt(中斷請求)(中斷請求) irq中斷請求方式用于一般中斷處理中斷請求方式用于一般中斷處理Supervisor(管理)(管理)svc管理方式是一種操作系統受保護的方式管理方式是一種操作系統受保護的方式Abort(中止)(中止)abt在訪問數據中止后或預取指令中止后進入中在訪問數據中止后或預取指令中止后進入中止方式止方式System(系統)(系統)sys系統方式是操作系統一種特權級的用戶方式系統方式是操作系統一種特權級的用戶方式Undefined(未定義)(未定義)und當一條未定義指令被執行時進入未定義方式當一條未定義指令被執行時

22、進入未定義方式2.4.4 寄存器nARM920T共有37個寄存器。其中:31個是32位的通用寄存器,6個是32位的狀態寄存器。n在同一時間內這37個寄存器不是全部都可以存取的。處理器操作狀態(ARM或Thumb)和操作方式(用戶、中斷等7種)確定哪些寄存器對程序員是可存取的。 在ARM狀態下的寄存器組n在ARM狀態下,16個通用寄存器和一個或2個狀態寄存器在任何時間是可存取的。在特權方式,方式所指定的分組寄存器變成可用的。 圖2.5(p30)給出了每一種方式可用的寄存器。圖中寄存器中有符號的稱為分組寄存器。 連接寄存器LR(Link Register)n寄存器r14用作子程序連接寄存器。當一條

23、分支并且連接指令(BL)被執行時,寄存器r14收到r15的一個拷貝。在其他時間,r14能被看作通用寄存器。n對應的分組寄存器r14_svc、r14_irq、r14_fiq、r14_abt和r14_und用法是類似的,當中斷或異常發生時,同樣用于保存r15的返回值,或用于在中斷及異常例程中執行BL指令時保存r15的返回值。 程序計數器PC(Program Counter)n寄存器r15作為程序計數器。n在ARM狀態下,r15的bit1:0是無定義且必須被忽略的,而r15的bit31:2含有程序計數值。在Thumb狀態下,r15的bit0是無定義且必須被忽略的,而r15的bit31:1含有程序計數

24、值。 n除了上述r14和r15有專門的用途外,r13習慣上用作堆棧指針(SP)。n在特權方式,另一個寄存器,即保留程序狀態寄存器(SPSR)是可用的。SPSR寄存器含有作為異常結果的條件碼標志和方式位,而這個異常引起進入到當前方式。n分組寄存器是分別的物理寄存器,在處理器核內。分組寄存器映射為可用寄存器依賴于當前處理器的操作方式。在操作方式改變時,分組寄存器的內容被保護。n FIQ方式有7個分組寄存器,映射到r8-r14(r8_fiq-r14_fiq)。 在Thumb狀態下的寄存器組 在Thumb狀態下的寄存器組如圖2.6所示。 在ARM狀態下和在Thumb狀態下寄存器之間的關系n在Thumb

25、狀態下的寄存器與在ARM狀態下寄存器的關系,遵照以下規定:Thumb狀態下的r0-r7與ARM狀態下的r0-r7是相同的;Thumb狀態下的CPSR和SPSR與ARM狀態下的CPSR和SPSR是相同的;Thumb狀態下的SP映射到ARM狀態下的r13;Thumb狀態下的LR映射到ARM狀態下的r14;Thumb狀態下的PC映射到ARM狀態下的PC(r15)。n上述關系用圖2.7(p32)表示。n另外,在Thumb狀態下,寄存器r0-r7稱為低寄存器組,寄存器r8-r15稱為高寄存器組。 在Thumb狀態下訪問高寄存器組n在Thumb狀態下,高寄存器組r8-r15不是標準寄存器組的一部分。匯編語

26、言程序員訪問它們受到了限制,但是能夠使用它們作為快速暫時存儲器。n 程序員可以使用專門的MOV、CMP和ADD指令,其中MOV指令,可以從范圍在r0-r7的低寄存器組傳送一個值到高寄存器組;或從高寄存器組傳送一個值到低寄存器組。 CMP指令允許比較高低兩個寄存器組中的寄存器的值。 ADD指令允許將高寄存器組中寄存器的值與低寄存器組中寄存器的值相加。MOV、CMP和ADD指令也允許使用的兩個寄存器都在高寄存器組中。 2.4.5 程序狀態寄存器nARM7TDMI處理器包含一個當前程序狀態寄存器CPSR和5個用于異常處理的保留程序狀態寄存器SPSR。這些程序狀態寄存器有以下功能: 保存最近執行過的A

27、LU操作的信息; 控制允許或禁止中斷; 設置處理器操作方式。n程序狀態寄存器每一位含義表示在圖2.8中。 條件碼標志nN、Z、C和V位是條件碼標志,可以由算術和邏輯操作設置這些位,也可以通過MSR和LDM指令設置這些位。ARM7TDMI處理器測試這些標志用于確定是否執行一條指令。n在ARM狀態下,所有的指令能夠有條件地執行。在Thumb狀態下,只有分支指令能夠有條件地執行。 控制位n程序狀態寄存器的最低8位統稱控制位。它們是: 中斷禁止位; T狀態位; 方式位。 當異常出現時,控制位改變。當處理器在特權方式操作時,軟件能夠操作這些位。 中斷禁止位n I和F位是中斷禁止位: 當I位被置1時,IR

28、Q中斷被禁止; 當F位被置1時,FIQ中斷被禁止; 當I位被清0時,IRQ中斷被允許; 當F位被清0時,FIQ中斷被允許。 T位n T位反映了處理器當前所處的操作狀態: 當T位被置1時,處理器在Thumb狀態執行; 當T位被清0時,處理器在ARM狀態執行。n 要注意的是,決不能使用MSR指令去強制改變在CPSR中的T位的狀態,如果這樣做了,處理器進入不可預知的狀態。 方式位nM4:0確定處理器的操作方式,如表2.3所示。n不是所有方式位的組合都用來定義合法的處理器操作方式,僅僅使用了方式位組合中的一部分,如下表所示。表2.3 不同方式位對應的不同操作方式M4:0Mode(方式)(方式)Thum

29、b狀態可見寄存器狀態可見寄存器ARM狀態可見寄存器狀態可見寄存器10000User(用戶)(用戶)r0-r7、SP、LR、PC、CPSRr0-r14、PC、CPSR10001FIQ(快速中斷請求)(快速中斷請求)r0-r7、SP_fiq、LR_fiq、PC、CPSR、SPSR_fiqr0-r7、r8_fiq-r14_fiq、PC、CPSR、SPSR_fiq10010IRQ(中斷請求)(中斷請求)r0-r7、SP_irq、LR_irq、PC、CPSR、SPSR_irqr0-r12、r13_irq、r14_irq、PC、CPSR、SPSR_irq10011Supervisor(管理)(管理)r0-

30、r7、SP_svc、LR_svc、PC、CPSR、SPSR_svcr0-r12、r13_svc、r14_svc、PC、CPSR、SPSR_svc10111Abort(中止)(中止)r0-r7、SP_abt、LR_abt、PC、CPSR、SPSR_abtr0-r12、r13_abt、r14_abt、PC、CPSR、SPSR_abt11011Undefined(未定義)(未定義)r0-r7、SP_und、LR_und、PC、CPSR、SPSR_undr0-r12、r13_und、r14_und、PC、CPSR、SPSR_und11111System(系統)(系統)r0-r7、SP、LR、PC、CP

31、SRr0-r14、PC、CPSR 保留位 在CPSR和SPSR中,保留位沒有用處,僅僅用于保留。當改變CPSR或SPSR標志位或控制位時,要確認這些保留位沒有被改變。同樣要確認程序不依賴保留位所含的專門值,因為后續處理器可能將這些位置1或清0。 2.4.6 異常n異常出現在程序正常的流動被暫時停止時。例如,對從一個外部設備來的中斷進行服務。對異常處理前,ARM7TDMI處理器保留當前處理器的狀態,使得異常處理例程結束時能夠返回原來的程序。n如果2個或多個異常同時發生,那么以固定的次序處理異常。 異常進入和退出n表2.4匯總了異常進入時保存在r14中的PC值和退出異常處理時推薦使用的返回指令。表

32、2.4 異常進入和退出異常或進入返 回 指 令先前的狀態ARM r14_x Thumb r14_xBLMOV PC,r14PC+4 PC+2SWIMOVS PC,r14_svcPC+4 PC+2UDEFMOVS PC,r14_undPC+4 PC+2PABTSUBS PC,r14_abt,4PC+4 PC+4FIQSUBS PC,r14_fiq,#4PC+4 PC+4IRQSUBS PC,r14_irq,#4PC+4 PC+4DABTSUBS PC,r14_abt,8PC+8 PC+8RESET無 進入異常 ARM7TDMI處理器以如下方法處理一個異常: 在對應的LR中保存下一條指令的地址。

33、異常處理不必確定進入異常前的狀態。例如由SWI進入異常,MOVS PC,r14_svc總是返回到下一條指令,而不管SWI是在ARM或Thumb狀態下被執行。 復制CPSR到應對的SPSR。 強制CPSR方式位成為某一個值,這個值取決于不同的異常。 強制PC從相關的異常向量處取下一條指令。 離開異常 當異常處理完時,異常處理程序必須: 參考表2.4,對應不同類型的異常,直接傳送LR到PC或從LR中減去一個偏移量送到PC。 復制SPSR到CPSR。 清除在進入異常時被設置的中斷禁止標志。 將SPSR值恢復到CPSR的同時,自動地將T位的值恢復成進入異常前的值。 快速中斷請求n快速中斷請求(FIQ)

34、異常支持數據傳輸或通道處理。在ARM狀態,FIQ方式有8個分組寄存器,使用它們可以免除保存寄存器的要求。這是上下文切換最小開銷的一種方法。n一個FIQ是外部產生的,是通過使nFIQ輸入低電平實現的。輸入通過一個同步器送到內核。n無論異常是從ARM狀態或Thumb狀態進入,FIQ處理程序從中斷返回是通過執行: SUBS PC,r14_fiq,#4 指令來實現的。 nFIQ異常能夠被禁止,方法是在特權方式時設置CPSR的F標志位為1。當F標志位為0時,處理器在每條指令結束檢測FIQ同步器輸出是否為低電平。 中斷請求n中斷請求(IRQ)異常是一個通常的中斷請求,在nIRQ輸入低電平引起。IRQ優先級

35、比FIQ低,并且在進入FIQ被屏蔽。nIRQ同樣通過一個同步器傳到內核。n無論異常從ARM狀態或Thumb狀態進入,IRQ處理程序從中斷返回是通過執行: SUBS PC,r14_irq,#4 指令來實現的。n在任意時間可以禁止IRQ,方法是在特權方式時設置CPSR中I標志位為1。 Abort 中止一般介紹 中止處理程序必須: 確定中止原因,使請求的數據可用。 用LDR Rn,r14_abt,#-8指令,取回引起中止的指令,確定那條指令是否指定了回寫基址寄存器,如果是這樣,中止處理程序還必須:從這條指令確定對基址寄存器回寫的偏移量是多少;當中止處理程序返回時,使用相反的偏移量重裝到基址寄存器。

36、兩種類型的中止預取中止發生在指令預取期間;數據中止發生在數據存取期間。 預取中止 數據中止 軟件中斷指令n軟件中斷指令(SWI)用于進入管理方式,一般用于請求一個特殊的管理功能。SWI處理程序讀SWI指令低24位取出SWI功能號,SWI功能號也稱為中斷類型號。n SWI處理程序執行以下指令返回,并不區別處理器的操作狀態: MOVS PC,r14_svcn指令的作用是恢復PC和CPSR,返回到SWI指令的下一條指令。 未定義指令n當ARM7TDMI處理器遇到一條指令,這條指令即不是ARM7TDMI處理器的指令,又不是系統內任何協處理器能處理的指令,ARM7TDMI產生未定義指令陷阱。軟件能夠用這

37、一機制通過仿真未定義的協處理器指令去擴展ARM指令集。n從陷阱處理程序返回,不區別處理器的操作狀態,執行如下指令: MOVS PC,r14_undn這條指令的作用是恢復CPSR并且返回到未定義指令的下一條指令。 異常向量 表2.5(p38)給出了異常向量的地址。表中I和F分別表示CPSR中的IRQ和FIQ中斷禁止位先前的值。 異常優先級 當多個異常同時發生,固定的優先級系統確定了它們被處理的次序,優先級次序見表2.6(p38)。 2.4.7 中斷延遲 最大中斷延遲 最小中斷延遲 2.4.8 Reset 當nRESET信號變低,復位(reset)出現,ARM7TDMI放棄正在執行的指令,并且仍然

38、對預取的字或半字指令繼續增大在地址總線上的地址。2.5 OMAP3530微處理器2.5.1 OMAP3530微處理器概述nOMAP3530微處理器內部集成的MPU,使用了工作頻率為600MHz的、采用ARMv7體系結構的ARM Cortex A8核,以及NEON SIMD(Single Instruction Multiple Data,單指令多數據)協處理器。nOMAP3530微處理器內部IVA2.2(Image Video Audio,影像視頻音頻)加速器子系統,采用了頻率為430MHz的TMS320DMC64x+數字信號處理器核,增強型DMA控制器及視頻硬件加速器。TMS320DMC64

39、x+使用了先進的VLIW(Very-Long Instruction Word,超長指令字)技術。nOMAP3530微處理器片外存儲器接口,含一個SDRC(SDRAM Controller,SDRAM控制器)及一個GPMC(General Purpose Memory Controller,通用存儲器控制器)。SDRC可以連接SDRAM及LPDDR(Low-Power Double Data Rate,低耗倍速)SDRAM;GPMC可以連接Nor Flash、Nand Flash、SRAM、Pseudo-SRAM,以及FPGA、CPLD、ASIC等。nOMAP3530片內含有許多功能模塊,如s

40、DMA(system Direct Memory Access,系統DMA)、照相機影像信號處理器(Camera Image Signal Processing,Camera ISP)、顯示子系統、串行通信、可移動介質接口、復位及電源和時鐘管理、測試接口等。此外片內還集成了大量的外設,提供了固件安全特性。2.5.2 OMAP3530應用舉例 OMAP3530芯片可以連接一個電源集成電路芯片,TI公司提供了使用TPS65950芯片的一個整體解決方案,如圖2.9(p41)所示。 圖2.9中,按功能可以分為電源、存儲器、用戶接口、無線、音頻、影像六部分。 電源電源芯片可連接的設備有:主電池、與H-橋(H-Bridge)連接的振動棒等。 存儲

溫馨提示

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

評論

0/150

提交評論