S3C2410A實驗指導書_第1頁
S3C2410A實驗指導書_第2頁
S3C2410A實驗指導書_第3頁
S3C2410A實驗指導書_第4頁
S3C2410A實驗指導書_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、49 第3章 S3C2410A實驗目錄第1章 實驗要求3第2章 預備知識4一、 ADS1.2安裝4二、 ADS1.2 下使用 Wiggler電纜調試5三、 配置 ads1.2軟件6四、 H-JTAG 驅動程序的使用8第3章 S3C2410A實驗24實驗一 ADS1.2開發環境創建與簡要介紹24一、 實驗目的24二、 實驗內容24三、 實驗設備24四、 實驗步驟24五、 實驗步驟32實驗二 ARM的I/O接口實驗34一、 實驗目的34二、 實驗內容34三、 實驗設備34四、 實驗原理34五、 實驗步驟36六、 參考程序36實驗三 ARM 的中斷實驗37一、 實驗目的37二、 實驗內容37三、 實

2、驗設備37四、 ARM 的中斷原理37五、 三星的 2410 ARM 處理器的中斷的使用37六、 中斷編程實例31七、 實驗步驟32八、 分析理解32實驗四 ARM的UART實驗34一、 實驗目的34二、 實驗內容34三、 實驗設備34四、 UART的工作原理34五、 實驗步驟39六、 分析理解39實驗五 ARM的A/D接口實驗40一、 實驗目的40二、 實驗內容40三、 實驗設備40四、 實驗原理40五、 實驗步驟44六、 分析理解44實驗六 鍵盤接口和七段數碼管的控制實驗45一、 實驗目的45二、 實驗內容45三、 實驗設備45四、 實驗原理45五、 實驗步驟49六、 分析理解49七、 要

3、求50 第1章 實驗要求ARM實驗室是電子信息科學與技術的專業實驗室。旨在培養學生對嵌入式系統設計和開發的能力,使學生加深對嵌入式系統設計思想的理解,掌握ARM實驗平臺進行程序設計、開發的技巧和方法,進而增強學生的實踐能力和動手能力,提高其創新意識。 實驗室還為大學生電子設計大賽,電子類學生的畢業設計、課程設計以及科研訓練提供實驗環境。利用嵌入式實驗開發系統。實驗要求在實驗過程中,要求學生做到:(1)預習實驗指導書有關部分,認真做好實驗內容的準備,就實驗可能出現的情況提前作出思考和分析。(2)仔細觀察上機編程時出現的各種現象,記錄主要情況,作出必要說明和分析。(3)認真書寫實驗報告。實驗報告包

4、括實驗目的和要求,實驗情況及其分析,寫出程序設計說明,給出源程序框圖和清單。(4)遵守機房紀律,服從輔導教師指揮,愛護實驗設備。(5)實驗課程不遲到,如有事不能出席,所缺實驗一般不補。實驗的驗收將分為兩個部分。第一部分是上機操作,包括檢查程序運行和即時提問。第二部分是提交書面的實驗報告。第2章 預備知識一、 ADS1.2安裝1. 打開安裝光盤的 ads1.2文件夾,雙擊 SETUP.EXE,進行安裝,按默認設置,也可適當更改安裝路徑。 2. 安裝完成后,出現一個添加 licence的界面, 3. 選中 ADS1.2目錄下的 crack 文件夾中的 licence.dat文件,點下一步,直至結束

5、。至此,完成軟件的安裝。二、 ADS1.2 下使用 Wiggler電纜調試1. 安裝 Rdi.dll 將文件夾下的 Rdi.dll 、 dev.ini 、dev文件夾一同拷貝到 xx:Program FilesARMADSv1_2Bin目錄下(推薦目錄) ; 2安裝并口驅動1) 運行GiveIOInstaller.exe2) 選擇Install Service三、 配置 ads1.2軟件 打開 AXD,選擇菜單”options”中的”configuer target”,如下圖:點擊”ADD”,再彈出的列表框中找到開始拷貝的 RDI.dll,如下圖:打開后再點擊 Configure 進行配置,點

