你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32G473程序运行于Flash和Ram速度问题

[复制链接]
heiyewuyue 提问时间:2020-6-10 18:21 /
关于STM32G473程序运行于Flash和Ram速度问题,向大家请教一下。之前用的是F4系列的程序(没有指定ram区),移植到G473里运行后发现速度变慢了接近20us;然后尝试指定Ram区运行后,速度跟F4差不多了。请问这是怎么回事呀?G473跟之前的F4系列硬件架构上有区别么?请大佬指教。

评分

参与人数 1 ST金币 +5 收起 理由
STMCU + 5 赞一个!

查看全部评分

收藏 评论12 发布时间:2020-6-10 18:21

举报

12个回答
zcy 回答时间:2020-6-11 09:13:06
jjjjjjjjjjjjjjj
陌路夕颜 回答时间:2020-6-11 09:27:54
比较好奇你是怎么测出来的,这两个型号都是M4内核,但是主频和DMPS略有不同

评分

参与人数 1ST金币 +5 收起 理由
STMCU + 5

查看全部评分

wenyangzeng 回答时间:2020-6-11 09:49:04
在RAM区读指令速度应该比从FLASH读指令速度要快一点的。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

heiyewuyue 回答时间:2020-6-11 10:43:29
陌路夕颜 发表于 2020-6-11 09:27
比较好奇你是怎么测出来的,这两个型号都是M4内核,但是主频和DMPS略有不同 ...

我用了个100us中断,里面都是相同的算法,之前用的是F405(168MHz),实际运行时间在60us左右;现在换到G473(170MHz),不指定ram的话,测试接近80us了。两个测试都是用DO电平测的。
阿莫西林 回答时间:2020-6-11 10:53:24
想知道怎么测试代码在不同区域执行的速度。之前弄到SDRAM执行去了,但是不知道怎么测速度,哪位大佬知道
网络孤客 回答时间:2020-6-11 11:27:02
天越萍踪 发表于 2020-6-11 10:43
我用了个100us中断,里面都是相同的算法,之前用的是F405(168MHz),实际运行时间在60us左右;现在换到G4 ...

是否能进一步看看是哪段程序慢了,还是整体慢了?
陌路夕颜 回答时间:2020-6-11 12:28:38
天越萍踪 发表于 2020-6-11 10:43
我用了个100us中断,里面都是相同的算法,之前用的是F405(168MHz),实际运行时间在60us左右;现在换到G4 ...

看看编译出的汇编是不是一样的
heiyewuyue 回答时间:2020-6-11 14:16:29
陌路夕颜 发表于 2020-6-11 12:28
看看编译出的汇编是不是一样的


不太懂汇编,取了其中一段对比,感觉指令应该是一样的呀。
heiyewuyue 回答时间:2020-6-11 14:20:00
ldptest 发表于 2020-6-11 11:27
是否能进一步看看是哪段程序慢了,还是整体慢了?

又对比了1msTask,程序也变慢了20%左右。
heiyewuyue 回答时间:2020-6-12 07:46:34
陌路夕颜 发表于 2020-6-11 12:28
看看编译出的汇编是不是一样的

昨天图片上传失败了。拿了其中一段对比,感觉指令一样的。(不懂汇编
企业微信截图_15918560204958.png
butterflyspring 回答时间:2020-6-22 15:47:15
G473的架构更加灵活一些。对于程序放在FLASH中运行,需要打开ART加速器和指令预取使能cache功能,这样才能保证指令0等待取指,与之架构相匹配。 而放在RAM里(CCM sram)里,由于指令总线和数据总线直接连接,并且RAM的速度响应快,直接实现指令0等待取指,所以速度实现最快。 具体可参考官方手册相关部分关于总线的介绍和框图。
heiyewuyue 回答时间:2020-6-24 09:23:06
butterflyspring 发表于 2020-6-22 15:47
G473的架构更加灵活一些。对于程序放在FLASH中运行,需要打开ART加速器和指令预取使能cache功能,这样才能 ...

感谢您,我去查查看。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版