歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

mini6410中斷控制器-VIC中斷控制器

提示:如果讀者對ARM中斷機制不是很理解,建議先閱讀本人其它三篇文章:

S3C2440系統中斷

ARM處理器異常處理

ARM系統中斷產生流程

 

一、概述

S3C6410中斷控制器由兩個VIC(Vectored Interrupt Controller, ARM PrimeCell)組成和兩個TZIC’s(TrustZone Interrupt Controller SP890)。

兩個TZIC’s和VIC’s很好的接合起來支持64個中斷源。但是單從三星提供的硬件手冊上,很徹底了解VIC中斷的工作方式,還需要從ARM公司下載VIC控制器說明手冊,ARM PrimeCell Vectored Interrupt Controller (PL192),通讀該手冊才能幫助我們很好理解VIC中斷控制原理。

二、特點

S3C6410的向量中斷控制器的特性如下:

l  每個VIC控制器包含32向量中斷

l  固定的硬件中斷優先級別

l  可編程的中斷優先級

l  支持硬件的中斷優先級屏蔽

l  可編程的硬件的中斷優先級屏蔽

l  可產生一般中斷和快速中斷

l  可產生軟件中斷

l  原生的中斷狀態

l  中斷請求狀態

l  支持特權模式來限制訪問

如圖1-1所示。

圖1-1 S3C6410的中斷控制器

 

三、中斷源

S3C6410中斷源如下表所示:

表1-1 中斷源

 

四、VIC寄存器

VIC0的基址是0x71200000,VIC1的基址是0x71300000

控制寄存器地址 = 偏移地址 + VICn基址

 

1.       中斷狀態寄存器

當使能對應中斷及選擇了其中斷類型為一般中斷,該寄存器表示對應中斷狀態,表示有無中斷產生。

 

2.       快速中斷狀態寄存器

當使能對應中斷及選擇了其快速中斷類型,該寄存器表示對應中斷狀態,表示有無快中斷產生。

 

3.       中斷前狀態寄存器

 

 

4.       中斷選擇寄存器

選擇對應的中斷信號類型為一般中斷還是快速中斷。

 

5.       中斷使能寄存器

使能對應的中斷信號,使能中斷信號只能通過該寄存器,如果禁用中斷使用VICxINTENCLEAR寄存器,在系統重置後,所有中斷都默認被禁用。

 

6.       中斷源禁用寄存器

該寄存器用來清除VICxINTENABLE寄存器啟用的中斷信號。

 

7.       軟件中斷寄存器

 

8.       軟件中斷源清除寄存器

 

9.       保護模式使能寄存器

默認禁用保護模式,通過寫入1開啟了保護模式,只有特權模式下才可以訪問所有的中斷寄存器。

 

10.   軟件優先級屏蔽寄存器

是否開啟軟件中斷優先級。

 

11.   鏈式向量優先級寄存器

 

12.   向量中斷處理程序地址寄存器

每個寄存器對應一個中斷源的ISR處理程序地址。

 

13.   向量中斷優先級寄存器

 

14.   向量地址寄存器

該寄存器裡存放的是當前正在處理的ISR中斷服務例程的地址。當前正在處理中斷時,只能從該寄存器裡讀取其值,在處理完中斷時向該寄存器裡寫入任何值都可以清除其值。

 

Copyright © Linux教程網 All Rights Reserved