S5PV210的中断体系结构:S5PV210的中断控制器是由4个向量中断控制器(VIC)、ARMPrimeCell PL192 和 4个 TrustZone Interrupt Controller (TZIC)共同组成,S5PV210共支持93个中断源(由32bit支持32个中断源,故93个需4个VIC)。
ARM有两种中断,分别为IRQ和FIQ,可读取VIC0IRQSTATUS和VIC0FIQSTATUS寄存器可以确定使用哪种中断,写入VICINTSELECT寄存器可以为中断源选择使用哪种中断处理。
对中断控制器的操作先熟悉下图。主要是模式(VIC)、(VIC port no)32bit中对应的位、中断号数和何种中断请求。
除了上面关于IRQ和FIQ相关的寄存器,还有一些相当重要的寄存器需要了解。
VICINTENABLE/VICINTENCLEAR寄存器:中断使能开关
VICSOFtiNT/VICSOFTINTCLEAR寄存器:软中断开关 VICPROTECTION寄存器:中断保护
VICADDRESS/VICVECTADDR寄存器:向量地址寄存器
外部中断在GPIO:
如上图,需要对对应功能选定引脚。
相关的裸机代码可包含如下内容:
1、 中断相关初始化
2、 初始化中断控制器
3、 保存需要处理的中断的中断处理函数的地址
4、 清除需要处理的中断的中断处理函数的地址
5、 使能中断
6、 禁止中断
7、 读中断状态
8、 通用中断处理函数
9、 其他一些安全机制