最近有人问起程序在STM32G4片内不同存储空间运行的速度差异。说实在的,这个很难说死或说出个绝对的数据,毕竟结果除了跟执行代码的存放空间有关外,还跟代码本身的内容、程序逻辑、编译工具及优化等级等都息息相关。我这里设计了一个小测试程序做了下简单比较,以供参考。
我们不妨先看看STM32G4系列内部系统框架图。下图是STM32G4芯片的系统框架图,我将测试程序放在图中三个黄色高亮位置来运行。

我将程序分别放在CCM、通用SRAM1、Flash区来运行,基于不同的配置,即是否开启指令预取、指令/数据Cache等,得到下面一个表格。代码所在区域栏里的数据代表各种情形下的执行时间。

从上面表格可以看出,相同配置下在CCM里执行速率总是最高。
至于代码放在SRAM和Flash里的执行速率,不同配置下结果并不太一样。比如在开启prefetch和使能指令/数据Cache时,即第(1)种配置条件下,在SRAM里运行的速率是最慢的,只有在上图中的第(3)种情形下,代码在SRAM里运行速率相比在FLASH里运行才凸显出明显优势。
对于STM32G4系列芯片,芯片复位后其Prefetch功能是关闭的,而指令/数据Cache是开启的,即复位后默认为上面的第(2)种情形。结合上图,我们不难看出情形(1)与情形(2)的差别不大,至少不显著。
上面数据虽只是基于特定代码测试而得,但作为基本的方向性判断还是可以的。
关键字:STM32G4 片内 存储空间
引用地址:
在STM32G4片内不同存储空间运行的速度差异
推荐阅读最新更新时间:2026-03-20 11:28
在STM32G4片内不同存储空间运行的速度差异
最近有人问起程序在STM32G4片内不同存储空间运行的速度差异。说实在的,这个很难说死或说出个绝对的数据,毕竟结果除了跟执行代码的存放空间有关外,还跟代码本身的内容、程序逻辑、编译工具及优化等级等都息息相关。我这里设计了一个小测试程序做了下简单比较,以供参考。 我们不妨先看看STM32G4系列内部系统框架图。下图是STM32G4芯片的系统框架图,我将测试程序放在图中三个黄色高亮位置来运行。 我将程序分别放在CCM、通用SRAM1、Flash区来运行,基于不同的配置,即是否开启指令预取、指令/数据Cache等,得到下面一个表格。代码所在区域栏里的数据代表各种情形下的执行时间。 从上面表格可以看出,相同配置下在CCM里执行
[单片机]
简述STM32G4芯片内不同空间运行代码的速率比较
最近有人问起程序在STM32G4片内不同存储空间运行的速度差异。说实在的,这个很难说死或说出个绝对的数据,毕竟结果除了跟执行代码的存放空间有关外,还跟代码本身的内容、程序逻辑、编译工具及优化等级等都息息相关。我这里设计了一个小测试程序做了下简单比较,以供参考。 我们不妨先看看STM32G4系列内部系统框架图。下图是STM32G4芯片的系统框架图,我将测试程序放在图中三个黄色高亮位置来运行。 我将程序分别放在CCM、通用SRAM1、Flash区来运行,基于不同的配置,即是否开启指令预取、指令/数据Cache等,得到下面一个表格。代码所在区域栏里的数据代表各种情形下的执行时间。 从上面表格可以看出,相同配置下在CCM里执行速
[单片机]
华为回应闪存速度差异问题:体验不由单一部件决定
eeworld网4月18日早间消息,针对近日网友爆出的华为P10手机中存在闪存缩水现象,今日早间,华为终端向新浪科技作出回应称:一部手机的体验是否流畅,不是单纯由某个单一部件性能决定的,而是硬件综合设计和优化的结果。 回应全文如下: 作为一家以技术和质量为核心生存理念的公司,华为始终致力于与业界领先的解决方案供应商合作,向消费者提供优秀的产品体验和服务。近期个别社交网络上关于P10 / P10 Plus闪存选用问题,我们同样与业界多家优秀的闪存解决方案供应商紧密合作,共同保障产品品质及用户体验,同时也是为了保障供应的稳定。 一部手机的体验是否流畅,不是单纯由某个单一部件性能决定的,而是由软件系统和硬件系统综合设
[手机便携]
STM32G4电机外设系列(一):GPIO UART详解
一、STM32G4 电机外设篇(一) GPIO+UART 1 GPIO 1.1 STM32CUBEMX 配置以及Keil代码 GPIO会控制二极管亮灭来指示板子的状态 也可以开关电机 打开STM32CUBEMX选择MCU(中间更新太慢可以不更新) 选择 MCU HSE为外部晶振 配置时钟树,PLL时钟源选择HSE,外部晶振24M,HCLK配置为170M; debug接口配置为串行接口 配置MCU的GPIO口,给GPIO口命名,开启NVIC终端管理程序 配置项目路径,项目位置,代码生成方式,点击生成代码,打开工程 7.打开Keil工程 1.2 代码和实验现象 在主函数147行添加如下代码 void
[单片机]
基于STM32G4与MCSDK完成低压直流无刷大功率电驱方案
随着工业自动化,生产效率的提升,直流无刷电机的应用需求越来越广泛。但是直流无刷电机的算法,尤其是FOC的核心算法空间间矢量调制(SVPWM)技术十分复杂,在不熟悉算法模型,也没有simulink模型搭建的经验,对FOC也没概念的情况下,入门门槛非常高;ST的可视化电机开发平台MCSDK在6.3.0版本加入了Board Design功能,可以非常方便的根据应用需求调整引脚,反馈网络等等差异化设计;同时,新增了HSO(高灵敏度)观测器,在无位置算法的拓扑中,可以更好的得到位置反馈。 STM32G4系列是一颗具备170MHz主频,集成FPU,DSP, CortexM4的MCU,具备丰富的模拟外设,最多可达5个12位ADC,采样通道多
[单片机]
探究STM32G4系列控制器中运算放大器的应用
最近在开发一款产品的过程中用到了STM32G4系列的产品STM32G491,了解到该产品的一些优势,不仅其数字处理能力强大,更重要的是集成了丰富的模拟外设电路 - 多路模拟开关/比较器/运算放大器、ADC、DAC、温度传感器等,而且运算放大器的结构和增益都可以编程,非常灵活,能够满足大多数场景的应用,比如电机控制、工业设备、仪器仪表、数字电源等产品。 顺便讲一下,这颗芯片用在电赛中会非常合适 - 功能强大、产品指标较高,使用便捷。 虽然单颗器件的价格会高一些,但高集成度节省了板卡的面积,降低了BOM的整体成本,当然更重要的是其灵活性。 这颗器件的数字信号处理能力也非常强,比如带有FPU功能的Cortex M4内核能够运行到
[单片机]
STM32G4用于电机控制的外设篇(上)
Timer PWM波的产生 时基单元 分频器:Clock Prescaler 核心计数器:CNT Counter 自动重装载器:Auto-Reload Register 时基设定即为PWM频率设定 比较输出功能 基本原理:根据计数器与CCRx的比较结果,结合不同的输出控制模式 波形输出模式配置非常灵活 常见电机控制PWM波形 设定中心计数模式 插入死区时间 比较输出模式设定为PWM Mode 1 预装载机制 定时器中的PSC/ARR/RCR/CCR寄存器具有预装载功能 每类寄存器具有双寄存器机制,分别由各自的影子寄存器和预装载寄存器组成 如果使能了预装载机制,那么只有更新事件时,数据才进行
[单片机]
三星或将推256GB存储空间的Galaxy S20 FE
三星宣布将推出Galaxy S20 FE的新版本,这是9月份推出的旗舰机中价格更实惠的一款。最新的型号把可用的内部存储空间增加到256GB,而不是基本款的128GB。三星Galaxy S20 FE是三星试图与OnePlus之类理念的机型在同一领域竞争,将部分顶级规格带到一个较低的价格范围。 例如配备高通骁龙865芯片组、6GB内存和120Hz AMOLED显示屏,并且电池也比普通Galaxy S20更大,达到4500mAh。 Galaxy S20 FE背部也采用了三摄像头组合,主摄像头为1200万像素传感器,超广角摄像头也是1200万像素,还有800万像素的长焦镜头,这是相比标准版Galaxy S20最明显的降级。前
[手机便携]