文章目录1. 关于通用定时器2. 通用定时器功能描述3. 通用定时器寄存器概述3.1 AArch32 通用定时器寄存器概述缩写缩写全拼翻译SPIsShared Peripheral Interrupts共享外设中断PPIsPrivate Peripheral Interrupts私有外设中断SGIsSoftware Generated Interrupts软件生成中断1. 关于通用定时器通用定时器可以根据递增的计数器值来调度事件和触发中断。它提供通过 PPIs(私有外设中断) 生成定时器事件。事件流的生成。2. 通用定时器功能描述Cortex-R52 处理器在Cluster的每个内核提供一组定时器寄存器。这些定时器包括一个 EL1 物理定时器一个 EL2 物理定时器一个虚拟定时器Cortex-R52 处理器不包含系统计数器。系统计数器位于 SoC 中。系统计数器的值通过一个同步二进制编码的 64 位总线CNTVALUEB[63:0]分发给 Cortex-R52 处理器。由于CNTVALUEB来自一个通常运行频率低于处理器主时钟 CLKIN 的系统计数器因此提供了CNTCLKEN输入作为CNTVALUEB总线的时钟使能信号。这允许对CNTVALUEB[63:0]总线应用多周期路径。CNTCLKEN在 Cortex-R52 处理器内部被寄存后才用作CNTVALUEB[63:0]寄存器的时钟使能。下图显示了该接口。当内部寄存后的CNTCLKEN时钟使能信号有效时CNTVALUEB[63:0]总线上的值必须保持稳定。CNTCLKEN必须与CLKIN同步且平衡并且其翻转频率必须是处理器CLKIN的整数比。每个定时器都向核心提供一个 PPI 中断。3. 通用定时器寄存器概述在每个核心内一组通用定时器寄存器被分配到 (coproc0b1111) 空间。3.1 AArch32 通用定时器寄存器概述下表显示了 AArch32 通用定时器寄存器。Table 1: AArch32 Generic Timer registersNameCRnOp1CRmOp2ResetWidthDescriptionCNTFRQc140c00UNK32-bitCounter-timer Frequency registerCNTPCT-0c14-UNK64-bitCounter-timer Physical Count registerCNTKCTLc140c100x0000000032-bitCounter-timer Kernel Control registerCNTP_TVAL0c20UNK32-bitCounter-timer Physical Timer TimerValue registerCNTP_CTL01The reset value for bit[0] is 032-bitCounter-timer Physical Timer Control registerCNTV_TVAL0c30UNK32-bitCounter-timer Virtual Timer TimerValue registerCNTV_CTL01The reset value for bit[0] is 032-bitCounter-timer Virtual Timer Control registerCNTVCT-1c14-UNK64-bitCounter-timer Virtual Count registerCNTP_CVAL-2c14-UNK64-bitCounter-timer Physical Timer CompareValue registerCNTV_CVAL-3c14-UNK64-bitCounter-timer Virtual Timer CompareValue registerCNTVOFF-4c14-UNK64-bitCounter-timer Virtual Offset registerCNTHCTLc144c10The reset value for bit[2] is 0 and for bits[1:0] is 0b1132-bitCounter-timer Hyp Control registerCNTHP_TVALc144c20UNK32-bitCounter-timer Hyp Physical Timer TimerValue registerCNTHP_CTLc144c21The reset value for bit[0] is 032-bitCounter-timer Hyp Physical Timer Control registerCNTHP_CVAL-6c14-UNK64-bitCounter-timer Hyp Physical CompareValue register