This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的支持部门:
到目前为止、我们 使用 GTC 计时器 计数器(64位)作为 SOC 全局共享时间戳。 我们发现从该寄存器 GTC_CNTCV_LO、GTC_CNTCV_HI 中偶尔会收到错误数据的问题。
我们编写了测试代码来计算任务周期、在 MCU1-0中将任务周期设置为10ms、并记录了最大/最小/平均数据。 以下是测试结果。
平均数据没有问题(约9341us)、但最大值为1202062us。 下面是测试代码示例:
#define ticks_to_US 200
GetSystemTimer_u64 ()
{
uint63 cur_t = 0;
CUR_t =(*(volatile uint64_t*)(0x00a90008))/ TICKS_TO_US;
asm (" dsb");asm (" isb" );
}
任务(APP_10ms)
{
Timer_Duration = GetSystemTimer_u64 () - Timer_start;
Timer_start = GetSystemTimer_u64 ();
}
上图仅显示了 Timer_Duration 的摘要
您能给我们任何可能导致该问题的提示吗? 非常感谢您的支持。
尊敬的 Yang:
还有其他并行运行的东西吗? 我们来看其他一些较高优先级的任务来阻止此任务持续时间更长。 有可能吗?
此致、
Brijesh
否、尚未出现此问题。
在代码中、您是否可以获取当前时间与前一时间的不同、然后 绘制此差异、而不是除以 GTC 计时器值?
Rgds、
Brijesh