6、擊”OK”,如果此時連接了 Wiggler 電纜和實驗箱,即可進入正確的調試模式,如下圖:四、 H-JTAG 驅動程序的使用1. 安裝操作說明首先,將 H-JTAGv2.0.exe 應用程序雙擊,安裝。2. 安裝到你的 C 盤或 D 盤的 program files 下,安裝成功后,在桌面上會出現圖 1 左下方的圖標 H-JTAG。連上 wiggler電纜,雙擊圖標 H-JTAG,彈出圖 1 的右面的對話框。3. 若檢測,連接成功,最小化 H-JTAG。到開始/程序/ARM Developer Suite 1.2 目錄下打開 ADS1.2 的調試器 AXD。將彈出圖 8。點擊,深色處,之后點擊

7、 OK。 (注意,這步前,應該正確安裝 H-JTAG V2.0.exe 程序)第3章 S3C2410A實驗實驗一 ADS1.2開發環境創建與簡要介紹一、 實驗目的1 熟悉ADS1.2開發環境,正確使用仿真調試電纜進行編譯、下載、調試。2 了解ARM匯編語言的基本框架,學會使用ARM的匯編語言編程。3 了解ARM C語言的基本框架,學會使用ARM的C語言編程二、 實驗內容1 學習ADS1.2開發環境2 用匯編語言編寫一個簡單的應用程序3 用C語言編寫一個簡單的應用程序三、 實驗設備1 EL-ARM-830+教學實驗箱, PC機,仿真調試電纜。2 ADS1.2集成開發環境,仿真調試電纜驅動程序四、

8、 實驗步驟1 ADS1.2下建立工程1) 運行ADS1.2集成開發環境(CodeWarrior for ARM Developer Suite),點擊File|New,在New對話框中,選擇Project欄,其中共有7項,ARM Executable Image是ARM的通用模板。選中它即可生成ARM的執行文件。同時,如圖2-1-1圖2-1-1還要在,Project name欄中輸入項目的名稱,以及在Location中輸入其存放的位置。按確定保存項目。2) 在新建的工程中,選擇Debug版本,如圖2-1-2,使用Edit|Debug Settings菜單對Debug版本進行參數設置。圖2-1-

9、23) 在如圖2-1-3中,點擊Debug Setting 按鈕,彈出2-1-4圖,選中Target Setting圖2-1-3圖2-1-4項,在Post-linker欄中選中ARM fromELF項。按OK確定。這是為生成可執行的代碼的初始開關。4) 在如圖2-1-5中,點擊ARM Assembler ,在Architecture or Processer 圖2-1-5 欄中選ARM920T。這是要編譯的CPU核。5) 在如圖2-1-6中,點擊ARM C Compliler ,在Architecture or Processer欄中選ARM920T。這是要編譯的CPU核。圖2-1-66) 在

10、如圖2-1-7中,點擊ARM linker ,在outpur欄中設定程序的代碼段地址,以及數據使用的地址。圖中的RO Base欄中填寫程序代碼存放的起始地址,RW Base欄中填寫程序數據存放的起始地址。該地址是屬于SDRAM的地址。圖2-1-7圖2-1-8在options欄中,如圖2-1-8,Image entry point要填寫程序代碼的入口地址,其他保持不變,如果是在SDRAM中運行,則可在0x300000000x33ffffff中選值,這是64M SDRAM的地址,但是這里用的是起始地址,所以必須把你的程序空間給留出來,并且還要留出足夠的程序使用的數據空間,而且還必須是4字節對齊的地

11、址(ARM狀態)。通常入口點Image entry point 為0x30000000,ro_base也為0x30000000。在Layout欄中,如圖2-1-9,在Place at beginning of image框內,需要填寫項目的入口程序的目標文件名,如,整個工程項目的入口程序是2410init.s,那么應在Object/Symbol處填寫其目標文件名2410init.o,在Section處填寫程序入口的起始段標號。它的作用是通知編譯器,整個項目的開始運行,是從該段開始的。圖2-1-97) 在如圖2-1-10中,即在Debug Setting對話框中點擊左欄的ARM fromELF項

12、,在Output file name欄中設置輸出文件名*.bin,前綴名可以自己取,在Output format 欄中選擇Plain binary,這是設置要下載到flash中的二進制文件。圖2-1-10中使用的是test.bin.圖2-1-108) 到此,在ADS1.2中的基本設置已經完成,可以將該新建的空的項目文件作為模板保存起來。首先,要將該項目工程文件改一個合適的名字,如S3C2410 ARM.mcp等,然后,在ADS1.2軟件安裝的目錄下的Stationary 目錄下新建一個合適的模板目錄名,如,S3C2410 ARM Executable Image,再將剛剛設置完的S3c2410

