S3C2440的中断体系结构

发布者:SparklingSoul最新更新时间:2024-08-09 来源: cnblogs关键字:S3C2440  中断体系  结构 手机看文章 扫描二维码
随时随地手机看文章
概述

S3C2440A中的中断控制器接受来自60个中断源的请求。提供这些中断源的可以是内部外设,如DMA控制器UART、IIC等等。在这些中断源中,UARTn、AC97和EINTn中断对于中断控制器而言是“或”关系(在这几个源中还可以有中断分支)。

当从内部外设和外部中断请求引脚收到多个中断请求时,中断控制器在仲裁步骤后请求ARM920T内核的FIQ或IRQ。

总流程图如下:

程序状态寄存器(PSR)的 F 位和 I 位

如果 ARM920T CPU 中的 PSR 的 F 位被置位为 1,CPU 不会接受来自中断控制器的快中断请求(FIQ)。同
样的如果 PSR 的 I 位被置位为 1,CPU 不会接受来自中断控制器的中断请求(IRQ)。因此,中断控制器可以通过
清除 PSR 的 F 位和 I 位为 0 并且设置 INTMSK 的相应位为 0 来接收中断。

中断模式

ARM920T 有两种中断模式的类型:FIQ 或 IRQ(可以通过 中断模式 INTMOD 寄存器 设置成FIQ或IRQ)。所有中断源在中断请求时决定使用哪种类型。

中断挂起寄存器

S3C2440A 有两个中断挂起寄存器:源挂起寄存器(SRCPND)和中断挂起寄存器(INTPND)。这些挂起寄
存器表明一个中断请求是否为挂起。当中断源请求中断服务,SRCPND 寄存器的相应位被置位为 1,并且同时在仲
裁步骤后 INTPND 寄存器仅有 1 位自动置位为 1。如果屏蔽了中断,则 SRCPND 寄存器的相应位被置位为 1。这
并不会引起 INTPND 寄存器的位的改变。当 INTPND 寄存器的挂起位为置位,每当 I 标志或 F 标志被清除为 0 中
断服务程序将开始。SRCPND 和 INTPND 寄存器可以被读取和写入,因此服务程序必须首先通过写 1 到 SRCPND
寄存器的相应位来清除挂起状态并且通过相同方法来清除 INTPND 寄存器中挂起状态。

中断屏蔽寄存器

此寄存器表明如果中断相应的屏蔽位被置位为 1 则禁止该中断。如果某个 INTMSK 的中断屏蔽位为 0,将正常
服务中断。如果 INTMSK 的中断屏蔽位为 1 并且产生了中断,将置位源挂起位。

中断控制器支持 60 个中断源,如下图所示:


这里,外部中断 4 至 7是共用一个源、UART2 中断的(ERR、RXD 和 TXD)是共用一个源....我觉得这样的作用就是为了每项功能 (例如挂起、屏蔽)可以用一个寄存器来管理。

中断次级源,如下图:


我想大家看到这个图后就应该明白了为什么要有 次级源挂起(SUBSRCPND)寄存器 和 中断次级屏蔽(INTSUBMSK)寄存器 了吧。

当一个源中还有子源的话,就会走第一张图的上支路,反而走下支路。假如我们在 INTSUBMSK 中屏蔽了 INT_TC 这个中断,和它共处一个源的 INT_ADC_S 中断还是可以进来,但是如果屏蔽了 INT_ADC 这个中断源,它们两个就都会被屏蔽掉。

中断优先级

每个仲裁器可以处理基于 1 位仲裁器模式控制(ARB_MODE)和选择控制信号(ARB_SEL)的 2 位的 6 个中断请求,如下:

