2dmin 发表于 2012-6-13 09:41:45

cortex-a8 S5PC100中断机制

1.向量中断概述
S5PC100集成了3个向量中断控制器(后文用VIC来表示),采用的是ARM基于PrimeCell技术下的PL192核心,另外还包括了3个TZIC,即针对于TrustZone技术所涉及的中断控制器(后文都用TZIC表示),其核心为SP890。
S5PC100下支持94个中断源,其中TZIC为TrustZone单独设计以了一个安全软件中断接口,它提供了基于安全控制技术的nFIQ中断以及屏蔽来自非安全系统下的所有中断源。以下是S5PC100中断控制器的特点:
●支持94个向量IRQ中断
●灵活的硬件中断优先级
●可编程的中断优先级设置
●支持硬件上的优先级屏蔽
●支持编程上的优先级屏蔽
●内置IRQ/FIQ/软件中断产生器
●内置用于调试方案的寄存器
●原始中断状态寄存器/中断源请求状态寄存器
●支持特权模式下的限制性存取数据
当S5PC100收到来自片内外设和外部中断请求引脚的多个中断请求时,S5PC100的中断控制器在中断仲裁过程后向S5PC100,内核请求FIQ或IRQ中断。中断仲裁过程依靠处理器的硬件优先级逻辑,在处理器这边会跳转到中断异常处理例程中,执行异常处理程序,这个时候VICADDRESS寄存器的值就是仲裁后中断源对应的(ISR)中断处理程序的入口地址。
S5PC100的中断控制器的任务是在有多个中断发生时,选择其中一个中断通过IRQ或FIQ向CPU内核发出中断请求。实际上,最初CPU内核只有FIQ(快速中断请求)和IRQ(通用中断请求)两种中断,其他中断都是各个芯片厂家在设计芯片时,通过加入一个中断控制器来扩展定义的,这些中断根据中断的优先级高低来进行处理,更符合实际应用系统中要求提供多个中断源的要求,除此之外,向量中断控制器比以前的中断方式更加灵活,方便,把判断的任务留给了硬件,使得中断编程更为简洁。
在整个S5PC100的中断向量控制器中,可以看到所有中断源会先进入TZIC仲裁单元,该单元需要配置为是否可通过该中断源到VIC单元,默认下是可以通过的,即默认为非安全模式,这样所有中断直接到VIC下仲裁以及处理。
2.S5PC100中断控制
(1)程序状态寄存器的F位和I位。
如果CPSR程序状态寄存器的F位被设置为1,那么CPU将不接受来自中断控制器的FIQ(快速中断请求),如果CPSR程序状态寄存器的I位被设置为1,那么CPU将不接受来自中断控制器的IRQ(中断请求)。因此,为了使能FIQ和IRQ,必须先将CPSR程序状态寄存器的F位和I位清零,并且中断屏蔽寄存器INTMSK中相应的位也要清零。
(2)中断模式(IntSelect)。
Cortex-A8提供了2种中断模式,即FIQ模式和IRQ模式。所有的中断源在中断请求时都要确定使用哪一种中断模式。
3.S5PC100中断源简介
在该芯片中,有三个VIC单元,其中VIC0涵盖了系统,DMA,定时器的中断源,VIC1包含了ARM核心,电源管理,内存管理,存储管理的中断源,VIC2则包含了多媒体,安全扩展等中断源,限于篇幅,这里只是简要的介绍,详细请读者自行查看用户手册。

byalxj 发表于 2019-10-26 07:14:11

tiny2010 发表于 2020-2-25 09:00:44

h09721 发表于 2020-2-26 09:03:27

页: [1]
查看完整版本: cortex-a8 S5PC100中断机制