STM32系列单片机“中断触发时间、最小中断周期、指令周期、平均执行速度、和单条指令执行时间”的问题研究

这篇具有很好参考价值的文章主要介绍了STM32系列单片机“中断触发时间、最小中断周期、指令周期、平均执行速度、和单条指令执行时间”的问题研究。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

查阅相关资料书籍和博客总结了一下知识点,以便学习巩固复习。

在学习《ARM Cortex-M3与Cortex-M4权威指南(第3版)》 这本书具体说明了触发中断需要多长时间。

stm32中断触发频率,STM32单片机,单片机,stm32,嵌入式硬件,c语言,mcu,arm开发

在权威指南的第74页提到,Cortex-M3和Cortex-M4的中断等待非常小,只有12个周期。也就是说触发中断后,需要12个时钟周期,才能被系统识别到,并去处理,也就是从中断触发到中断服务程序开始执行的时间。假如单片机时钟周期为72Mhz,那么检测中断的周期就为72/12 = 6MHz ≈ 166.67 ns。

stm32中断触发频率,STM32单片机,单片机,stm32,嵌入式硬件,c语言,mcu,arm开发

中断请求至少要持续一个时钟周期,也就是说如果使用脉冲触发中断时,脉冲的维持时间至少为单片机系统时钟周期的一个时钟周期。假如单片机时钟周期为72Mhz,那么脉冲的持续时间至少为 1/72Mhz = 0.01388889us ≈ 14ns左右。 


在STM32系列芯片中,采用Cortex-M3内核的微控制器具有三级流水线(three-stage pipeline)的架构。三级流水线是指CPU执行指令的过程被划分为三个阶段,每个阶段执行不同的操作,这样可以提高指令的执行效率。

三级流水线的基本阶段:

  1. 取指阶段(Instruction Fetch, IF): 从程序存储器中取出指令。

  2. 译码和执行阶段(Decode and Execute, DE): 对指令进行解码,并执行相应的操作。

  3. 写回阶段(Write Back, WB): 将执行结果写回寄存器文件或内存。

优势包括:

  1. 提高吞吐量: 因为不同阶段的指令可以同时被处理,所以在一个时钟周期内可以完成更多的指令。

  2. 提高效率: 流水线可以在一个时钟周期内同时处理多个指令的不同阶段,降低了单个指令的执行时间。

每个阶段都对应了CPU执行指令的一个部分。这样的流水线架构使得CPU能够同时执行不同指令的不同阶段,从而提高整体的指令执行速度。


ARM给出的Cortex-M3核单片机的平均执行速度是1.25MIPS/Mhz。
  MIPS的全称是Million Instructions Per Second,MIPS/Mhz的意思是(单片机CPU的主频)每兆赫兹下(单片机的指令执行速度)每秒执行1M(兆)条指令。比如,ARM官方给出的STM32F103x系列单片机的平均执行速度是1.25MIPS/Mhz,如果设置单片机的主频为72MHz,那么单片机执行速度=1.25(MIPS/Mhz)*72Mhz = 90MIPS,即每秒执行90M条指令,一条指令的执行时间为 1/90us=0.011us=11ns。但官方说的1.25DMIPS/MHz,是通过测试一些算法来实现的,不是实际测试硬件的结果,只能作为大概的一个参考。
  CPU执行中断时需要时间的,如入栈,出栈,以及其他处理,都需要时间,一般情况下,STM32的中断性能不超过500Khz,也就是中断间隔达到2us一次时,不管你中断函数多精简,基本上CPU就不会干其他什么事情了,只在进出中断了。
  单条指令执行时间:STM32F10X单片机在主频为72MHz下,C语言程序执行一条指令需要的时间可认为10ns~100ns。


执行一个__nop();是多长时间呢?

NOP指令:空指令,单片机在执行此指令时,什么事都不做,空循环一个时钟周期;
假设系统时钟频率为72Mhz,那么1个时钟周期是 1/72Mhz = 0.01388889us ≈ 14ns,相当于在72Mhz的主频下,执行一个__nop();需要14ns。


