历史上的今天
今天是:2025年06月04日(星期三)
2018年06月04日 | S3c2440支持中断源个数
2018-06-04 来源:eefocus
S3c2440支持多达36个内部中断源和24个外部中断源,分别使用内部终端屏蔽寄存器INTMSK和外部中断寄存器MSK进行屏蔽控制。其中,外部中断源通过GPIO以复用的方式成为内部中断源的一部分。
但是我们清楚,INTMSK是一个32位的寄存器,最多只能支持32中断,它是如何对应这么多中断的呢?
首先我们先看INTMSK对应的位。
INTERRUPT MASK (INTMSK) REGISTER (Continued)
INT_ADC [31] 0 = Service available, 1 = Masked 1
INT_RTC [30] 0 = Service available, 1 = Masked 1
INT_SPI1 [29] 0 = Service available, 1 = Masked 1
INT_UART0 [28] 0 = Service available, 1 = Masked 1
INT_IIC [27] 0 = Service available, 1 = Masked 1
INT_USBH [26] 0 = Service available, 1 = Masked 1
INT_USBD [25] 0 = Service available, 1 = Masked 1
INT_NFCON [24] 0 = Service available, 1 = Masked 1
INT_UART1 [23] 0 = Service available, 1 = Masked 1
INT_SPI0 [22] 0 = Service available, 1 = Masked 1
INT_SDI [21] 0 = Service available, 1 = Masked 1
INT_DMA3 [20] 0 = Service available, 1 = Masked 1
INT_DMA2 [19] 0 = Service available, 1 = Masked 1
INT_DMA1 [18] 0 = Service available, 1 = Masked 1
INT_DMA0 [17] 0 = Service available, 1 = Masked 1
INT_LCD [16] 0 = Service available, 1 = Masked 1
INT_UART2 [15] 0 = Service available, 1 = Masked 1
INT_TIMER4 [14] 0 = Service available, 1 = Masked 1
INT_TIMER3 [13] 0 = Service available, 1 = Masked 1
INT_TIMER2 [12] 0 = Service available, 1 = Masked 1
INT_TIMER1 [11] 0 = Service available, 1 = Masked 1
INT_TIMER0 [10] 0 = Service available, 1 = Masked 1
INT_WDT_AC97 [9] 0 = Service available, 1 = Masked 1
INT_TICK [8] 0 = Service available, 1 = Masked 1
nBATT_FLT [7] 0 = Service available, 1 = Masked 1
INT_CAM [6] 0 = Service available, 1 = Masked 1
EINT8_23 [5] 0 = Service available, 1 = Masked 1
EINT4_7 [4] 0 = Service available, 1 = Masked 1
EINT3 [3] 0 = Service available, 1 = Masked 1
EINT2 [2] 0 = Service available, 1 = Masked 1
EINT1 [1] 0 = Service available, 1 = Masked 1
EINT0 [0] 0 = Service available, 1 = Masked 1
我们发现INTMSK的第5,6位对应了EINT4_7, EINT8_23,20个外部中断,也就是所,这20个GPIO引脚只能触发这两个中断。
但是当中断到来时,我们如果判断是由哪一个GPIO引脚触发的呢?这个时候我们可以通过查询EINTMASK来判断中断源。
EINTMASK Bit Description
EINT23 [23] 0 = enable interrupt 1= masked
EINT22 [22] 0 = enable interrupt 1= masked
EINT21 [21] 0 = enable interrupt 1= masked
EINT20 [20] 0 = enable interrupt 1= masked
EINT19 [19] 0 = enable interrupt 1= masked
EINT18 [18] 0 = enable interrupt 1= masked
EINT17 [17] 0 = enable interrupt 1= masked
EINT16 [16] 0 = enable interrupt 1= masked
EINT15 [15] 0 = enable interrupt 1= masked
EINT14 [14] 0 = enable interrupt 1= masked
EINT13 [13] 0 = enable interrupt 1= masked
EINT12 [12] 0 = enable interrupt 1= masked
EINT11 [11] 0 = enable interrupt 1= masked
EINT10 [10] 0 = enable interrupt 1= masked
EINT9 [9] 0 = enable interrupt 1= masked
EINT8 [8] 0 = enable interrupt 1= masked
EINT7 [7] 0 = enable interrupt 1= masked
EINT6 [6] 0 = enable interrupt 1= masked
EINT5 [5] 0 = enable interrupt 1= masked
EINT4 [4] 0 = enable interrupt 1= masked
Reserved [3:0] Reserved
但是还有一个疑问,不是说60个中断源吗?除去24个外部中断源应该还有60-24 -(32-6)=10个内部中断源啊。他们在哪呢?
其实这里涉及到了子中断源的概念。
Sub Sources Descriptions Source
INT_AC97 AC97 interrupt INT_WDT_AC97
INT_WDT Watchdoc interrupt INT_WDT_AC97
INT_CAM_P P-port capture interrupt in camera interface INT_CAM
INT_CAM_C C-port capture interrupt in camera interface INT_CAM
INT_ADC_S ADC interrupt INT_ADC
INT_TC Touch screen interrupt (pen up/down) INT_ADC
INT_ERR2 UART2 error interrupt INT_UART2
INT_TXD2 UART2 transmit interrupt INT_UART2
INT_RXD2 UART2 receive interrupt INT_UART2
INT_ERR1 UART1 error interrupt INT_UART1
INT_TXD1 UART1 transmit interrupt I NT_UART1
INT_RXD1 UART1 receive interrupt INT_UART1
INT_ERR0 UART0 error interrupt INT_UART0
INT_TXD0 UART0 transmit interrupt INT_UART0
INT_RXD0 UART0 receive interrupt NT_UART0
史海拾趣
|
来自EEWORLD合作群:arm linux fpga 嵌入0(49900581) 读什么书, 可以快速的理解tcp/ip 协议. 或者怎么快速的理解他. 有什么好方法没有. 谢谢大家… 查看全部问答> |
|
我已经有了一个带USB驱动的dll文件,想把这个dll导入到wince系统中,我查了些资料,先把dll文件复制到先前编译好的nk.bin所在的路径下,再在project.bib添加 **.dll $(_FLATRELEASEDIR)\\**.dll &nbs ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 管是手机还是家电产品都逐渐融入网络中,信息家电是将现代网络通信技术融入到传统的家用电器,使之成为具有信息访问、获取、存储、处理、联网等功能的消费类电子产品。信息家电的出现改变了传 ...… 查看全部问答> |
|
我用的是圈圈做的USB HID的配置,可是在我的程序上只能在端点1发送数据,端点2确收不到数据,感觉中断也没有。不知道是什么原因,请版主主和圈圈帮我看看是咋回事。const u8 CustomHID_DeviceDescriptor[CUSTOMHID_SIZ_DEVICE_ ...… 查看全部问答> |
|
各位大俠好新手上路,有點小問題請各位解惑我使用ST stm32f2xx_stdperiph_lib MDK 4.23測試GPIO的範例但是我使用debug simulator的功能,先是出現錯誤訊息*** error 65: access violation at 0x0000000 ...… 查看全部问答> |
|
电流反馈放大器(CFA)历来都不是跨阻放大器(TIA)的首选,因为它们具有较高的反相输入电流和反相输入电流噪声,可能比同等级电压反馈放大器(VFA)至少高出一个数量级。另外,许多系统设计师对CFA并不熟悉,因为不大愿意使用它们。然而,事实上,CFA使 ...… 查看全部问答> |




