gpt4 book ai didi

c - time() 在调试(JTAG)时可以,在片上运行时则不行。如何使用嵌入式进程计时?

转载 作者:行者123 更新时间:2023-11-30 14:21:12 25 4
gpt4 key购买 nike

我正在“玩”rm48 板(Texas Instrument RM48L952、ARM CORTEX-R4F),并且我想对循环进行计时(例如)。

char message[20];
int temp=0;
time_t start, end, elapsed;
sciInit();

start = time(NULL);
for(temp=0;temp<0xAAAAAAA;temp++);
end = time(NULL);
elapsed=end-start;
snprintf(message,20,"Duree = %f \r\n",(double)elapsed);
sciSend(scilinREG,20,(unsigned char *)message);

当我使用 JTAG 链接和 CodeComposerStudio(类似于 C 的 eclipse)运行程序时,显示是正确的(约 4 秒)。但是当我在片上运行程序(独立)时,显示不正确(〜637488s)并且无论延迟是多少都是相同的!

所以,为什么?我认为时间计算取决于系统......如何在嵌入式处理器上计时(基准程序)?

最佳答案

您使用的时钟频率是多少?您是否启用了任何中断?如果是这样,那么您的程序可能会被中断并经常跳转到 ISR,从而增加循环时间。抱歉,我没有有权发表评论。另外,如果您想对周期进行计时,最好使用内置计时器。

关于c - time() 在调试(JTAG)时可以,在片上运行时则不行。如何使用嵌入式进程计时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14870640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com