仲裁器的 REQ0 的优先级总是最高并且 REQ5 的优先级总是最低通过改变 ARB_SEL 位,可以轮换 REQ1 到 REQ4 的顺序(当 ARB_MODE 为 1 时)。|
---|---
– 如果 ARB_SEL 位为 00b,优先级顺序为 REQ0、REQ1、REQ2、REQ3、REQ4 和 REQ5。 |
– 如果 ARB_SEL 位为 01b,优先级顺序为 REQ0、REQ2、REQ3、REQ4、REQ1 和 REQ5。 |
– 如果 ARB_SEL 位为 10b,优先级顺序为 REQ0、REQ3、REQ4、REQ1、REQ2 和 REQ5。 |
– 如果 ARB_SEL 位为 11b,优先级顺序为 REQ0、REQ4、REQ1、REQ2、REQ3 和 REQ5。 |

中断优先级发生模块:

最后介绍一下中断偏移(INTOFFSET)寄存器

中断偏移寄存器中的值表明了是哪个 IRQ 模式的中断请求在 INTPND 寄存器中。此位可以通过清楚 SRCPND
和 INTPND 自动清除

大概意思就是你可以把这个寄存器当成中断请求后的标志位,通过察看偏移值就可以知道当前是哪个中断源发生请求。


关键字:S3C2440  中断体系  结构 引用地址:S3C2440的中断体系结构

上一篇:GNU μC/OS-II 在 S3C2440 上中断的实现
下一篇:SPI在linux3.14.78 FS_S5PC100(Cortex A8)和S3C2440上驱动移植(deep dive)

推荐阅读最新更新时间:2024-11-11 10:23

