作者:冰凌清泽_712 | 来源:互联网 | 2023-07-31 19:09
PS 基于 Arm 架构,利用两个 Cortex-A9 处理器 (CPU) 和 GIC pl390 中断控制器。
中断分类:私有外设中断(PPI)、软件生成中断(SGI)、共享外设中断(SPI)。
1、私有外设中断(PPI)
每个CPU都有一组私有外设中断,包括全局定时器、私有看门狗定时器、私有定时器和来自PL的FIQ/IRQ。私有定时器的时钟频率为 CPU 时钟频率的一半。
2、软件生成中断(SGI)
每个 CPU 都可以使用软件生成中断中断自身、另一个 CPU 或两个 CPU。CPU 通过自己的专用总线将 SGI 中断号写入 ICDSGIR 寄存器并指定目标 CPU 来生成 SGI。 每个 CPU 都有自己的一组 SGI 寄存器来生成 16 个软件生成的中断中的一个或多个。
3、共享外设中断(SPI)
共享外设中断由 PS 和 PL 中的各种 I/O 和存储控制器生成,它们被路由到任一个或两个 CPU, 来自 PS 外设的 SPI 中断也可以路由到 PL。
4、中断优先级
所有的中断请求,无论是 PPI、SGI 还是 SPI,都分配了一个唯一的 ID 编号,以用于中断控制器的仲裁。 中断分配器保存每个 CPU 的中断挂起列表,并从中选择优先级最高的中断,然后把它发送到 CPU 接 口。如果具有相同优先级的两个中断同时到达,具有最低中断 ID 的会首先被发送。
GIC中断控制器支持最小16级,最大256级优先级,优先级设置值越小,优先级越高。
在SDK中,我们可以通过xscugic_hw.h头文件查看默认情况下的最大优先级等级数量,该参数可根据需要修改。