硬汉嵌入式论坛

 找回密码
 立即注册
查看: 639|回复: 2
收起左侧

关于程序运行周期,有个概念模糊不清

[复制链接]

17

主题

21

回帖

72

积分

初级会员

积分
72
发表于 2022-11-1 09:03:25 | 显示全部楼层 |阅读模式
例如,系统时钟168MHz:程序里面只有个while,那这个程序的运行周期接近是1/168M吗?不太理解时钟对程序运行的影响,求科普,谢谢


回复

使用道具 举报

39

主题

928

回帖

1050

积分

至尊会员

积分
1050
发表于 2022-11-1 09:32:39 | 显示全部楼层
1. 理论上来说,时钟频率越高,指令执行速度越快。然后你写的程序,是被编译器翻译成指令的。从这方面来说,时钟频率越高,执行你的程序的速度当然越快;
2. 但是呢,程序是用来实现功能的,功能可能是固定节拍执行的。比如有一个系统任务,用于实现每秒加1的功能。那么你系统时钟168M和系统时钟1680M跑出来的结果基本没有区别,唯一的区别是,168M时切换到每秒加1的任务可能需要3us,而1680M时钟时可能只需要1us;然后168M加1可能需要1us,而1680M加1可能只需要100ns;但你每秒加1的功能都能实现,且你根本区分不出来他们之间的区别;
3. 打个比方,时钟和程序运行的关系,大概像车速与高速路的关系。程序就是高速路,程序写好了,高速路建好了,那么长度就是固定的。这个时候,你频率越高,车速越快,通过高速路的时间当然越短,执行固定程序的时间越短。但是有些路段是限速的,就像上面说的每秒加1的功能,这个时候你能跑再快,也只能乖乖每秒加1,也只能乖乖限速跑100。

评分

参与人数 1金币 +5 收起 理由
white9336 + 5 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2022-11-1 11:26:57 | 显示全部楼层
DWT时钟周期计数器可以了解学习下,计数一次就是一个时钟周期,此贴可以玩下,就会有个感性认识了。然后自己还可以使用这个做各种程序的执行时间测量。

DWT实现一个精确微秒延迟的参考例程
https://www.armbbs.cn/forum.php?mod=viewthread&tid=89128

评分

参与人数 1金币 +5 收起 理由
white9336 + 5 很给力!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 01:55 , Processed in 0.243460 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表