基于三星 ARM Cortex-A9 Exynos4412处理器的底层实验(外部中断实验)

【1】正常启动流程

1.设备一上电,中断向量表作为第一段执行程序
2.初始化异常向量表基地址协处理器(默认是0,修改后异常跳转时,PC值=基地址+向量表位置偏移)
3.禁用MMU内存管理单元
4.分配栈空间,初始化各个模式下的栈空间(user栈初始化放在最后)
5.跳转到main执行程序

【2】IRQ中断响应原理

假设产生中断时,CPU当中正在执行一段程序(正常情况),突然之间产生外部中断,整个CPU的相应以及处理流程:
1.CPU相应流程(CPU自己完成)
1)复制备份CPSR到SPSR_IRQ
2)配置CPSR寄存器
设置工作状态为arm态
修改工作模式为IRQ模式
禁用相应中断(IRQ)
3)保存返回地址到LR_IRQ
4)设置PC到异常向量表中的IRQ处理项(0x18)
2.根据异常向量表中的跳转语句跳转到IRQ_Handle处理程序(程序员写的)
1)调整LR的值,为异常结束返回做准备
2)入栈保护寄存器数据
3)跳转到IRQ_Handle处理函数
4)出栈恢复数据
5)返回退出异常程序,并恢复CPSR

【3】中断初始化配置

1.谁产生的中断

2.什么时候产生中断

3.中断怎么到达SOC

4.产生的中断交给哪个CPU去处理

5.同时产生多个中断时,怎么处理

6.当一个IRQ中断正在处理的时候,又来了同类型的一个中断怎么办

【4】GIC中断控制器作用

中断控制器GIC的作用
1.当多个中断同时产生的时候,中断管理器将对这些中断进行排队,将优先级最高的转发给CPU处理,其他再进行排队等待
2.当一个中断正在处理的时候,外设又产生另一个中断,中断管理器会对这个中断进行记忆,等上一个响应完

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值