- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* ⑵ 中断请求 一旦这4个中断请求引脚出现一个或多个中断请求,则: · 如果EINT0或EINT2有请求,源登记寄存器SRCPND[0]或SRCPND[2]被自动置1; · 如果EINT11或EINT19有请求,外部中断登记寄存器EINTPEND[11]或EINTPEND[19]被自动置1,并且源登记寄存器SRCPND[5]被自动置1; · 由于这些中断都没有被屏蔽,经过优先权仲裁器,优先权最高的中断请求,在中断登记寄存器INTPND中的对应位被置1,中断偏移寄存器INTOFFSET中自动被设置相应的偏移量; · 作为IRQ请求送ARM920T内核; · ARM920T CPU的当前程序状态寄存器CPSR中如果I位为0时,表示允许IRQ中断,当前正在执行的指令执行结束后,CPU响应IRQ请求。 * ⑶ 中断响应 在中断响应过程,ARM920T CPU自动完成以下操作: · 将PC的值,保存到IRQ方式下的连接寄存器LR中,返回时用; · 将当前程序状态寄存器CPSR内容保存到IRQ方式下的保留程序状态寄存器 SPSR中; · 强制设置程序状态寄存器的方式位CPSR[4:0]为10010,系统进入IRQ方式; · 强制设置程序状态寄存器的T状态位CPSR[5]为0,系统进入ARM状态; · 强制设置程序状态寄存器的IRQ禁止位CPSR[7]为1,禁止CPU再次响应IRQ请求; · 通常(没采用高向量地址配置)将IRQ异常入口地址0程序计数器PC。此后程序从0执行,分支到IRQ中断服务程序。 * 发生异常后,异常入口地址及这些地址中存放的指令见表7-48,表中对应IRQ的入口地址0,存放的是分支指令B HandlerIRQ,HandlerIRQ通常是IRQ中断服务程序的入口地址。 然而,由于表7-48中分支指令B的分支范围为±32MB,当中断服务程序在内存中保存后,如果首地址离异常入口地址较远,超过±32MB时,需要增加一段代码。这段代码应该与异常入口地址较近,并且能够分支到异常(中断)服务程序。例如对于中断请求IRQ,有以下代码: * HandlerIRQ ;标号,程序入口, ;由0B HandlerIRQ ;指令分支到此处 SUB SP,SP,#4 ;修改栈指针,在栈顶留出4 ;字节空间,后续指令 ;STR R0,[SP,#4]将R0内容填入 STMFD SP!,{R0} ;保存工作寄存器R0内容 LDR R0,=HandleIRQ ;取出保存HandleIRQ异常向量的表地址 LDR R0,[R0] ;表地址的内容,即HandleIRQ地址,送R0 STR R0,[SP,#4] ;R0的值,即HandleIRQ地址,存堆栈 LDMFD SP!,{R0,PC} ;恢复工作寄存器R0内容;出栈 ;HandleIRQ地址到PC,实现分支 * 上述代码中的HandleIRQ是IRQ中断服务程序的入口地址,各异常(中断)服务程序的入口地址在异常向量表中已经定义。 * ;异常向量表 HandleReset # 4 ;Reset异常服务程序入口地址,占4字节 HandleUndef # 4 HandleSWI # 4 HandlePabort # 4 HandleDabort # 4 HandleReserved # 4 HandleIRQ # 4 ;IRQ中断服务程序入口地址,占4字节 HandleFIQ # 4 * ⑷ 中断向量表 进入IRQ中断服务程序后,要区分是哪个中断源提出了请求,并且应该转到对应的服务程序。 中断登记寄存器INTPND的32位对应的32个中断源,有32段服务程序与之相对应。用32段服务程序中每段程序的起始地址,可以建立一个表,称为中断向量表。中断向量表如下: * ;中断向量表 HandleEINT0 # 4;HandleEINT0是EINT0中断源
您可能关注的文档
最近下载
- 河南省信阳市2024-2025学年普通高中高三第二次教学质量检测英语试卷含答案.pdf VIP
- 解读《GB_T 23850-2024工业高氯酸钠》全面解读.docx VIP
- 总经理股东会汇报.docx
- 2025-2030中国二甲基氨基丙胺(DMAPA)行业市场现状供需分析及投资评估规划分析研究报告.docx
- 上海市浦东新区立信会计金融学院附属高行中学2025-2026学年高三上学期9月教学质量检测数学试题+答案.docx VIP
- 点石斋画报.12集.24册.申报馆编印.1884-1889年.pdf VIP
- 印学话西泠 教学课件.pptx VIP
- 慢性呼吸疾病肺康复护理专家共识.pptx
- 七年级数学上册动点问题练习.docx VIP
- GB50666-2011 混凝土结构工程施工规范.docx
原创力文档


文档评论(0)