- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、S5PV210中中断的特点
1、特点
? Supports 93 vectored IRQ interrupts? Fixed hardware interrupts priority levels? Programmable interrupt priority levels? Supports Hardware interrupt priority level masking? Programmable interrupt priority level masking? Generates IRQ and FIQ? Generates Software interrupt
2、FIQ与IRQ的区别
1)FIQ和IRQ并不是中断源,而是中断的类型,我们可以将一个中断源设置成FIQ也可以设置成IRQ。
2)FIQ是快速中断,IRQ是一般中断,FIQ的响应时间比IRQ短。
3)FIQ的优先级高于IRQ。
4)FIQ的分组寄存器(R8~R14)比IRQ(R13~R14)多。当在FIQ产生的时候,R8~R14不需要保存,响应的速度会快。
3、S5PV210的中断源
二、原理图分析
三、如何以中断的方式来检测按键:GPH2_2(EINT18) 、GPH2_3(EINT19)
按键的检测:轮询:将GPIO配置成输入…….
中断:将GPIO配置成外部中断…….
1、GPIO的配置,将一个GPIO配置成外部中断
2、外部中断的触发方式
(高电平、低电平、上升沿、下降沿)
3、外部中断的开关寄存器
0 = Enables Interrupt 打开中断1 = Masked 关闭中断
4、外部中断判断寄存器
0 = Not occur 外部中断没有发生
1 = Occur interrupt 触发了中断
该寄存器的作用:
1)读该寄存器,可以知道对应的中断源是否触发。
2)写该寄存器,可以实现清除中断,如果一个中断不清除,CPU就会认为该中断还是存在的,就会再次触发该中断,形成循环。所以我们在中断处理程序中,需要清除中断。
清中断的方法:
如果一个中断已经触发,该寄存器的相应位会自动置1,我们需要向该位写个“1”,就可以将该位清0,写“0”无效。这是PEND寄存器的特点
例如:清EINT18
EXT_INT_2_PEND |= (12);
5、IRQ的状态寄存器
通过该寄存器,可以得到某个IRQ类型中断源是否发生的状态。
6、中断类型设置寄存器
7、打开中断的寄存器
例:打开EINT18和EINT19
VIC0INTENABLE |= (116);
EXT_INT_2_MASK = ~(0x32);
8、关闭中断的寄存器
例:关闭EINT18和EINT19
VIC0INTENCLEAR |= (116);
EXT_INT_2_MASK |= (0x32);
9、VIC向量地址寄存器
ISR ----- Interrupt Service Routine 中断处理程序
该寄存器的内容是当前正在响应的中断服务程序的入口地址,我们可以通过该地址去调用中断服务程序。向该寄存器写任何值,都可以清除中断,一般情况下,中断的清除都是在ISR的结束位置。
10、每个中断源的向量地址寄存器
注意:
该每个VIC(共有4个)有32个这样的寄存器,当我们在做中断初始化的时候,需要安装中断,安装中断的时候,要将中断服务程序的入口地址,写到对应的向量地址寄存器中。
例:
void eint18_19_isr(void)
{
//点灯
//清中断
}
如何实现中断向量的安装???
VIC0VECTADDR16 = (unsigned int)eint18_19_isr;
EINT16~EINT31的向量地址寄存器 = 中断服务程序的入口地址
四、中断的响应过程。
以外部中断EINT18为例,分析中断的响应过程。
1、start.S
_start:
ldr sp, =0//初始化管理模式的stack,stack在DDR2中
mov r0, #0x53
msr CPSR, r0 //对CPSR[7:0] = 010 10011,管理模式,arm状态、关闭FIQ、IRQ打开
b main //进入C环境
2、当一个IRQ中断发生的时候,首先进入IRQ中断的入口地址:
PC = 0 分析0x18地址上是什么内容???
0x18地址是s5pv210内容iROM中的BL0,samsung固化。
3、在iRom的0x18地址有一个跳转指令,跳转到iRAM中异常中断向量表中。
PC = 0xD0037418 ???
4、异常中断向量的安装
int_init(void
您可能关注的文档
最近下载
- 中国云新南航空公司acars系统培训.ppt VIP
- 马克思主义宗教观87814.ppt VIP
- 《城市轨道交通通信与信号》教案 第11课 城市轨道交通通信系统(一).docx VIP
- 大众蔚领保养手册.docx VIP
- 部编人教版小学4四年级语文上册(全册)优秀教案设计.doc VIP
- 道德与法治新教材培训心得体会.pptx VIP
- 2026年高考化学大一轮复习第3讲离子共存 离子的检验与推断.pptx VIP
- 冯唐成事心法读书札记.docx VIP
- 第1课 时代精神的精华-【中职专用】2024年中职思想政治《哲学与人生》金牌课件(高教版2023·基础模块).pptx VIP
- 《新闻采访与写作》电子课件 第三章 新闻采写的客体——新闻事实.ppt VIP
文档评论(0)