这是另一个应该是微不足道的问题,但可能会变成一个为期一周的任务,就像 S32G2 中的其他问题一样:如何[i]启用 A53 的系统计数器?这是一个关键的 64 位时钟,由 S32G2 分配给所有四个 A53 内核,用于等待、超时等无处不在的目的。
该时钟的根功能在内核外部,这是必须的。这是托管内核的 SoC 的责任。ARM(参见 A53 TRM)建议使用一个接口,例如存在一个名为“CNTCR”的寄存器,以实现它所谓的“通用定时器”。对整个 S32G2RM 的各种关键字(例如“系统计数器”、“CNTCR”和“通用定时器”)进行自上而下的搜索,没有得到任何有价值的结果。
作为实验,我查看了另一个 SoC,即 LS1046A。在 LS1046A 的 RM 中,我立即看到一个名为“系统计数器”的章节。明显的。在那一章中,解释了四个寄存器,一个用于设置频率(CNTFID0),一个用于启用时钟(CNTCR),一对用于读取时钟的 64 位时间(CNTCV)。明显的。这是任何人都想在公开场合做的唯一三件事。从我决定要一个时钟到时钟开始工作之间,只过去了五分钟。为什么在 S32G2 上做这么简单又重要的事情这么难?如果 S32G2 中的其他一切都像我已经体验过的那样,那么这款处理器的真实成本比预期的要高得多。
[i]如何配置和启用 S32G2 为其 A53 内核提供的系统计数器?