STM32的指令周期[通俗易懂]

STM32的指令周期[通俗易懂]在keil中编程时,写了一行代码,然后就想知道,执行这句C代码需要多长时间。时钟周期在这就不解释了,频率的倒数。指令周期,个人理解就是cpu执行一条汇编指令所需要的时间。我们知道cm3使用的三级流水线,那么到底一条指令的执行需要多少个时钟周期。下面通过keil软件仿真,来计算一个指令所需的时钟周期。 使用STM32F103RC,。配置其主时钟HCLK为72mhz测试代码如下:…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在keil中编程时,写了一行代码,然后就想知道,执行这句C代码需要多长时间。

时钟周期在这就不解释了,频率的倒数。

指令周期,个人理解就是cpu执行一条汇编指令所需要的时间。

我们知道cm3使用的三级流水线,那么到底一条指令的执行需要多少个时钟周期。下面通过keil软件仿真,来计算一个指令所需的时钟周期。

 

使用STM32F103RC,。配置其主时钟HCLK为72mhz测试代码如下:

STM32的指令周期[通俗易懂]

然后开始仿真

STM32的指令周期[通俗易懂]

编译通过后,点击dbg按钮,调出如下窗口:

STM32的指令周期[通俗易懂]并且设置以上的断点,开始单步调试。并记录时间,

STM32的指令周期[通俗易懂]

单步调试

STM32的指令周期[通俗易懂]

这样便可以计算出执行  MVOS  r1,#0x04 所用的时间视为29.20833-29.19444=0.1389us。使用这种方式便可以测试出每条指令所使用的时间。便有了下面的表。

STM32的指令周期[通俗易懂]

但是,我测试BL.W指令所需要的是8T0,不知道是什么原因,其他指令都是正确的

ARM官方给出的指令周期是

STM32有三级流水线,指令周期不定的,arm给出的是1.25MIPS/Mhz,一个平均执行速度。

个人理解就是1Mhz的频率,每秒钟可以执行1.25M指令。72M,那么就是72*1.25。

而这个最大的应用是通过单周期指令去测试系统时钟是否配置的正确。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182283.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • NSGA2 算法MATLAB完整代码 中文注释详解

    NSGA2 算法MATLAB完整代码 中文注释详解2019.7.17很意外本人这篇文章受到很多人的关注,在此把源码贴出来供大家更好的理解学习。https://download.csdn.net/download/joekepler/10590751========================分割=====================================本人最近研究NSGA2算法,网上有很多示例代码,但是基本没有…

  • cmd cd 修改 盘符「建议收藏」

    cmd cd 修改 盘符「建议收藏」cd/ee:

  • Python和Java哪个就业前景好?

    Python和Java哪个就业前景好?Python和Java这两大编程语言,很多人都喜欢拿来比较,一个是后起之秀,潜力无限;一个是行业经典,成熟稳定,对于想从事IT技术的人员来说,很难抉择,那么,Python和Java到底哪一个就业前景更好呢?Python在国外应用相对成熟,在国内还处于起步阶段,近两年,随着人工智能、机器学习的、大数据以及云计算的兴起,Python发展势如破竹,很多企业开始进入该行列,Python人才是必不可少环…

  • 桌面太单调?一起用Python做个自定义动态壁纸,竟然还可以放视频!「建议收藏」

    桌面太单调?一起用Python做个自定义动态壁纸,竟然还可以放视频!「建议收藏」前言前段时间,用PyQt5写了几篇文章,关于Python自制一款炫酷音乐播放器、自定义桌面动画挂件、车牌自动识别系统。今天就继续给大家分享一个实战案例,带大家一起用Python的PyQt5开发一个自定义动态桌面壁纸,好玩又有趣!首先一起来看看最终实现的自定义动态壁纸效果:…

  • 博途scl编程实例_博途plc编程流程

    博途scl编程实例_博途plc编程流程SCL:StructuredContorlLanguage,结构化控制语言。在TIA博途软件中,默认支持SCL语言,在建立程序块时可以直接选择SCL语言。SCL语言类似计算机高级语言,如果你有C、Java、C++、Python这种高级语言的学习经历,再学习SCL就会容易很多。在用SCL语言编程时,主要用IF…THEN/FOR/WHILE语句去构造条件、循环、判断这样的结构,在这些结构中再次添加指令,去实现逻辑判断。所有程序的编写都是在纯文本的环境下编辑,不像梯形图那么直观。能把

  • 如何修改用户名linux_linux修改hostname

    如何修改用户名linux_linux修改hostnameLinux下如何修改用户名(同时修改用户组名和家目录)有时候,由于某些原因,我们可能会需要重命名用户名。我们可以很容易地修改用户名以及对应的家目录和UID。本教程将会讨论这些东西。让我们先从修改用户名开始。修改用户名我们使用usermod来修改用户名。其语法为,$…在linux中如何增加修改删除暂停和冻结用户名在linux中,如何增加、修改、删除、暂停和冻结用户名在linux…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号