前言
定时/计数器是硬件系统运行状态的忠实记录者,它不受CPU直接干预,自己独立运行,可以完成计时、定时、中断、实时时钟等功能。常用功能:
(1)定时产生中断信号
(2)用作产生延时函数delay()
(3)作计数器,用于检测程序执行时间(这个很好用)。
1.平台说明
硬件平台:ZYNQ7z202clg400-2的创龙核心板
官方参考文档:《UG585 - Zynq-7000 SoC Technical Reference Manual (ver1.12.2)-技术参考手册.pdf》,见附录。
2.定时器系统介绍
首先,zynq 7000 soc芯片具有2个ARM核。每个Cortex-a9处理器都有自己的专用32位定时器和32位看门狗定时器.两个处
理器共享一个全局64位定时器。
时钟:这些定时器的时钟频率固定为CPU时钟频率(Cpu_6x2x)的1/2,即CPU_3x2x时钟。
同时,在系统级别上,有一个24位的看门狗定时器和两个16位的三重定时器/计数器(TTC)。
时钟:系统看门狗计时器的时钟频率为CPU频率的1/4或1/6(即Cpu_1x时钟),或是来自MIO引脚或PL的外部时钟。两个三重定时
器/计数器(TTC)的时钟为CPU频率的1/4或1/6(即Cpu_1x时钟),或是来自MIO引脚或PL的外部时钟。如下图:
3.全局定时器(GT)
全局定时器在Cortex-A9 MPCore技术要求文档中有完整的文档,第4.3和4.4节(参见附录A,附加资源)。全局计时器是一个64位
递增的定时器。全局计时器与私有定时器映射在同一个地址空间中的内存,仅在安全状态下在重置时被访问。所有Cortex-A9处
理器都可以访问全局定时器。每个Cortex-a9核都有一个64位的本地比较器,用于在全局计时器达到比较器值时产生私有中断。
(1)时钟要求:
GTC总是以CPU频率的1/2为时钟,即为(Cpu_3x2x)。
根究前一章节,可以知道CPU频率(Cpu_6x2x)设置为666.666M,则Cpu_3x2x为333.333MHz。
(2)寄存器描述:
关于每个寄存器的详细功能介绍,请阅读UG585