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

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

3天内不再提示

简述STM32G4芯片内不同空间运行代码的速率比较

茶话MCU 来源:茶话MCU 作者:茶话MCU 2021-11-26 11:34 次阅读

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

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

f6d4720e-4ddc-11ec-9eda-dac502259ad0.png

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

f712c19e-4ddc-11ec-9eda-dac502259ad0.png

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

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

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

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

编辑:jq

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

    关注

    456

    文章

    50886

    浏览量

    424163
  • STM32
    +关注

    关注

    2270

    文章

    10904

    浏览量

    356326
  • CCM
    CCM
    +关注

    关注

    0

    文章

    145

    浏览量

    24027

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

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

收藏 人收藏

    评论

    相关推荐

    STM32G4系列到底支不支持位带操作

    印象中不止一次有人询问STM32G4系列到底支不支持位带操作。
    的头像 发表于 07-29 09:45 1566次阅读
    <b class='flag-5'>STM32G4</b>系列到底支不支持位带操作

    stm32G4的tim2有霍尔模式,能不能用tim1的通道4连接tim2?

    stm32G4的tim2有霍尔模式,能不能用tim1的通道4连接tim2
    发表于 07-24 07:47

    STM32G4系列芯片定时器的延时输出问题

    有人使用STM32G4系列芯片内部的多个定时器做PWM输出,输出频率一样,占空比也一样,均为50%。可是,当他中途调整各个定时器以相同的工作参数,即改变ARR的值和CCR值后,会发现TIM2和TIM5两个定时器要比其它定时器延时等待一段长达20s左右的时间后才恢复正常PW
    的头像 发表于 07-01 09:45 1711次阅读
    <b class='flag-5'>STM32G4</b>系列<b class='flag-5'>芯片</b>定时器的延时输出问题

    STM32G4芯片怎么使用最新功能三角函数?

    求助各位大佬: STM32G4芯片怎么使用最新功能三角函数?
    发表于 04-15 08:17

    请问STM32G4的ADC1,ADC2,ADC3,ADC4可以同时工作在独立模式吗?

    咨询下各位: STM32G4的ADC1,ADC2,ADC3,ADC4可以同时工作在独立模式吗?每个ADC的触发条件为同一个条件。或者说其他STM32也行。这样是否相当于我同事采样和转换4
    发表于 04-10 06:01

    STM32G4 FLASH全为0x00的原因?怎么解决?

    请教一下大家,我想测试STLINK UTILITY的Automatic Mode功能(芯片STM32G474的开发板自带的STM32G474RET6U),来测试一下量产刷程序(配合设置读保护
    发表于 04-08 07:06

    STM32G4系列的comp比较器的刹车事件和比较中断怎么用?

    STM32G4系列的comp比较器的刹车事件和比较中断怎么用
    发表于 04-03 07:33

    请问STM32G4的推挽PWM如何配置?

    STM32G4的推挽PWM如何配置?
    发表于 04-03 06:17

    STM32G070RB部分代码运行是什么原因导致的?

    STM32G070RB 部分代码运行 主循环代码运行一会就不运行了,但定时器、串口都正常在工作
    发表于 04-02 06:55

    使用RT-Thread操作系统时,在STM32G4系列微控制器上使用PWM设备驱动时遇到了编译错误怎么解决?

    我在使用RT-Thread操作系统时,尝试在STM32G4系列微控制器上使用PWM设备驱动时遇到了编译错误。具体来说,问题出现在处理不同STM32系列时钟配置的条件编译指令中。编译器报告了一个“悬空
    发表于 03-22 07:22

    对于STM32G4系列的MCU,其GPIO的位操作是否还支持位带操作?

    STM32G4的memory map。GPIO是挂在AHB2总线上的。 但是手册里面没有明确找到,其别名区的起始地址。
    发表于 03-21 07:34

    求一种基于STM32G4芯片TIM+SPI+DMA应用设计方案

    现在有STM32用户使用STM32G474R芯片开发产品,其中用到TIM1做电源驱动,TIM1工作在中心对齐计数模式。
    的头像 发表于 03-17 10:57 1880次阅读
    求一种基于<b class='flag-5'>STM32G4</b><b class='flag-5'>芯片</b>TIM+SPI+DMA应用设计方案

    stm32G4 H7系列的HRTIM高分辨率定时器可以做捕获输入吗?

    stm32G4,H7系列的HRTIM高分辨率定时器可以做捕获输入吗,如果可以输入引脚在哪。想测量外部脉冲频率600-800KHz,误差尽量小(±10Hz) 有什么方案给推荐一下。谢谢!!
    发表于 03-15 07:33

    请问STM32G4系列的MCU可以支持以太网吗?

    请问STM32G4系列的MCU可以支持以太网吗?该系列同时支持以太网和USB Host或OTG接口的型号有吗?
    发表于 03-15 06:14

    STM32G070CBT6有内部比较器吗?下载了G071带有内部比较器的源码为什么G070也可以正常运行啊?

    我用的是G070CBT6的芯片,查询了数据手册发现没有内部比较器的资源,但是我把另一套G071的程序下载到了G070的
    发表于 03-12 07:50