1、要让 Keil 显示准确的时间,需要在 Debug->Trace 界面提供芯片的内核时钟频率信息。调整时钟频率前需要打开 Enable,调整完毕后可以根据需要关闭 Enable。
疑问1:若芯片在运行过程中,需要动态调整主频,是否会导致 EventRecorder 计时异常?
疑问2:EventRecorder 依赖芯片提供的时间戳,在实现上有时间戳频率信息,为什么 Keil 不读取这个时间戳频率信息?
2、EventRecorder 依赖于1个32位的时间戳生成器,当没有硬件32位定时器时,需要软件配合将硬件上的16位\24位计时器,扩展成32位计时器。
3、软件扩展定时器时,一般依赖于定时器的溢出中断。此时需要注意,定时器的中断优先级应足够高,确保大于所有使用 EventRecorder 接口的其他中断,否则可能会导致中断中记录事件时的时间戳异常(定时器溢出,但软件无法及时处理溢出事件,导致32位时间戳回退)。Keil 上的分析