永磁同步电机控制系统仿真—控制器模型的整体结构
多速率仿真 通常情况下,在Simulink环境下搭建的电力电子控制系统的仿真模型,都是多速率的仿真模型。这是因为: 01 电力电子控制系统中包含多种类型的模型,不同模型对于仿真速率的要求是不同的。 02 被控对象模型中的电气部分,例如永磁同步电机、逆变器,都是希望仿真速率越快越好。具体选择多快的仿真速率,与PWM的频率,逆变器的死区时间,模型的解算方式等因素相关。对于10kHz开关频率,仿真速率最好是开关频率的100倍,因此为1MHz(仿真步长1µs),但是如果死区时间为2µs,那么仿真步长最好是死区时间的1/10(0.2µs),此时仿真速率就是5MHz。 03 被控对象模型中的机械部分,通常情况下仿真步长为1ms(仿真速率1
[嵌入式]
永磁同步电机控制系统仿真—控制器模型的整体<font color='red'>结构</font>
arm920t中S3C2440、S3C2450和S3C6410的区别
  三星目前推出了S3C6400和S3C6410,都是基于ARM架构的,而且硬件管脚兼容,应该说大致的功能基本相同,比较明显的区别就是S3C6410带有2D/3D硬件加速   S3C2440其实是一个很不错的CPU,价格便宜、内部资源多、最主要的是国内很多人使用,相关的资料比较多。ARM920T内核, 400M主频,支持NAND FLASH、NORFLASH、SDRAM、支持STN/TFT LCD、4通道DMA、3通道UART、2通道SPI、IIC总线、IIS/AC97音频控制器、SD/MMC控制器、2通道USB HOST 1通道USB DEVICE、4通道PWM、8通道A/D转换、触摸屏控制器、RTC、CMOS摄像头、多功能
[单片机]
瑞芯微AI芯片及结构光FaceID方案亮相MWC2018
正在西班牙巴塞罗那举办的MWC2018 展上,瑞芯微发布展示了公司最新的技术,包括智能设备结构光(FaceID)、视觉增强、AI芯片,以及4K电视盒方案。 结构光FaceID方案及视觉增强 随着机器学习和深度神经网络两个领域的迅速发展以及智能设备的普及,面部识别FaceID技术正在经历前所未有的发展。此次展会上,瑞芯微展出了人脸识别平台的产品,包括人脸考勤机,及人证识别机。 图:人脸识别方案 据悉,瑞芯微采用了自家的RK1608平台结构光方案,适用于多种智能设备。可支持720P高精度点云输出,支付级别安全方案设计,可独立承载高负荷的FaceID运算,同时具备0.3Tops的CNN加速性能。 目前,瑞芯微拥有一自己的整套解
[手机便携]
s3c2440(ARM9)通用寄存器地址
89c51的通用寄存器组是对应内存的,即在内存中分配地址,那么ARM9的呢? 来源: http://zhidao.baidu.com/link?url=Nf9NDaITEiA4Gc9q6Y4dP3yt xLJPwBjvRhizxtP0hUu6sQaN qUFqPnS7KEfvfjpIJBlzFKFz q-rBNYXSGx1-va s3c2440a 通用寄存器地址:例如R0,R1,R2之类的通用寄存器对应内存的地址??? 这么说,在C编程中,就不存在所谓的R1、R2之类的通用寄存器了?? R0,R1,R2是 寄存器 ,在cpu内部,用于计算和存储访问、存放临时数据、以及一些cpu或程序运行的状态,是不直接对应内存的,所以也就没有
[单片机]
s3c2440中断总结+按键中断
一、启动代码之IRQ中断分析。 举例:timer4中断调用过程 1、当timer4发生中断,INTOFFSET寄存器的值变为中断源INT_TIMER4对应的值,即 14。 同时,程序将跳转到irq中断向量地址(0x18)处去执行,该处的指令为 b HandlerIRQ 2、在启动代码中有如下一段宏定义 $HandlerLabel HANDLER $HandleLabel $HandlerLabel sub sp,sp,#4 ;decrement sp(to store jump address) stmfd sp!,{r0} ;PUSH the work register to stack(lr does
[单片机]
<font color='red'>s3c2440</font><font color='red'>中断</font>总结+按键<font color='red'>中断</font>
什么是汽车抛负载 结构简单抛负载保护方案解析
1.什么是抛负载 抛负载,英文为Load dump,是指断开电源与负载的瞬间,由于负载突变而引起电源电压急剧变化。在汽车电子领域,抛负载是指在蓄电池充电时,断开发电机与蓄电池的连接而引起发电机输出大电压尖峰,从而使得其它连接到发电机电源的设备受到破坏的威胁。 汽车抛负载有单抛和双抛之分,仅切断发电机为负载单抛;仅切断蓄电池为蓄电池单抛;同时切断发电机和蓄电池称为双抛。由于汽车运行过程的高可靠性,ISO组织制定的抛负载试验,必然有其内在的合理性。抛负载试验是非常严酷的破坏性试验。 2. 什么是抛负载7637-5A/5B 汽车抛负载,主要是受最大电压、内阻和持续时间等三方面因素影响,如何控制这三者之间的综合影响就是我们汽车抛负载保
[嵌入式]
什么是汽车抛负载 <font color='red'>结构</font>简单抛负载保护方案解析
S3C2440快速启动的实现描述
S3C2440 是三星公司基于 ARM920T 设计的一款处理器,在开发基于S3C2440 的系统的过程中,如何让系统快速稳定地启动是一个重要问题。嵌入式系统的资源有限,程序通常都是固化在 ROM 中运行。但在实际应用中,为提高系统的实时性,加快代码的执行速度,系统启动后程序往往要被搬移到 RAM 中,因为 RAM 的存取速度要比 ROM 快得多,这样大大提升系统的性能。启动程序要完成的任务包括:硬件初始化,系统存储系统的配置,复制二级中断向量表。 启动程序过程 系统硬件初始化 系统上电或复位后,程序从位于地址 0x0 的 Reset Exception Vector 处开始执行,因此需要在这里放置 Bootloader 的第一
[单片机]
MAX736系列管脚配置与内部结构框图
MAX736系列管脚配置与内部结构框图
[电源管理]
MAX736系列管脚配置与内部<font color='red'>结构</font>框图
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved