当前位置:首页 > 单片机 > 单片机
[导读]前几天把外部中断基本搞好了,但对几个中断寄存器的具体含义和区别不是很了解。今天特意拿起datasheet详读并网络上查了这方面的资料。将结果记录如下:S3C2440的中断寄存器有6个中断裁决器,分为2级:第一级为5个,第

前几天把外部中断基本搞好了,但对几个中断寄存器的具体含义和区别不是很了解。今天特意拿起datasheet详读并网络上查了这方面的资料。将结果记录如下:


S3C2440的中断寄存器有6个中断裁决器,分为2级:第一级为5个,第二级为1个。详见Datasheet的P380的interrupt sources和P381的interrupt sub sources。第一级的32个中断源包含26个内部中断,6个外部中断。


这6个中断分别为:EINT0,EINT1.EINT2,EINT3,EINT4_7,EINT8_23。其中EINT4_7,EINT8_23都是共享一个中断。在外部中断有中断请求时,因为EINT4_7和EINT8_23是分别共享中断的,而SRCPND和INTPND的BIT4或BIT5也是共享使用的,那么怎么区别是EINT4还是EINT5或EINT6发生中断呢,这就需要另一个寄存器EINTPEND来判断,由于EINT0~EINT3都独享一个中断,所以EINTPEND只有EINT4~23,读取该寄存器就知道哪个中断触发了。


一、三个中断未决寄存器:源未决寄存器SRCPND和中断未决寄存器INTPND以及外部中断未决寄存器EINTPEND。


SRCPND寄存器有效位为32位,每一位对应一个中断源。某个位被置一表示相应的中断被触发,单我们知道系统在同一 时间内可以触发多个中断,只要中断触发了,相应的位就被置一,直到该位被清除为止。也就是说在同一时刻SRCPND寄存器可以有多个位被同时置1。该位写1后被清0。


INTPND寄存器有效位为32位,看似跟SRCPND一样,其实有很大的不同,在某一时刻INTPND寄存器只能有一个位被置一。INTPND某位被置一说明,该位所对应的中断在所有已触发的中断里中断优先级最高且没有被屏蔽,表示CPU即将或已经在处理在对该位对应的中断进行处理。该位写1后被清0。


两者的区别:SRCPND表明当前有什么中断被触发了;INTPND表明CPU即将或正在处理某个中断。

EINTPEND:寄存器有效位为24位,低4位保留。EINTPENG只有EINT4~E23,跟SRCPND一样,可以在同一时刻多个位同时为1.用来区分共享中断EINT4_7和EINT8_23具体为哪个触发。该位写1后被清0.

eg。在外部中断例程的中断处理程序里是如下写法:
if(rINTPND==0x10)

{

rSRCPND = 0x10;

rINTPND = 0x10;
if(EINTPEND & 0X10) //EINT4
{
EINTPENG |= 0X10;
Uart_Printf("K4发生中断n");
}

if(rEINTPEND&0x20) //EINT5

{

rEINTPEND |= 0x20;

Uart_Printf("K5发生中断n");

}

}
判断条件为INTPND,如果INTPND该位置1说明当前CPU正在处理EINT4_7,将SRCPND和INTPND的位1都写1,清0标志。if(EINTPEND & 0X10)为第二判定条件,确认为EINT4_7中的EINT4发生中断。

二、INTMOD中断模式寄存器,每一位与SRCPND中各位对应。0--IRQ模式,1--FIQ模式,默认初始化全0.

每次只能对一个中断源置成FIQ,所以每次只能对INTMOD中的一位置1. FIQ中断优先级比IRQ高。

三、INTMSK中断屏蔽寄存器,每一位与SRCPND中各位对应。0--未屏蔽,1--屏蔽中断请求,默认初始化全1.

四、INTSUBMSK、SUBSRCPND是副中断源引脚寄存器,使用情况与主中断源类似。第二级副中断源列表在datasheet P381。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

  本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实现了远程网络视频信息采集。   

关键字: s3c2440 视频采集 usb摄像头

         之前在提起自动化或是智能化时,人们会不自觉的想到工业生产,这是因为自动化这个字眼进入中国,确实是以工业

关键字: 嵌入式 Linux s3c2440 视频采集

  引言   随着科技的不断发展,以数据业务为主的固定宽带无线接入技术发展已经很成熟,而移动宽带无线通信技术还并没有得到广泛的应用。由于移动宽带无线接入系统需要解决带宽、移动性和覆盖范围

关键字: IPv6 s3c2440 x86 架构

  1 引言   人们生活水平的提高以及科技的进步,特别是计算机技术、网络技术和通信技术的发展,智能家居将慢慢成为未来家居生活的发展方向。1984年在美国诞生了世界上第一座智能家居建筑,

关键字: boa nrf24l01 s3c2440 智能家居

我们知道2440开发流程为:移植uboot--》移植内核---》挂接根文件系统。我们移植完内核需要挂接根文件系统,那么首先我们必须拥有根文件系统。如何来制作我们的根文件系统呢?第一步:在linux下建

关键字: s3c2440 根文件系统

1.TQ2440u-boot-1.1.6修改文件所在的路径是u-boot-1.1.6includeconfigsEmbedSky.h将#defineLCD_TFTxxx(LCD类型)W353.5寸TFT4802724.3...

关键字: s3c2440 lcd参数

2440的晶振频率为12MHZ,有两个PLL:MPLL和UPLL,其中MPLL产生FCLK、HCLK、PCLK;UPLL产生UCLK。FCLK为ARM核提供时钟,HCLK为AHB总线时钟,PCLK为APB总线时钟,UCL...

关键字: s3c2440 时钟初始化

开发板:TQ2440内核:Linux 2.6.32PC OS:Ubuntu 11.041.配置内核打开I2C功能:打开杂项设备,该选项打开后,EEPROM也就打开了。2. 修改代码修改文件: linux/arch/arm...

关键字: at24c02 eeprom s3c2440 移植 linux驱动

在分析ARM-Linux s3c2440中UART的时有必要先了解 s3c2440A中串口的硬件知识。硬件篇:S3c2440A串口提供三个独立的异步串行通信I/O端口(asynchronousserial I/O por...

关键字: ARM Linux s3c2440 uart

s3c2440 cpu的默认工作主频有两种12MHz和16.9344MHz,也就是我们的晶振的频率,但一般12MHz的晶振用的比较多,Fin就是指我们接的晶振频率。大家都知道s3c2440上电正常工作后频率是远远大于12...

关键字: s3c2440 时钟
关闭