最近有人问起程序在STM32G4片内不同存储空间运行的速度差异。说实在的,这个很难说死或说出个绝对的数据,毕竟结果除了跟执行代码的存放空间有关外,还跟代码本身的内容、程序逻辑、编译工具及优化等级等都息息相关。我这里设计了一个小测试程序做了下简单比较,以供参考。
我们不妨先看看STM32G4系列内部系统框架图。下图是STM32G4芯片的系统框架图,我将测试程序放在图中三个黄色高亮位置来运行。
我将程序分别放在CCM、通用SRAM1、Flash区来运行,基于不同的配置,即是否开启指令预取、指令/数据Cache等,得到下面一个表格。代码所在区域栏里的数据代表各种情形下的执行时间。
从上面表格可以看出,相同配置下在CCM里执行速率总是最高。
至于代码放在SRAM和Flash里的执行速率,不同配置下结果并不太一样。比如在开启prefetch和使能指令/数据Cache时,即第(1)种配置条件下,在SRAM里运行的速率是最慢的,只有在上图中的第(3)种情形下,代码在SRAM里运行速率相比在FLASH里运行才凸显出明显优势。
对于STM32G4系列芯片,芯片复位后其Prefetch功能是关闭的,而指令/数据Cache是开启的,即复位后默认为上面的第(2)种情形。结合上图,我们不难看出情形(1)与情形(2)的差别不大,至少不显著。
上面数据虽只是基于特定代码测试而得,但作为基本的方向性判断还是可以的。
责任编辑:haq
-
芯片
+关注
关注
457文章
51345浏览量
428287 -
STM32
+关注
关注
2274文章
10929浏览量
358022 -
代码
+关注
关注
30文章
4841浏览量
69204
原文标题:STM32G4芯片内不同空间运行代码的速率比较
文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
电脑制作云存储空间,如何使用电脑制作云存储空间
![电脑制作云<b class='flag-5'>存储空间</b>,如何使用电脑制作云<b class='flag-5'>存储空间</b>](https://file1.elecfans.com/web3/M00/04/D0/wKgZPGd4zA-AM4reAATGk2iLRCg267.png)
单片机的存储空间不够用了,有哪些解决办法?
关于STM32G473程序运行于Flash和Ram速度的疑问求解
请问STM32G4的ADC1,ADC2,ADC3,ADC4可以同时工作在独立模式吗?
使用RT-Thread操作系统时,在STM32G4系列微控制器上使用PWM设备驱动时遇到了编译错误怎么解决?
对于STM32G4系列的MCU,其GPIO的位操作是否还支持位带操作?
PCAN系列网关内部存储空间解析:EEPROM与Flash的集成应用
![PCAN系列网关内部<b class='flag-5'>存储空间</b>解析:EEPROM与Flash的集成应用](https://file1.elecfans.com/web2/M00/C5/AA/wKgaomX31JOAHoU7AAAQW3xkv-0817.png)
评论