Part Number:AM2732
有两个问题请教各位:
1. 我这边运行基于AM2732的mmwave demo,串口打印的启动时间中SBL Total Time Taken,就是上电后到开始运行APP所使用的时间吗?
2. 请问下该如何在程序中获取运行的时间,比如计算运行一段程序或等待一个信号量所使用的时间?
Gary Lu:
您好,
?? ? 说:请问下该如何在程序中获取运行的时间,比如计算运行一段程序或等待一个信号量所使用的时间?
根我们可以使用以下两种方法来获取程序运行的时间:
1.使用time模块计算程序运行时间
import timestart_time = time.time() # 获取程序开始时间# 在这里写下你的程序代码end_time = time.time() # 获取程序结束时间run_time = end_time - start_time # 计算程序运行时间print("程序运行时间为:", run_time, "秒")2.使用datetime模块计算程序运行时间
import datetimestart_time = datetime.datetime.now() # 获取程序开始时间# 在这里写下你的程序代码end_time = datetime.datetime.now() # 获取程序结束时间run_time = (end_time - start_time).seconds # 计算程序运行时间print("程序运行时间为:", run_time, "秒")
,
Gary Lu:
?? ? 说:就是上电后到开始运行APP所使用的时间吗?
是的,您的理解是正确的。
,
?? ?:
我这边参考SBL中的计时方式,在一进入main()函数就获取一下当前的时钟计数
cycleCountStart = CycleCounterP_getCount32();
再在以太网发包完成后再调用CycleCounterP_getCount32()记录当前时钟计数,最后用这两个值相减除以(SOC_getSelfCpuClk()/1000000)获取us计时,我这边实际的发包频率是1s,但是获取到的时间值却只增加了15ms,请问这是什么原因造成的?
,
Gary Lu:
?? ? 说:请问这是什么原因造成的?
SOC_getSelfCpuClk()函数返回的CPU时钟频率不准确或者是 CycleCounterP_getCount32()函数获取的时钟计数不准确,导致计算出的时间不准确。要么就是发包的过程中存在延迟,导致实际发包频率低于预期,从而计算出的时间不准确。