该文章内容根据朱老师物联网大讲堂所学内容整理。
本文仅对S5PV210中断系统作梳理。
为中断响应而做的预备工作:
第一阶段 系统中断初始化
1. 设置系统异常向量表
发生异常时,硬件自动跳转到异常向量表,再由异常向量表中的函数地址跳转到IRQ/FIQ Handler(断点保护;由SVC->IRQ/FIQ模式,设置中断栈;断点恢复,中断返回)
2、禁止所有中断(以防打开未定义的中断,导致程序跑飞)
3、Reset中断控制寄存器和中断函数存储寄存器
第二阶段 绑定所需中断并使能
1、设置绑定特定中断处理函数到寄存器中
2、特定中断源使能
第三阶段 设置中断发生时处理过程
1、中断源筛选
2、获取该中断源处理函数首地址并跳转
硬件产生中断时CPU处理流程:
1. 第一步,经过异常向量表跳转入IRQ/FIQ的入口
2. 第二步,做中断现场保护(在start.S中),然后跳入isr_handler
3. 第三步,在isr_handler中先去搞清楚是哪个VIC中断了,然后直接去这个VIC的ADDR寄存器中取isr来执行即可。
4. 第四步,isr执行完,中断现场恢复,直接返回继续做常规任务。