本篇完。

本人博客仅代表个人见解方便记录成长笔记。

若有不足,请指出,感谢您的阅读!文章来源地址https://www.toymoban.com/news/detail-846634.html

到了这里,关于STM32系列单片机“中断触发时间、最小中断周期、指令周期、平均执行速度、和单条指令执行时间”的问题研究的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stm32单片机开关控制LED灯(中断方式)(proteus电路图)

      补充一点:拼多多上面LED额定电流20mA,额定电压2V,额定电阻100欧姆,后边这个是STM32 如果只是用面包板做实验,输入输出都不是很多,就直接用灌电流的方式把LED直接接到STM32了,即使是设计产品,如果能够直接接,那么肯定也是不会浪费钱去买额外的原件的,所以只有

    2024年02月11日
    浏览(44)
  • STM32单片机(五)第二节:EXTI外部中断练习2(旋转编码器计次)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月11日
    浏览(45)
  • stm32系列单片机介绍

        stm32是基于ARM® Cortex®  内核的 32位微控制器和微处理器。常见的内核有:     Cortex-M0,代表型号STM32F0、STM32L0;     Cortex-M0+,代表型号STM32C0(23年新推出,主要针对低成本);     Cortex-M3,代表型号STM32F1、STM32F2、STM32L1;     Cortex-M4,代表型号STM32F3(混合信号)、

    2024年02月06日
    浏览(56)
  • STM32F4单片机内部FLASH编程时间

    单片机内部的flash除了存储固件以外,经常将其分为多个区域,用来存储一些参数或存储OTA升级等待更新的固件,这时就会涉及单片机内部flash的编程和擦除操作。STM32同系列的单片机内部flash特性和扇区大小都不太一样,以下基于STM32F407VET6此型号进行简单介绍。 STM32F4xx中文参

    2024年02月03日
    浏览(59)
  • STM32单片机示例:64位全局时间戳发生器

    STM32H743 / H750 系列的芯片有一个64位的全局时间戳发生器( Global timestamp generator ),这篇文章将对它的使用做个记录。 全局时间戳发生器相关的内容可以参考官方参考手册: TGS时钟来源与APB总线时钟,这就是TGS计数器时钟了,并且用于TGS计数时没法对其进行分频操作。我们使

    2024年02月10日
    浏览(51)
  • STM32F103RCT6开发板M3单片机教程06--定时器中断

    除非特别说明,本章节描述的模块应用于整个 STM32F103xx 微控制器系列,因为我们使用是 STM32F103RCT6开发板是mini最小系统板。 本教程使用是( 光明谷SUN_STM32mini开发板 )   首先了解一下是STM32F10X定时器(Timer)   注: 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101

    2024年02月04日
    浏览(67)
  • STM32单片机(六)TIM定时器 -> 第二节:TIM定时中断练习(定时器定时中断和定时器外部时钟)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月09日
    浏览(41)
  • STM32单片机(五)第二节:EXTI外部中断练习(对射式红外传感器计次和旋转编码器计次)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月09日
    浏览(47)
  • 关于两个STM32F103系列单片机的蓝牙通信

       毕设做的是掌控小车,因此采用蓝牙通信作为小车和手部通信,前段时间做出实物,对其遇到的问题以及解决的方法做一些总结。一个主控芯片采用STM32F103ZET6,另一个主控芯片采用STM32F103C8T6,原因是本来准备了两个主控C8T6,不小心烧了一个。 1.两个蓝牙的配对  需要准

    2024年02月13日
    浏览(63)
  • FreeRTOS_Stm32F103系列单片机标准库移植

    链接:FreeRTOS 下面的教程是基于从github下载压缩包进行的,最好下载这个或者直接看3.1,从我百度网盘下载。如果是别的下载源也问题不大,大同小异。 此时我们需要下载以下两个仓库, 点进去按下面的步骤下载就行了,另一个也是这样下。 链接: FreeRTOS官网 打开链接我们

    2024年01月22日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包