外设中断产生 + CPU响应中断并返回的控制流程

本文介绍了一种基于三星S5PV210 CPU的按键中断处理流程。首先配置按键外设对应的GPIO模式为EXT_INT,设置中断触发方式及寄存器。接着通过初始化系统异常控制器,绑定中断服务函数至VICnVECTADDR寄存器并使能对应中断源。当按键产生中断时,CPU读取异常向量表信息,调用ISR中断处理函数。

假设外设为物理按键,需要连接到支持中断功能的对应的GPIO上。
CPU型号为:三星的S5PV210
本文所描述的中断控制流程适用性广泛,因为主流CPU的中断设计原理是相通的,只有细节的差异。


第一部分:按键外设对应中断功能的配置
1、按键对应的GPIO模式设置:设置为EXT_INT模式
2、该外设对应的中断触发模式设置:电平或边沿触发
3、该外设中断Mask和Pend寄存器位设置
4、编写该外设中断对应的ISR中断处理函数程序


第二部分:CPU内部响应中断的配置
Part1:前期准备工作
1、初始化系统异常控制器函数system_init_exception()
   功能如下:
   绑定异常向量表对应的中断服务函数;
   关闭所有中断使能;
   选择中断类型为IRQ;
   清空中断向量控制地址寄存器VICxADDR
   
2、绑定写好的中断处理函数程序ISR到中断控制器对应的VICnVECTADDR寄存器

3、使能对应中断向量编号的中断源,即外设按键对应的中断源编号

Part2:外部按键产生中断后,CPU响应该中断
1、CPU读取异常向量表信息,并跳转到IRQ函数的入口地址
2、先进行程序现场保护(在Start.s完成),然后跳转到irq_handler()函数,
3、该irq_handler()函数功能用于判断具体哪个中断向量寄存器VIC发生中断,并调用对应的外设按键对应的ISR中断处理函数
4、ISR函数执行完毕后,程序现场恢复(在Start.s完成),并返回到主函数继续执行后续的程序。


                
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值