




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页s3c2410中断处理程序s3c2410中断程序
在此要注意的是区别中断向量表和异常向量表。中断发生后总是从IRQ或者FIQ异常入口处进入,然后跳转到相应的异常处理程序处执行,这个异常处理程序一般都是进行查找中断向量表的操作,然后调用中断处理程序。
以下是在应用中中断处理实现的过程:从中不难体会到中断的处理过程。
定义中断向量表的物理地址:
代码
.equpISR_DABORT,(_ISR_STARTADDRESS+0x10)
.equpISR_RESERVED,(_ISR_STARTADDRESS+0x14)
.equpISR_IRQ,(_ISR_STARTADDRESS+0x18)
.equpISR_FIQ,(_ISR_STARTADDRESS+0x1c)//异常向量表
……………………
.equpISR_EINT0,(_ISR_STARTADDRESS+0x20)//中断向量表
.equpISR_EINT1,(_ISR_STARTADDRESS+0x24)
.equpISR_EINT2,(_ISR_STARTADDRESS+0x28)
.equpISR_EINT3,(_ISR_STARTADDRESS+0x2c)
将中断处理程序入口地址放入中断向量表:
代码
pISR_EINT0=(unsignedint)isrEINT0;//isrEINT0中断处理程序
pISR_EINT1=(unsignedint)isrEINT1;
定义中断处理程序:
代码
.externInterrupt_Rbutton
.globalisrEINT0
isrEINT0:
IRQHandleInterrupt_Rbutton
定义异常向量表:
代码
bHandlerUndef/*handlerforUndefinedmode*/
bHandlerSWI/*handlerforSWIinterrupt*/
bHandlerPabort/*handlerforPAbort*/
bHandlerDabort/*handlerforDAbort*/
.longFileIDTable/*id*/
bHandlerIRQ/*handlerforIRQinterrupt*/
bHandlerFIQ
定义异常处理函数:
代码
HandlerFIQ:HANDLERHandleFIQ
HandlerIRQ:HANDLERHandleIRQ
HandlerUndef:HANDLERHandleUndef
HandlerSWI:HANDLERHandleSWI
HandlerDabort:HANDLERHandleDabort
HandlerPabort:HANDLERHandlePabort
异常处理宏HANDLER的定义:
代码
.macroHANDLERHandleLabel
subsp,sp,#4/*decrementsp(tostorejumpaddress)*/
stmfdsp!,{r0}/*PUSHtheworkregistertostack(lrdoes'tpushbec
auseitreturntooriginaladdress)*/
ldrr0,=HandleLabel/*loadtheaddressofHandleXXXtor0*/
ldrr0,[r0]/*loadthecontents(serviceroutinestartaddress)of
HandleXXX*/
strr0,[sp,#4]/*storethecontents(ISR)ofHandleXXXtostack*/
ldmfdsp!,{r0,pc}/*POPtheworkregisterandpc(jumptoISR)*/
.endm
定义IRQ中断处理宏IRQHandle:
代码
.macroIRQHandleisrHandle:
stmdbsp!,{r0-r11,ip,lr}/*saver0-r11,ip,lr*/
ldrr0,=isrHandle
movlr,pc
bxr0/*jumptouser_handle(void)*/
ldmiasp!,{r0-r11,ip,lr}/*restorer0,ip,lr*/
subspc,r14,#4/*returnfrominterrupt*/
.endm
申明IRQ异常的服务程序为:IsrIRQ,即,发生IRQ异常时,执行“bHandlerIRQ”即是
运行IsrIRQ代码:
代码
ldrr0,=HandleIRQ@Thisroutineisneeded
ldrr1,=IsrIRQ@ifthereisn't'subspc,lr,#4'at0x18,0x1c
strr1,[r0]
IRQ异常处理程序:
代码
IsrIRQ:
subsp,sp,#4@reservedforPC
stmfdsp!,{r8-r9}
ldrr9,=INTOFFSET
ldrr9,[r9]
ldrr8,=HandleEINT0
addr8,r8,r9,lsl#2
ldrr8,[r8]
strr8,[sp,#8]
ldmfdsp!,{r8-r9,pc}
在嵌入式系统中异常向量表和中断向量表都是存于FLASH起始的一段空间中。而异常处理和中断处理程序都是运行在RAM中的。
由上可以知道,当一个IRQ中断发生时,CPU将从0X18(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小自考汉语言文学2024年学习习惯试题及答案
- 深度研究2024年统计学考试试题及答案
- 小学六年级文学常识试题及答案
- 汽车维修常用材料知识试题及答案
- 二手车交易流程详解试题及答案
- 上海bim工程师试题及答案
- 四川省绵阳江油市2022-2023学年高一下学期期中考试生物学试题(含答案)
- 美容师实操技能要求与公务员省考试题及答案
- 期末诚信考试教育
- 2024年抽样误差计算试题答案
- 新能源汽车驱动电机及控制技术 课件 项目4 驱动电机控制系统结构原理与检测
- 小学生防诈骗课件
- 2025年菠萝种植市场分析报告
- 专题05 首字母填空20篇(名校期末真题)-八年级英语下册重难点讲练全攻略(牛津上海版)
- 湖南省宁远一中2024-2025学年高一下学期第一次月考化学试卷(原卷版+解析版)
- 县域学前教育普及普惠培训
- 2024-2025学年高中化学 主题5 生物资源 农产品的化学加工 课题1 由大豆能制得什么教学实录 鲁科版选修2
- 2025年浙江义乌中国小商品城进出口有限公司招聘笔试参考题库附带答案详解
- 苏轼诗文整合复习
- 新形势下耕地保护的新挑战与对策
- 2025年国家核安保技术中心招考聘用24人自考难、易点模拟试卷(共500题附带答案详解)
评论
0/150
提交评论