首页 > 编程语言 >stm32性能评估(程序执行效率,中断最大速率)

stm32性能评估(程序执行效率,中断最大速率)

时间:2023-10-25 09:36:30浏览次数:39  
标签:中断 cache 程序执行 stm32 指令 速率 f103 时钟

自从研究stm32以来,对mcu的运行速度一直没有一个明确的概念,困惑一直卡在这,很烦,最近有了一点心得,记录一下。

stm32的官方数据为1.25MIPS/MHZ,即每秒执行的汇编指令数应该是主频的1.25倍。

stm32f103  72M主频,所以一秒执行90M汇编指令,

stm32H743 480M主频,一秒的指令只会大于600M指令,因为有cache的存在。

执行一条c语言指令大概花费10~100ns(f103),那么H7的性能只会高于100/(480/72) = 15ns,因此,stm32 h7的性能至少为一秒50M的C语言指令。

stm32 f103的中断频率性能极限是500KHZ,H743的中断频率极限为12.5MHZ。

因此如果f103到了1K以上的中断频率也许就需要注意了,H743的则应该是10K。如果有些周期性中断中断频率达到了1K以上也许就应该重点注意它。

 

 

 

中断的触发实时的,在中断信号产生之后的一个时钟周期内(对应外设的内核时钟)中断状态寄存器就会被置位,因此中断信号的产生与被识别到基本是无时间差的,

中断寄存器在外设中,其触发nvic中断请求线,到mcu内核收到中断请求,这大概有一些时间差(很小,应该也可以忽略不计)。

mcu内核接收到中断请求,立刻开始处理中断,它需要

1.读取中断向量表,

2.跳转到中断处理函数,

3.保存寄存器,

4.读取中断函数里的第一条指令

直到开始执行,在内存零延迟的情况下(D-cache,I-cache, 即cpu在一个时钟周期内完成存取动作),这些时间统称为interrupt lentcy---中断延迟,

在《Cortex M3与M4权威指南》里明确为12个时钟周期。

 

关于H7的延时未查到,应该也是12个时钟周期吧。

 

标签:中断,cache,程序执行,stm32,指令,速率,f103,时钟
From: https://www.cnblogs.com/1234----/p/17786346.html

相关文章

  • 关于STM32F407ZGT6的USB损坏后使用ST-Link和USART1实现串口功能
    开发板:STM32F407ZGT6;目标:想使用软件“串口调试助手”情况:开发板上的USB_UART口所在器件损坏或者直接没有;解决办法:查看该开发板的原理图,可得:串口1的RX接TXD,串口1的TX接RXD,那么按如下步骤操作:1、现在使用USB转TTL模块,将串口1的RX接USB转TTL模块的TXD,将串口1的TX接USB转TTL模块的R......
  • 文件stm32f4xx.h 解析
    本文简短不看版:这个是头文件的头文件这个文件是个头文件,它又包含了两个头文件(通过在Keil魔法棒工具定义两个宏STM32F407xx和USE_HAL_DRIVER 开关)#include"stm32f407.h" //某一特定F4型号芯片寄存器定义#include"stm32f4xx_hal.h"//HAL库函数(HAL库编程的API总集合)......
  • stm32单片机在Keil环境下定义的变量都存储到哪去了?(以STM32f1系列为例)
    stm32f1系列单片机,在keil5环境下编译后显示四个储存区域,分别是Code,RO-data,RW-data,ZI-dataCode为程序代码部分RO-data表示程序定义的常量constRW-data表示已初始化的全局变量ZI-data表示未初始化的全局变量储存区域如下:Code,RO-data,RW-data............flashRW-......
  • stm32_1_开发环境配置
    20年参加ROBOMASTER,学习到stm32。21年大学毕业,参加土木类工作,把之前学到的全都丢弃了。最后还是靠stm32找到了工作。感谢这门技术,把这几年学到的东西做个总结。初学者还是建议看正点原子,野火视频教材。正点原子:http://47.111.11.73/docs/index.html野火:https://doc.embedfire.c......
  • 基于STM32的物联网节点设计与实现-传感器数据采集与无线通信
    基于STM32微控制器的物联网(IoT)节点的设计和实现。我们讨论物联网节点的基本概念和功能,并详细介绍了STM32微控制器的特点和优势。然后,我们将探讨如何使用STM32开发环境和相关的硬件模块来设计和实现一个完整的物联网节点。最后,我们将提供一个示例代码,展示如何在STM32上实现基本的传......
  • STM32不使用 cubeMX实现外部中断
    这篇文章将介绍如何不使用cubeMX完成外部中断的配置和实现。@TOC前言实验开发板:STM32F103C8T6。所需软件:keil5,cubeMX。实验目的:如何不使用cubeMX实现外部中断。实验:使用外部中断控制key点亮led.如果大家想了解如何cubeMX实现外部中断,可以参考我之前的文章:最详细STM32,cub......
  • 最详细STM32,cubeMX外部中断
    这篇文章将详细介绍cubeMX外部中断的配置,实现过程。@TOC前言实验开发板:STM32F103C8T6。所需软件:keil5,cubeMX。实验目的:外部中断的意义,cubeMX配置和实现等。一、外部中断的基础知识。对于外部中断的基础知识,可以参考我之前的文章:STM32EXTI外部中断二、cubeMX配置外部中断选......
  • 嵌入式(MCU)STM32L496QEI6/STM32L496QGI3基于ARM®Cortex®-M4内核
    一、简介STM32L432位MCU+FPU是超低功耗微控制器,基于高性能的ARM®Cortex®-M432位RISC内核,工作频率高达80MHz。Cortex-M4内核具有单浮点单元(SFPU)精度,支持所有ARM单精度数据处理指令与数据类型。同时执行全套DSP指令和存储保护单元(MPU),增强应用安全性。明佳达供求嵌入式(MC......
  • 2. STM32 HAL库结构的初步分析
    1.以串口为例,添加串口的HAL库源码我们使用的是异步通信的方式,因此将stm32f1xx_hal_uart.c添加进来。在本次学习中,串口我们使用3种方式去学习,轮询、中断、DMA方式。因此,我们也将DMA的HAL库源码添加进来。 ......
  • ardunio-stm32采集风速传感器
                波特率都是4800设备地址默认01广播FF #definemySerialSerial2byteMsg_getdata[8]={0x01,0x03,0x00,0x00,0x00,0x02,0xC4,0x0B};charRecData[9]={0};//==============校验==============uint16_tmodbus_crc16(char......