I/O端口及中断控制器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-
中断控制器概述
有了中断请求,请求源的保存可以分为两种。一种是 带子请求寄存器的,如UARTn的INT_ERRn、 INT_RXDn和INT_TXDn,有了中断请求,请求源要保 存在子源挂起寄存器SUBSRCPND中;另一种是不带子 请求寄存器的,如INT_DMA3,有了中断请求,请求 源要保存在源挂起寄存器SRCPND中。对于带子请求寄 存器的,还要检查中断子屏蔽寄存器INTSUBMSK是否 对某一个子请求源进行了屏蔽,只有不屏蔽,才能在 源挂起寄存器SRCPND中对应位置1。之后,一个或多 个中断请求要判断是否被屏蔽;是IRQ模式还是FIQ模 式;如果是IRQ模式还要判断多个中断请求的优先权; 最后以IRQ或FIQ请求送ARM920T内核。
-
中断控制器概述
中断处理示意图。
-
中断控制器概述
外部中断EINT4~EINT7、EINT8~EINT23的请 求,要在外部中断挂起寄存器EINTPEND中保存, 检查外部中断屏蔽寄存器EINTMASK是否屏蔽, 如果不屏蔽,才能送到源挂起寄存器SRCPND的 对应位EINT4_7、EINT8_23。
-
中断屏蔽寄存器INTMSK由32位组成,它们中的 每1位对应1个中断源。
中断屏蔽寄存器INTMSK地址为0x4A000008, 可读写,Reset值为0xFFFFFFFF,具体含义见表 7-42。
-
5.优先权寄存器 优先权寄存器PRIORITY,地址为0x4A00000C,
-
源挂起寄存器SRCPND由32位组成,其中每1位 与1个中断源相对应。
源挂起寄存器SRCPND地址为0x4A000000,可 读写,Reset值为0x00000000。
-
子源挂起寄存器 子源挂起寄存器(sub source pending register)
SUBSRCPND中的每1位,指示对应的子中断源 有无中断请求。 子源挂起寄存器SUBSRCPND地址为 0x4A000018,可读写,Reset值为0x00000000。
-
⒉中断模式寄存器 ARM920T有2种类型的中断模式:FIQ或IRQ, 所有的中断源在中断请求时,要确定该中断源 被设置成哪一种模式。中断模式寄存器 INTMOD中的每1位,指示一个中断源被设置成 了哪一种模式。
-
中断模式寄存器INTMOD由32位组成,它们中 的每一位对应一个中断源。中断模式寄存器 INTMOD地址为0x4A000004,可读写,Reset值 为0x00000000。
-
中断控制器概述
当从片内外设和外部中断请求引脚接收到多个 中断请求时,中断控制器经过仲裁处理后,向 ARM920T内核请求FIQ或IRQ中断。
仲裁处理取决于硬件优先权逻辑,并且仲裁结 果写入中断挂起寄存器INTPND(interrupt pending register)。用这种方法可以帮助用户, 告知在多个中断请求源中,哪一个经过仲裁并 送到ARM920T内核。
I/O端口及中断控制器
阅读P156-P159 思考以下问题
S3C2410A共有多少个中断源?多少个外部中 断源?外部中断的触发方式如何设置?中断标志 位在哪些寄存器里?某中断是否允许由哪个寄存
器控制?中断优先级由哪个寄存器控制?中断 处理的流程是什么样的?
-
中断控制ห้องสมุดไป่ตู้概述
S3C2410A片内的中断控制器,接收来自56个 中断源的中断请求。这些中断源由S3C2410A外 部中断请求引脚和片内外设提供。片内外设包 括DMA控制器、UART、IIC等。在这些中断源 中,UARTn的INT_ERRn、INT_RXDn和 INT_TXDn经过逻辑或以后送到中断控制器,作 为INT_UARTn。EINT4~EINT7、 EINT8~EINT23经过逻辑或以后送到中断控制 器,作为EINT4_7、EINT8_23。
-
⒋ 中断屏蔽寄存器 中断屏蔽寄存器INTMSK中的某1位被设置为1,
指示对应的中断已经被屏蔽(禁止)。如果寄 存器INTMSK中的某1位为0,这1位对应的中断 源产生的中断请求,通常将被服务。 如果寄存器INTMSK中的某1位为1,并且该位对 应的中断源产生了中断请求,源挂起寄存器 SRCPND中对应的源挂起位将被置1。
中断控制器用到的S3C2410A引脚信号有 EINT0~EINT23和nBATT_FLT。
-
中断控制器特殊功能寄存器
⒈ 程序状态寄存器(PSR)中的F位和I位 如果ARM920T CPU中的PSR的F位被设置为1, CPU不接受来自中断控制器的快速中断请求 (Fast Interrupt Request,FIQ)。同样,如果 I位被设置为1,CPU不接受来自中断控制器的中 断请求(Interrupt Request,IRQ)。因此,通 过清除PSR的F位或I位为0,同时设置中断屏蔽 寄存器INTMSK的对应位为0,送到中断控制器 的中断请求才能被处理。
-
寄存器SRCPND和INTPND能被读或写,中断服 务程序必须清除相应的挂起位,方法是通过写1 到SRCPND的对应位,能够将该位清0。然后再 写1到INTPND的对应位,能够将INTPND的对应 位清0。
中断挂起寄存器(interrupt pending register), 也译作中断未决寄存器。
-
⒊ 源中断挂起寄存器
S3C2410A中有两个中断挂起寄存器,一个是源挂起寄 存器SRCPND,另一个是中断挂起寄存器INTPND。这 两个挂起寄存器指示一个中断请求是或否被挂起(记 录)。当多个中断源同时请求中断服务时,寄存器 SRCPND多个对应位被设置成1。与此同时,经过仲裁 处理后,寄存器INTPND中仅仅1位被自动地设置为1。 如果多个中断被屏蔽,这些中断源同时请求中断服务 时,寄存器SRCPND中的对应位仍被设置为1,但是不 引起寄存器INTPND值的改变。当寄存器INTPND中的1 位被设置为1时,如果这1位对应IRQ请求,并且PSR中 的I位为0;或者这1位对应FIQ请求,并且PSR中的F位 为0,就会进入相应的中断服务程序。
相关文档
最新文档