浅谈S3C2440的中断寄存器及中断过程

本文详细探讨了S3C2440微处理器的中断系统,包括外部中断和内部中断的寄存器配置,以及中断的开启、清除和处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

浅谈S3C2440的中断寄存器及中断过程

           S3C2440一共有60个中断源,其中有15个子中断源,它们与SUBSRCPND寄存器中的每一位相对应,其他45个中断源与SRCPND中的每一位相对应。要注意的是EINT4~7对应的是同一位SRCPND[4],而EINT8~23对应的也是SRCPND[5]一位。

1 S3C2440的中断寄存器

          中断分两大类:外部中断和内部中断。
1.1 外部中断寄存器
          24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。
寄存器:
             EXTINT0-EXTINT2:分别设置EINT0—EINT7、EINT8—EINT15、EINT16—EINT23的触发方式(高电平触发、低电
中断分两大类:内部中断和外部中断。 外部中断: 24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。 用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体参考 datesheet 数据手册。 寄存器: EXTINT0-EXTINT2: 三个寄存器设定EINT0-EINT23的触发方式。 EINTFLT0-EINTFLT3: 控制滤波时钟和滤波宽度。 EINTPEND: 这个是中断挂起寄存器,清除时要写1,后面还有几个是写 1清除。当 一个外部中断(EINT4-EINT23)发生后,那么相应的位会被置 1。为什么没有EINT0-EINT3, 呵呵,看看SRCPND就知道了,里面没有 EINT4-EINT23的位子,所以有了 EINTPEND。 EINTMASK: 这个简单,是屏蔽中断用的,也就是说位为 1时,此次中断无效。 内部中断: 内部中断有8个寄存器,下面逐一来看。 寄存器: SUBSRCPND: 当一个中断发生后,那么相应的位会被置1,表示一个中断发生了。 INTSUBMSK: 与上一个是一伙的,中断屏蔽寄存器 INTMOD: 中断的方式。一个中断可以是普通中断,也可以是快中断,在这里设置,但 只能有一个快中断。 PRIORITY: 优先级寄存器。 SRCPND:当一个中断发生后,那么相应的位会被置1,表示一个或一类中断发生了 INTMSK: 中断屏蔽寄存器。 INTPND: 中断发生后,SRCPND中会有位置 1,可能好几个(因为同时可能发生几个 中断),这些中断会由优先级仲裁器选出一个最紧迫的,然后吧把INTPND中相应位置 1,所 以同一时间只有一位是1。也就是说前面的寄存器置 1是表示发生了,只有INTPND置 1, CPU 才会处理。 INTOFFSET: 用来表示 INTPND中哪一位置 1了,好让你查询,普通中断跳转时查询
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值