13、 ARM.mcp項目文件存放到該目錄下即可。這樣,就能在圖2-1-10中看到該模板。9) 新建項目工程后,就可以執行菜單Project|Add Files把和工程所有相關的文件加入,ADS1.2不能自動進行文件分類,用戶必須通過Project|Create Group來創建文件夾,然后把加入的文件選中,移入文件夾。或者鼠標放在文件填加區,右鍵點擊,即出!如圖2-1-11圖2-1-11先選Add Files,加入文件,再選Create Group,創建文件夾,然后把文件移入文件夾內。讀者可根據自己習慣,更改Edit|Preference窗口內關于文本編輯的顏色、字體大小,形狀,變量、函數的顏色等

14、等設置。如圖2-1-12。圖2-1-122. ADS1.2下仿真、調試在ADS1.2下進行仿真調試,首先需要一根仿真調試電纜。其驅動程序的安裝和使用在光盤中的實驗軟件ARM9_RDI中,里面有相關的文檔。在連上調試電纜后,給實驗箱上電,打開調試軟件AXD Debugger。點擊File|load image 加載文件ADS.axf(實驗程序HARDWAREADS實驗三ADSADS_data目錄下)。打開超級終端,設置其參數為:波特率為115200,數據位數8,奇偶校驗無,停止位無1,數據流控無。點擊全速運行,出現圖2-1-13的界面:圖2-1-13在最后介紹調試按鈕,上圖,左起第一個是全速運行

15、,第二個是停止運行,第三個跳入函數內部,第四個單步執行,第五個跳出函數。到此,開發環境就全部介紹完了,這是 ARM的開發基礎。1 ARM使用C語言編程是大勢所趨在應用系統的程序設計中,若所有的編程任務均由匯編語言來完成,其工作量巨大,并且不易移植。由于ARM的程序執行速度較高,存儲器的存儲速度和存儲量也很高,因此,C語言的特點充分發揮,使得應用程序的開發時間大為縮短,代碼的移植十分方便,程序的重復使用率提高,程序架構清晰易懂,管理較為容易等等。因此,C語言的在ARM編程中具有重要地位。2 ARM C語言程序的基本規則在ARM程序的開發中,需要大量讀寫硬件寄存器,并且盡量縮短程序的執行時間的代碼

16、一般使用匯編語言來編寫,比如ARM的啟動代碼,ARM的操作系統的移植代碼等,除此之外,絕大多數代碼可以使用C語言來完成。C語言使用的是標準的C語言,ARM的開發環境實際上就是嵌入了一個C語言的集成開發環境,只不過這個開發環境和ARM的硬件緊密相關。在使用C語言時,要用到和匯編語言的混合編程。當匯編代碼較為簡潔,則可使用直接內嵌匯編的方法,否則,使用將匯編文件以文件的形式加入項目當中,通過ATPCS的規定與C程序相互調用與訪問。ATPCS,就是ARM、Thumb的過程調用標準(ARM/Thumb Procedure Call Standard),它規定了一些子程序間調用的基本規則。如寄存器的使用

17、規則,堆棧的使用規則,參數的傳遞規則等。在C程序和ARM的匯編程序之間相互調用必須遵守ATPCS。而使用ADS的C語言編譯器編譯的C語言子程序滿足用戶指定的ATPCS的規則。但是,對于匯編語言來說,完全要依賴用戶保證各個子程序遵循ATPCS的規則。具體來說,匯編語言的子程序應滿足下面3個條件: 在子程序編寫時,必須遵守相應的ATPCS規則; 堆棧的使用要遵守相應的ATPCS規則; 在匯編編譯器中使用-atpcs選項。基本的ATPCS規定,請詳見提供的相關PDF文檔。匯編程序調用C程序匯編程序的設置要遵循ATPCS規則,保證程序調用時參數正確傳遞。在匯編程序中使用IMPORT偽指令聲明將要調用的

18、C程序函數。在調用C程序時,要正確設置入口參數,然后使用BL調用。3 C程序調用匯編程序匯編程序的設置要遵循ATPCS規則,保證程序調用時參數正確傳遞。在匯編程序中使用EXPORT偽指令聲明本子程序,使其他程序可以調用此子程序。在C語言中使用extern關鍵字聲明外部函數(聲明要調用的匯編子程序)。在C語言的環境內開發應用程序,一般需要一個匯編的啟動程序,從匯編的啟動程序,跳到C語言下的主程序,然后,執行C程序,在C環境下讀寫硬件的寄存器,一般是通過宏調用,在每個項目文件的Startup2410/INC目錄下都有一個2410addr.h的頭文件,那里面定義了所有關于2410的硬件寄存器的宏,對

19、宏的讀寫,就能操作2410的硬件。具體的編程規則同標準C語言。4 簡單的小例子下面是一個簡單的小例子IMPORT MainAREA a ,CODE, READONLY;ENTRY LDR R0, =0x01d00000LDR R1, =0x245STR R1 , R0 ;把0x245放到地址0X01D00000 BL Main ;跳轉到Main()函數處的C/C+程序END ;標識匯編程序結束 以上是一個簡單的程序,先寄存器初始化,然后跳轉到Main()函數標識的C/C+代碼處,執行主要任務,此處的 Main是聲明的C語言中的Main()函數。五、 實驗步驟1 本實驗僅使用實驗教學系統的CPU

20、板,串口。在進行本實驗時,LCD電源開關、音頻的左右聲道開關、AD通道選擇開關、觸摸屏中斷選擇開關等均應處在關閉狀態。2 在PC機并口和實驗箱的CPU板上的JTAG接口之間,連接仿真調試電纜,以及串口間連接公/母接頭串口線。3 檢查連接是否可靠,可靠后,接入電源線,系統上電。4 打開ADS1.2開發環境,從里面打開C.mcp項目文件,進行編譯。5 編譯通過后,進入ADS1.2調試界面,加載C_DataDebug中的映象文件程序映像C.axf。6 打開/實驗軟件/tools/目錄下的串口調試助手工具,配置為波特率為115200,校驗位無,數據位為8,停止位為1。不要選十六進制顯示。之后,在ADS

21、調試環境下全速運行映象文件,應出現圖2-3-1 界面。本程序連續發送55。圖2-3-1下邊分析一下主程序的源碼。在C程序前的部分為系統的初始化,這在后邊BOOTLOADER的章節里,要詳細介紹。#include ".incconfig.h" /嵌入包括硬件的頭文件unsigned char data; /定義全局變量void Main(void)Target_Init(); /目標板初始化,定義串口的硬件初始化在/target.c中定義 Delay(10); /延時 data = 0x55; /給全局變量賦值 while(1) Uart_Printf("%x &q

22、uot;,data); /串口0輸出 Delay(10); 把data = 0x55;語句中的0x55,換成其他8位數,重新編譯,下載,看看串口工具上輸出是什么內容。實驗二 ARM的I/O接口實驗一、 實驗目的1 了解S3C2410的通用I/O接口2 掌握I/0功能的復用并熟練的配置,進行編程實驗二、 實驗內容1 利用ADS1.2編譯,在實驗箱的CPU板上點亮LED燈LED1、LED2,并輪流閃爍!2 keil( mdk 4.12) 點亮LED燈LED1、LED2,并輪流閃爍!三、 實驗設備1 EL-ARM-830+教學實驗箱,仿真調試電纜。2 ADS1.2集成開發環境,仿真調試驅動程序。3

23、kiel +Proteus軟件。四、 實驗原理S3C2410 CPU 共有117個多功能復用輸入輸出口,分為8組端口:l 4個16位的I/O端口 (PORT C、PORT D、PORT E、PORT G)l 2個11位的I/O端口 (PORT B 和PORT H)l 1個8位的I/O端口(PORT F)l 1個23位的I/O端口(PORT A)這些通用的GPI/O接口,是可配置的, PORTA除功能口外,它們僅用作輸出使用,剩下的PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作為輸入輸出口使用。配置這些端口,是通過一些寄存器來實現的,這些寄存器均有各自的地址,位長3

24、2位。往該地址中寫入相應的數據,即可實現功能及數據配置?,F用G口舉例說明。對于G口如表2-1、表2-2、表2-3,表2-1RegisterAddressR/WDescriptionReset ValueGPGCON0x56000060R/WConfigure the pins of port G0x0GPGDAT0x56000064R/WThe data register for port GUndefinedGPGUP0x56000068R/WPull-up disable register for port G0xF800Reserved0x5600006CReserved表2-2Port

