Cortex-A7中断系统
-
Cortex-A7中断向量表
中断向量表主要功能是描述了中断对应的中断服务函数。
Cortex-A7中断向量表有8个中断,其中重点关注IRQ。需要用户自己去定义中断向量表。 -
中断向量表偏移
裸机例程都是从0x87800000开始的,因此要设置中断向量偏移。 -
GIC中断控制器
同NVIC一样,GIC用于管理Cortex-A7的中断。GIC提供了开关中断,设置优先级。 -
IMX6U中断号
为了区分不同的中断,引入了中断号。ID0-15是给SGI,16-31是给PPI,剩下的32-1019给SPI(共享中断),比如GPIO中断和串口中断。
6ULL支持128个中断 -
中断服务函数编写
一个是IRQ中断服务函数的编写,另一个就是在IRQ中断服务函数里面去查找并运行的具体的外设中断服务函数。
实验程序编写
1.编写按键中断例程
KEY0使用UART1_CTS这个IO。编写UART1_CTS的中断代码。
2.修改start.s
添加中断向量表,编写复位中断函数和IRQ中断服务函数。
编写复位中断服务函数,内容如下:
1. 关闭I,D Cache 和 MMU。
2. 设置处理器9种工作模式下对应的SP指针。要使用中断,必须设置IRQ模式下的SP指针。索性直接设置所有模式下的SP指针。
3. 清除BSS段。
4. 调到C函数,也就是main函数。
3.CP15协处理器
MR