工具/软件:
在我的 j784S4 EVM 板中、GTC 时钟由 CTRL_MMR0_CFG0:CFG0_GTC_CLKSEL 配置为 MAIN_PLL3_HSDIV1_CLKOUT:
MAIN_PLL3 clkout 为 1GHz:
MAIN_PLL3 的 HSDIV1 为 7
因此、GTC 频率为: 1GHz/(HSDIV1+1)= 125MHz
我使用以下 spin_time 函数根据 GTC 频率旋转一些时间:
void SPIN_TIME (u32_L20_t WAIT_TIME)
{
uint64_t ts_start;
uint64_t ts_CURR;
uint32_t time_period;
uint64_t time_ran;
TIME_PERIOD = GTC_GET_PERIOD ();/*返回以秒为单位左移 40、
已验证周期与 125MHz */匹配
TS_START = GTC_COUNTER_get64 ();
应该做
{
TS_CURR = GTC_COUNTER_get64 ();
time_ran =((uint64_t)(ts_CURR - ts_start)* time_period)>> 20u;
}while (time_ran <(uint64_t) wait_time);
返回;
}
但我只得到我设置的旋转时间的一半。 当我从第 77 行第 78 行走时、预计是 40ms、但总能得到它应该得到的数字的一半左右
我已经使用不同的 10ms 500ms、1s 进行了测试、并且始终会得到大约一半的喷溅。
还有另一个问题:即使我设置 CNTCT.HDBG=1、当我停止在调试器中时、GTC 计数器也应该冻结、但它会不断增加
如何在调试过程中停止计数器嘀嗒声?