25、 GSelectable Pin FunctionsGPG15Input/outputEINT23nYPONGPG14Input/outputEINT22YMONGPG13Input/outputEINT21nXPONGPG12Input/outputEINT20XMONGPG11Input/outputEINT19TCLK1GPG10Input/outputEINT18GPG9Input/outputEINT17GPG8Input/outputEINT16GPG7Input/outputEINT15SPICLK1GPG6Input/outputEINT14SPIMOSI1GPG5Input/

26、outputEINT13SPIMISO1GPG4Input/outputEINT12LCD_PWRENGPG3Input/outputEINT11nSS1GPG2Input/outputEINT10nSS0GPG1Input/outputEINT9GPG0Input/outputEINT8表2-3GPGDATBitDescriptionGPG15:015:0When the port is configured as input port, data from external sources can be read to the corresponding pin. When the por

27、t is configured as output port, data written in this register can be sent to the corresponding pin. When the port is configured as functional pin, undefined value will be read.表2-4GPGUPBitDescriptionGPG15:015:00: The pull-up function attached to to the corresponding port pin is enabled.1: The pull-u

28、p function is disabled.(GPG15:11 are "pull-up disabled" state at the initial condition.)也就是說,在地址0x56000060中,給32位的每一位賦值,那么,在CPU的管腳上就定義了管腳的功能值。當G口某管腳配置成輸出端口,則在GPDAT對應的地址中的對應位上,寫入1,則該管腳輸出為高電平,寫入0,則該管腳輸出為低電平。若配置為功能管腳,則該管腳變成具體的功能腳。其他端口配置請參見PDF文擋。在程序中對GPI/O各寄存器的讀寫實現,是通過給宏賦值實現的。這些宏在2410addr.h中定義;

29、具體如:。#define rGPGCON (*(volatile unsigned *)0x56000060)/G control#define rGPGDAT (*(volatile unsigned *)0x56000064)/ G data#define rGPGUP (*(volatile unsigned *)0x56000068)/Pull-up control G因此,配置端口G,在程序中也就是用如下語句即可:rGPGCON = rGPGCON & 0xFFFF0FFF | 0x00050000;/配置第8、第9位為輸出管腳rGPGDAT = rGPGDAT &

30、0xFCFF|0x0100;/配置第8位輸出為高電平,第9位輸出低電平。rGPGDAT = rGPGDAT & 0xFCFF|0x0200;/配置第8位輸出為低電平,第9位輸出高電平。#define rGPGCON (*(volatile unsigned *)0x56000060) /Port G control#define rGPGDAT (*(volatile unsigned *)0x56000064) /Port G data#define rGPGUP (*(volatile unsigned *)0x56000068) /Pull-up control Gint i;i

31、nt main(void)rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000;for(;)rGPGDAT = rGPGDAT & 0xfcff | 0x200;for(i=0;i<10000;i+); /延時rGPGDAT = rGPGDAT & 0xfcff | 0x100;for(i=0;i<10000;i+); /延時其他的各功能寄存器在2410addr.h中也都有相應的定義,參照該做法,即可把GPI/O管腳配置成輸入輸出端口,也可把管腳配置成所需的功能管腳。五、 實驗步驟1. 本實驗使用實驗教學系統的CPU板,在進

32、行本實驗時,LCD電源開關、音頻的左右聲道開關、AD通道選擇開關、觸摸屏中斷選擇開關等均應處在關閉狀態。2. 在PC機并口和實驗箱的CPU板上的JTAG接口之間,連接仿真調試電纜。3. 檢查連接是否可靠,可靠后,接入電源線,系統上電。4. 打開ADS1.2開發環境,從里面打開IO.mcp項目文件,進行編譯。5. 編譯通過后,進入ADS1.2調試界面,加載實驗程序IO_DataDebug中的映象文件程序映像IO.axf。6. 在ADS調試環境下全速運行映象文件。觀察CPU板左下角的LED1、LED2燈輪流的的閃爍!這是對GPGIO口操作的結果。具體實現見程序。六、 參考程序void Main(v

33、oid) int i;Target_Init();rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000;while(1) for(i=0;i<2000000;i+); /延時 rGPGDAT = rGPGDAT & 0xfcff | 0x0200; for(i=0;i<2000000;i+); /延時 rGPGDAT = rGPGDAT & 0xfcff | 0x100;實驗三 ARM 的中斷實驗一、 實驗目的 1. 掌握 ARM9 的中斷原理,能夠對 S3C2410 的中斷資源及其相關中斷寄存器的進行合理配置2. 掌握對

