0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在STM32G4片内不同存储空间运行的速度差异

茶话MCU 来源:茶话MCU 作者:Miler 2021-09-09 09:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近有人问起程序在STM32G4片内不同存储空间运行的速度差异。说实在的,这个很难说死或说出个绝对的数据,毕竟结果除了跟执行代码的存放空间有关外,还跟代码本身的内容、程序逻辑、编译工具及优化等级等都息息相关。我这里设计了一个小测试程序做了下简单比较,以供参考。

我们不妨先看看STM32G4系列内部系统框架图。下图是STM32G4芯片的系统框架图,我将测试程序放在图中三个黄色高亮位置来运行。

491077a8-10d3-11ec-8fb8-12bb97331649.png

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

492011a4-10d3-11ec-8fb8-12bb97331649.png

从上面表格可以看出,相同配置下在CCM里执行速率总是最高。

至于代码放在SRAM和Flash里的执行速率,不同配置下结果并不太一样。比如在开启prefetch和使能指令/数据Cache时,即第(1)种配置条件下,在SRAM里运行的速率是最慢的,只有在上图中的第(3)种情形下,代码在SRAM里运行速率相比在FLASH里运行才凸显出明显优势。

对于STM32G4系列芯片,芯片复位后其Prefetch功能是关闭的,而指令/数据Cache是开启的,即复位后默认为上面的第(2)种情形。结合上图,我们不难看出情形(1)与情形(2)的差别不大,至少不显著。

上面数据虽只是基于特定代码测试而得,但作为基本的方向性判断还是可以的。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    462

    文章

    53544

    浏览量

    459222
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371188
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73152

原文标题:STM32G4芯片内不同空间运行代码的速率比较

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C语言和单片机C语言有什么差异

    的目标代码短、运行速度高、存储空间小、符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言目标代码混合使用。 4、C只是一种高级语言。它除具有一般高级
    发表于 11-14 07:55

    芯源的存储器介绍

    上FLASH 闪存由两部分物理区域组成:主FLASH 存储器和启动程序存储器。 ●● 主 FLASH 存储器,共 64KB,地址空间为 0
    发表于 11-12 07:34

    ‌基于STM32G474的数字电源控制板设计解析与应用指南

    STMicroelectronics STEVAL-DPSG474Q数字电源控制盘基于STM32G4系列的STM32G474QE微控制器。STEVAL-DPSG474Q可控制需要高引脚数的转换器的功率级(PFC、DCDC、DCAC),也可实现双级转换控制 (PFC+DCD
    的头像 发表于 10-15 13:59 776次阅读
    ‌基于<b class='flag-5'>STM32G</b>474的数字电源控制板设计解析与应用指南

    STM32F103长时间运行,串口发送失败怎么解决?

    STM32F103长时间运行,串口发送失败,目前定位到一致卡在USART_FLAG_TC判断那里,我们采用轮询的方式发送数据,然后判断USART_FLAG_TC是否发送成功,大量发送后出现了一次发送后USART_FLAG_TC
    发表于 07-30 07:55

    请问cyw20719b2的nvram的存储空间有多少字节?

    1)请问cyw20719b2的nvram 的存储空间有多少字节? 2)用wiced_hal_write_nvram()或wiced_hal_read_nvram()从nvram 写入或读出一字节数据需要多少时间
    发表于 07-08 07:41

    IMX93自定义构建期间运行bitbake imx image full时遇到报错怎么解决?

    IMX93 自定义构建期间运行 bitbake imx image full 时,我们遇到错误。您能否尽早提供解决方案?我们使用的是 imx 6.6.52 版本。
    发表于 04-10 06:29

    STM32L431RCT6主芯片 搭配 SD NAND-动态心电图设备存储解决方案

    高性能的同时,显著降低了设备的运行功耗。结合STM32L431RCT6主芯片的能效优化特性(基于ARM Cortex-M4的低功耗架构),动态心电图设备能够长时
    发表于 03-27 10:56

    使用Hal库的SPI读取磁边传感器导致STM32G4无法运行怎么解决?

    使用 HAL库 STM32G431 + SPI ,读取磁边传感器系统运行一会直接卡死,使用调试功能最后发现卡死if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE
    发表于 03-14 08:24

    STM32G4串口无法发送正确的信息是怎么回事?

    STM32G4串口无法发送正确的信息
    发表于 03-14 07:14

    NAND Flash与SD NAND的存储扇区架构差异

    NAND Flash 和 SD卡(SD NAND)的存储扇区分配表都是用于管理存储设备中扇区的分配信息。它们记录了哪些扇区已被使用、哪些是空闲的,以及文件或数据与扇区的对应关系,以便实现数据的准确读写和存储空间的有效管理。
    的头像 发表于 03-13 15:20 1567次阅读
    NAND Flash与SD NAND的<b class='flag-5'>存储</b>扇区架构<b class='flag-5'>差异</b>

    STM32L431上使用内部RTC,时间运行到23:59:59秒后,变为了24:00:00并不是00:00:00,为什么?

    大家好,我STM32L431上使用内部RTC,时间运行到23:59:59秒后,变为了24:00:00,并不是00:00:00,并且weekday也没有加一,这是为什么呢?
    发表于 03-11 06:32

    STM32和MCP2515通信,STM32这端还需要接CAN PHY吗?

    最近在做CAN通信的相关项目,STM32G4负责接收,对端是一个MCP2510+TJA1040的组合, 想问下应该如何接?STM32这端还需要接CAN PHY吗?
    发表于 03-10 06:18

    4G工业网关和5G工业网关的差异

    、应用场景和未来潜力等方面存在显著差异。 一、通信速度与带宽 4G工业网关 4G网络的理论传输速度相对较低,一般下载
    的头像 发表于 01-14 17:12 1177次阅读
    <b class='flag-5'>4G</b>工业网关和5<b class='flag-5'>G</b>工业网关的<b class='flag-5'>差异</b>

    电脑制作云存储空间,如何使用电脑制作云存储空间

        随着云计算技术的飞速发展,云电脑应运而生,它打破了传统电脑的物理限制,为我们提供了一种全新的计算模式,开启了数字办公的新纪元。今天就为大家介绍如何使用电脑制作云存储空间。    将电脑变成一
    的头像 发表于 01-13 14:28 1342次阅读
    电脑制作云<b class='flag-5'>存储空间</b>,如何使用电脑制作云<b class='flag-5'>存储空间</b>

    基于STM32设计的大气气压检测装置

    长时间运行同时又要求较高计算性能的应用。特别是选用型号为STM32F103RCT6的微控制器,它不仅具备足够的Flash存储空间和RAM来支持复杂的软件算法,还内置了多种通信接口,便于连接外部传感器和其他设备。
    的头像 发表于 01-09 11:15 1885次阅读
    基于<b class='flag-5'>STM32</b>设计的大气气压检测装置