




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM中断总结范文 S3C2440的中断寄存器1.中断分两大类内部中断和外部中断。 2.外部中断。 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的位子,所以有了EIN TPEND。 EINTMASK这个简单,是屏蔽中断用的,也就是说位为1时,此次中断无效。 3.内部中断。 内部中断有8个寄存器,下面逐一来看。 寄存器SUBSRCPND当一个中断发生后,那么相应的位会被置1,表示一个中断发生了。 INTSUBMSK与上一个是一伙的,中断屏蔽寄存器,具体屏蔽什么,自己看手册去吧。 INTMOD中断的方式。 一个中断可以是普通中断,也可以是快中断,在这里设置,但只能有一个快中断。 PRIORITY优先级寄存器,不说了。 SRCPND当一个中断发生后,那么相应的位会被置1,表示一个或一类中断发生了。 INTMSK中断屏蔽寄存器。 INTPND中断发生后,SRCPND中会有位置1,可能好几个(因为同时可能发生几个中断),这些中断会由优先级仲裁器选出一个最紧迫的,然后吧把INTPND中相应位置1,所以同一时间只有一位是1。 也就是说前面的寄存器置1是表示发生了,只有INTPND置1,CPU才会处理。 INTOFFSET用来表示INTPND中哪一位置1了,好让你查询,普通中断跳转时查询用。 清除INTPND、SRCPND时自动清除。 4.各寄存器关系下面看图说明5.中断过程。 a如果是不带子中断的内部中断发生后SRCPND相应位置1,如果没有被INTMSK屏蔽,那么等待进一步处理。 B如果是带子中断的内部中断发生后SUBSRCPND相应位置1,如果没有被INTSUBMSK屏蔽,那么SRCPND相应位置1,等待进一步处理,几个SUBSRCPND可能对应同一个SRCPND,对应表如下SRCPND SUBSRCPNDINT_UART0INT_RXD0,INT_TXD0,INT_ERR0INT_UART1INT_RXD1,INT_TXD1,INT_ERR1INT_UART2INT_RXD2,INT_TXD2,INT_ERR2INT_ADC INT_ADC_S,INT_TC INT_CAM INT_CAM_C,INT_CAM_P INT_WDT_AC97INT_WDT,INT_AC97C如果是外部中断EINT0-EINT3发生后SRCPND相应位置1,如果没有被INTMSK屏蔽,那么等待进一步处理。 EINT4-EINT23发生后EINTPEND相应位置1,如果没有被EINTMASK屏蔽,那么SRCPND相应位EINT4-7或EINT8-23置1,如果没有被INTMSK屏蔽,等待进一步处理,几个EINTPEND对应同一个SRCPND,对应表如下SRCPND EINTPENDEINT0EINT0EINT1EINT1EINT2EINT2EINT3EINT3EINT4-7EINT4-EINT4EINT8-23EINT8-EINT23三种中断都等待进一步处理了。 接下来从SRCPND往下看,看INTMSK。 如果中断被屏蔽了,就不用说了(注意快中断也能被屏蔽)。 如果没有被屏蔽,那么会进一步到INTMOD。 如果是快中断,那么直接出来,进入FIQ(即CPU进入快中断模式处理)。 如果是普通中断,那么SRCPND可以有多位置1(FIQ只能有一个),这时就会经过PRIORITY选出一个优先级高的,然后把根据选出的中断把INTPND相应位置1(注意只能选出一个),进入IRQ,让CPU处理。 6.中断的开启。 a如果是不带子中断的内部中断,只需设置INTMSK,让它不屏蔽中断就可以了。 b如果是带子中断的内部中断,需设置INTSUBMSK和INTMSK,让它门不屏蔽中断就可以了。 c如果是外部中断,对于EINT8-23需要设置EINTMASK和INTMSK。 对于EINT0-EINT3只需设置INTMSK。 7.中断的清除。 a.如果是不带子中断的内部中断,只需清除SRCPND,注意清除需位置1。 b如果是带子中断的内部中断,需清除SRCPND和SUBSRCPND,注意先清除SUBSRCPND,再清除SRCPND。 因为,如果你先清除SRCPND的话,然后在清除SUBSRCPND的过程中,SRCPND会以为又有中断发生,又会置1。 也就是说一次中断会响应两次。 所以必须先掐断源头。 c如果是外部中断,对于EINT8-23需要清除EINTPEND和SRCPND(同样注意顺序)。 对于EINT0-EINT3只需清除SRCPND。 一、2440按键中断的步骤1,初始化寄存器GPGCON,设置对应的GPG0,GPG3,GPG5,GPG6,GPG7,GPG11为外部中断的功能接口,它们分别对应外部中断EINT8,EINT11,EINT13,EINT14,EINT15,EINT192,设置外部按键中断的触发方式这里包括EXTINT1和EXTINT2两个寄存器的配置,分别对EINT8,EINT11,EINT13,EINT14,EINT15,EINT19六个外部中断设定!按键没按下时为高电平,被按下后为低电平;所以设定为低电平触发!3,设定各个按键的中断源不屏蔽!这里就是设置寄存器EINTMASK,将对应EINT8,EINT11,EINT13,EINT14,EINT15,EINT19的位置0!也就是不屏蔽!置1表示屏蔽,初始化时为屏蔽的!4,设定寄存器EINTPEND,SRCPND,INTPND(2440官方代码中设置了,个人觉得没必要,测试通过了)官方设置是这样的:将EINTPEND,SRCPND,INTPND中对应的EINT8,EINT11,EINT13,EINT14,EINT15,EINT19位全部置1处理;根据2440文档9-33,14-8,14-15的说明,1=Our interrupt.表示中断发生!It iscleard bywriting“1”PS因为是中断的初始化,复位后怎么会立马有中断请求呢?可能我没能理解这里置1的意思.所以,我对这三个寄存器初始化时没有设置,取默认的复位值,即0x005,将中断服务函数的地址传给对应的中断向量处(重点理解,解释pISR_EINT8_23=(U32)extint8_23)代码为pISR_EINT8_23=(U32)extint8_23;/extint8_23为中断服务函数的地址!pISR_EINT8_23为指向中断向量表的HandleEINT8_23(2440init.s中)./#define pISR_EINT8_23(_ISR_STARTADDRESS+0x34)这里的_ISR_STARTADDRESS=0x33ffff00,为什么是这个数呢,在网上查了很多,有位网友是这样解释的_ISR_STARTADDRESS=_RAM_ENDADDRESS-0x100,那么_RAM_ENDADDRESS又是多少呢(参考2440用户手册1.3.2),因为2440采用了2片32M的SDRAM芯片并接形成32位总线数据宽度。 物理起始地址为0x30000000,再加上64M的空间,就是_RAM_ENDADDRESS的值0x34000000,那这里为什么是_RAM_ENDADDRESS-0x100呢,为什么是减去0x100(256字节的空间)呢?谁能帮我解释下,谢谢答_RAM_ENDADDRESS的值不是0x34000000,而是比其小一些。 _RAM_ENDADDRESS之后还要存放MMU所需的一些数据。 不一定要减去0x100,可以少一些的,但对齐0x100不是很好吗?而且以后也可以扩展。 6,设定外部按键总中断源EINT8_23不屏蔽!注意这里设置的是寄存器INTMSK,而不是EINTMASK;我把INTMSK称为中断源的总屏蔽寄存器,EINTMASK称为各个中断的屏蔽寄存器,不知道叫起来晕不晕,呵呵7,等待中断发生,或者结束8,最后关闭总中断源,设置寄存器INTMSK 二、疑问有点不理解外部按键中断中,当中断发生时,寄存器INTPND,SRCPND,EINTPEND为什么是置1来清除中断请求而不是写0来清除呢?当外部按键没有中断时,寄存器INTPND,SRCPND,EINTPEND中对应的按键中断位会自动写0吗?寄存器INTPND,SRCPND,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南张家界市永定区发展和改革局招聘公益性岗位人员1人考前自测高频考点模拟试题及答案详解参考
- 2025北京首都医科大学附属北京世纪坛医院招聘13人(第三批)模拟试卷及参考答案详解
- 2025年期刊出版项目申请报告范本
- 科技创新引领未来目标实现保证承诺书5篇
- 销售业务合同审核与执行记录表
- 2025-2026学年重庆西北狼教育联盟高二上学期开学考试英语试卷 (解析版)
- 2025年安徽省高校毕业生三支一扶计划招募962人考前自测高频考点模拟试题参考答案详解
- 多场景合同范本器
- 2025国家应急管理部所属单位第二批次招聘1人考前自测高频考点模拟试题及答案详解(典优)
- 培训资源整合工具与学习计划模板
- 学生入队必须掌握的“六知六会一做”
- 2025年中级制图员《理论知识》考试真题(含新版解析)
- 小学教师网络信息安全管理规范
- 腹痛科普课件
- 员工花名册表
- GB/T 7113-2003绝缘软管定义和一般要求
- GB/T 4754-2002国民经济行业分类
- GB/T 35985-2018煤炭分析结果基的换算
- 如何修改一篇作文
- 《人类行为与社会环境》课件
- 2023年中国出版集团有限公司招聘笔试题库及答案解析
评论
0/150
提交评论