34、S3C2410 的中斷的編程的方法二、 實驗內容 1. 學習響應外部中斷請求的配置方法,并通過響應定時器中斷,執行中斷 服務子程序使 CPU 板上的 LED 指示燈 LED1、LED2 閃爍。三、 實驗設備 1. EL-ARM-830+教學實驗箱,PentiumII 以上的 PC 機,仿真調試電纜。2. PC 操作系統 WINXP 或 WIN7,ADS1.2 集成開發環境, 仿真調試驅動程序四、 ARM 的中斷原理在 ARM 中,有兩類中斷,一類是 IRQ,一類是 FIQ,IRQ 是普通中斷,FIQ 是快速中斷,在進行大批量的復制、數據轉移等工作時,常使用此類中斷。FIQ 的優先級高于 IRQ

35、。同時,它們都屬于 ARM 的異常模式,當一旦有中斷發生,不管是外部中斷,還是內部中斷,正在執行的程序都會停下,PC 指針進而跳入 異常向量的地址處,若是 IRQ 中斷,則 PC 指針跳到 0x18 處,若是 FIQ 中斷,則跳到 0x1C 處。異常向量地址處,一般存有中斷服務子程序的地址,所以,接下來 PC 指針跳入中斷服務子程序中。當完成中斷服務子程序后,PC 指針會返回到被打斷的程序的下一條地址處,繼續執行程序。這就是 ARM 中斷操作的基本原理。但是,通常由于生產 ARM 處理器的各廠家都集成了很多中斷請求源,比如,串口中斷、AD 中斷、外部中斷、定時器中斷、DMA 中斷等等,所以,很

36、多中斷可能同時請求中斷,因此,為區分它們,更準確的完成任務,這些中斷都有相應的優先級別,以及當發生中斷時,它們都有相應的中斷標志位,通過在發生中斷是判斷中斷優先級,和訪問中斷標志位的狀態來識別到底哪一個中斷發生了。五、 三星的 2410 ARM 處理器的中斷的使用首先,ARM920T CPU 的 PSR 寄存器中的 F 位為 1,則 CPU 不會響應中斷控 制器的 FIQ 中斷,同樣,ARM920T CPU 的 PSR 寄存器中的 I 位為 1,則 CPU 也 不會響應中斷控制器的 IRQ 中斷,為使 CPU 響應中斷,須在啟動代碼中將其設 為 0,以及使 INTMSK 寄存器中的相應位置 0

37、。S3C2410A 共有 56 個中斷源,有 26 個中斷控制器,外部中斷 EXTIN823 共 用一個中斷控制器,外部中斷 EXTIN47 共用一個中斷控制器,9個UART中斷分成 3 組,共用 3 個中斷控制器,ADC 和觸摸屏共用一個中斷控制器。見表 2-中斷的優先級是由主組號和從 ID 號的級別控制的。中斷優先級產生模塊如下圖所示:圖 2-6-1從上圖可以看出,中斷優先級產生模塊共有 7 個判優器,每個判優器是否 使能由寄存器 PRIORITY6:0決定,每個判優器下面有 46 個中斷源,這些中 斷源對應著 REQ0REQ5 這 6 個優先級,這些優先級由寄存器 PRIORITY20:

38、7的 相應位決定。要正確使用 S3C2410 的中斷控制器,必須設置如下的寄存器,如下表 2-6- 1 所示:表 2-6-1SRCPND0x4a000000R/W中斷源掛起寄 存 器 , 當 中 斷 產 生后,相應位置位INTMOD0x4a000004R/W中斷模式寄存器,設定 IRQ 或 FIQ模式INTMSK0x4a000008R/W中斷屏蔽寄存器,如果相應位置位則該中斷被屏蔽PRIORITY0x4a00000cR/W中斷優先級控制寄存器,設置中斷優先級INTPND0x4a000010R/W中斷掛起寄存器,相應位對應正在執行的中斷服務INTOFFSET0x4a000014R中斷源請求偏移寄

39、存器25第三章 S3C2410A 實驗SUBSRCPND0x4a000018R/W子中斷源掛起寄存器INTSUBMSK0x4a00001cR/W子中斷屏蔽寄存器中斷掛起寄存器主要是提供哪個中斷有請求的標志寄存器,相應位置 1,則說明有該中斷請求產生。若相應位為 0,則無該中斷請求產生。 中斷模式寄存器主要是配置該中斷是 IRQ 型中斷,還是 FIQ 型中斷。中斷屏蔽寄存器的主要功能是屏蔽相應中斷的請求,即使中斷掛起寄存器的相應位已經置 1,若中斷屏蔽寄存器相應位置 1,則中斷控制器屏蔽該中斷請求,也無法讓 CPU 響應該中斷。INTPND 為向量 IRQ 中斷服務掛起狀態寄存器,當向量 IRQ

40、 中斷發生時,該寄存器內只有一位被設置,即只有當前要服務的中斷標志位置位。通過讀它的值,就能判斷出哪個中斷發生了。在 INTPND 中相應位寫入數據,就能清除掉中 斷掛起寄存器中的中斷請求標志位,以使 CPU 不再響應中斷,其實,CPU 響應 中斷是看中斷掛起寄存器中的請求標志位有沒有置位,若置位,又屏蔽位打開, ARM920T 的 PSR 的 F 或 I 為也打開,那么,CPU 就響應中斷,否則,有一個條件 不成立,則 CPU 無法響應中斷。1. SRCPND源中斷指示寄存器SRCPND 寄存器 32 位中的每一位對應著一個中斷源,每一位被設置為 1, 則相應的中斷源產生中斷請求并且等待中斷

41、被服務。因此,這個寄存器表明了 哪個中斷源在等待中斷請求被處理。注意,SRCPND 寄存器的每一位是由中斷源 自動設置的,而不管 INTMSK 寄存器中的屏蔽位是否置 1。另外,SRCPND 寄存 器不影響中斷控制器的優先級邏輯。在指定中斷源的中斷服務程序中,SRCPND 寄存器相對應的位必須被清除,這樣才可以正確響應來自同一中斷源的中斷請求。如果從 ISR 返回而沒有清除 相應的位,也就是RCPND 寄存器中的對應的位還是1,那么就會一直響應這個中斷請求。 SRCPND 中相應的中斷位清除的時間依賴于用戶的需求,如果想要從同一中斷源接收另一次有效的中斷請求,你在第一次就應該清除相應的位,并且

42、使能 中斷。用戶可以通過向SRCPND寄存器的相應位寫“1”,這樣可以清除該位。下表為 SRCPND 寄存器的地址和位定義說明RegisterAddressR/WDescriptionReset ValueSRCPND0X4A000000R/WIndicatetheinterruptrequest status.0=Theinterrupthasnot been requested.1 = The interrupt source hasasserted the interrupt request.0x000000002. INTMOD中斷模式寄存器中斷模式寄存器(INTMOD )的 32 位

43、中的每一位對應一個中斷源, 當INTMOD 的每一位都設置位1, 則 ARM 內核將以 FIQ 模式相應中斷,否則將以IRQ 模式相應中斷。INTMOD 寄存器的定義如下表:RegisterAddressR/WDescriptionReset ValueNTMOD0X4A000004R/WInterrupt mode regiseter.0 = IRQ mode 1 = FIQ mode0x000000003. INTPND中斷請求寄存器中斷請求寄存器 32 位中的每一位對應著相應的中斷請求, 經過優先級邏 輯后, INTPND 寄存器只能有一位被設置為 1,并且向 ARM 產生中斷請求。在

44、IRQ 中斷服務子程序,能夠讀取這個寄存器的值來決定 32 個中斷源的那一個 中斷被服務。同SRCPND寄存器,在中斷服務子程序里,這個寄存器的相應位需要被清 除。我們可以向 INTPND 寄存器寫一個數據1,來清除寄存器的指定位。4. INTMSK中斷屏蔽寄存器在INTMSK 寄存器中,32 位依次對應著每個中斷源,如果指定位被設為 1, ARM 將不響應中斷源的中斷請求(注意,即使在 SRCPND 相應的位被置位 1 的 條件下也不響應) 。如果屏蔽位為 0,則中斷請求可以被響應。5. PRIORITY 優先級寄存器RegisterAddressR/WDescriptionReset Va

45、luePRIORITY0x4A00000CR/WIRQ priority control register0x7FPRIORITYBitDescriptionInitialStateARB_SEL620:19Arbiter 6 group priority order set00 = REQ 0-1-2-3-4-501 = REQ 0-2-3-4-1-510 = REQ 0-3-4-1-2-511 = REQ 0-4-1-2-3-5ARB_SEL518:17Arbiter 5 group priority order set00 = REQ 1-2-3-401 = REQ 2-3-4-110

46、= REQ 3-4-1-211 = REQ 4-1-2-3ARB_SEL416:15Arbiter 4 group priority order set00 = REQ 0-1-2-3-4-5 01 = REQ 0-2-3-4-1-510 = REQ 0-3-4-1-2-5 11 = REQ 0-4-1-2-3-5ARB_SEL314:13Arbiter 3 group priority order set00 = REQ 0-1-2-3-4-5 01 = REQ 0-2-3-4-1-510 = REQ 0-3-4-1-2-5 11 = REQ 0-4-1-2-3-5ARB_SEL212:11

47、Arbiter 2 group priority order set00 = REQ 0-1-2-3-4-5 01 = REQ 0-2-3-4-1-510 = REQ 0-3-4-1-2-5 11 = REQ 0-4-1-2-3-5ARB_SEL110:9Arbiter 1 group priority order set00 = REQ 0-1-2-3-4-5 01 = REQ 0-2-3-4-1-510 = REQ 0-3-4-1-2-5 11 = REQ 0-4-1-2-3-5ARB_SEL08:7Arbiter 0 group priority order set00 = REQ 1-

48、2-3-4 01 = REQ 2-3-4-110 = REQ 3-4-1-2 11 = REQ 4-1-2-3ARB_MODE66Arbiter 6 group priority rotate enable0 = Priority does not rotate1 = Priority rotate enable27第三章 S3C2410A 實驗ARB_MODE55Arbiter 5 group priority rotate enable0 = Priority does not rotate1 = Priority rotate enableARB_MODE44Arbiter 4 grou

49、p priority rotate enable0 = Priority does not rotate1 = Priority rotate enableARB_MODE33Arbiter 3 group priority rotate enable0 = Priority does not rotate1 = Priority rotate enableARB_MODE22Arbiter 2 group priority rotate enable0 = Priority does not rotate1 = Priority rotate enableARB_MODE11Arbiter

50、1 group priority rotate enable0 = Priority does not rotate1 = Priority rotate enableARB_MODE00Arbiter 0 group priority rotate enable0 = Priority does not rotate1 = Priority rotate enable6. INTOFFSET中斷偏移寄存器中斷偏移寄存器 INTOFFSET 中的值顯示了 INTPND 寄存器中哪一個 IRQ 的 中斷請求,這個位在清除 SRCPND 和 INTPND 后將自動清除。7. S3C2440A 子中

51、斷列表8. SUBSRCPND次級源中斷指示寄存器9. INTSUBMSK次級中斷屏蔽寄存器 表 2-6-2第三章 S3C2410A 實驗2910. EXTINTn外部中斷控制寄存器 n外部中斷控制寄存器可以控制外部中斷信號有效方式, 外部中斷信號有效 方式可以設置為電平觸發和邊沿觸發,具體內容見下表。EXTERNAL INTERRUPT CONTROL REGISTER (EXTINTn)The 24 external interrupts can be requested by various signaling methods. The EXTINTn configures the si

52、gnaling method between the level trigger and edge trigger for the external interrupt request, and also configures the signal polarity.To recognize the level interrupt, the valid logic level on EXTINTn pin must be retained at least for 40ns because of the noise filter (EINT15:0).EXTINT0BitDescription

53、EINT730:28Set the signaling method of the EINT7.000 = Low level 001 = High level 01x = Falling edge triggered10x = Rising edge triggered11x = Both edge triggered30S3C2410 實驗指導書EINT626:24Set the signaling method of the EINT6.000 = Low level 001 = High level01x = Falling edge triggered 10x = Rising edge triggered11x = Both edge triggeredEINT522:20Set the signaling method of the EINT5.000 = Low level 001 = High level01x = Falling edge triggered 10x = Rising edge triggered11x = Both edge triggeredEINT418:16Set the signaling method of the EINT4.000 = Low level 001 = High level01x = Fall

溫馨提示

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

評論

0/150

提交評論