硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2892|回复: 1
收起左侧

[有问必答] STM32F405代码在RAM执行问题

[复制链接]

13

主题

10

回帖

49

积分

初级会员

积分
49
发表于 2021-8-6 11:47:50 | 显示全部楼层 |阅读模式
我通过IAR把代码加载到SRAM上执行,经过测试循环10000次的执行时间,发觉SRAM上执行代码速度只有flash上的一半,SRAM: 53.34mips,flash:106.68mips。这是我哪里操作错误了吗?我感觉RAM上执行程序速度至少也要大于等于在flash执行程序的速度
测试指令如下:
#define DELAY_LOOP(n)    __asm volatile(\
                        "1: \n"\
                        "subs %0, #1 \n"\
                        "bne 1b \n"\
                        :  : "r"(n) : "memory" )

10000此后读取systick 寄存器的当前value值。主频是160M


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117563
QQ
发表于 2021-8-7 09:45:35 | 显示全部楼层
这个是因为RAM既做代码执行有做数据存取,非常影响带宽。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 16:13 , Processed in 0.035423 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表