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

查看: 3080|回复: 13

NUCLEO-F412ZG测评:RAM和FLASH速率

[复制链接]

9

主题

276

回帖

66

蝴蝶豆

金牌会员

最后登录
2020-11-17
发表于 2016-10-11 10:35:24 | 显示全部楼层 |阅读模式
NUCLEO-F412ZG测评:RAMFLASH速率
       早有耳闻STM32家族MCU在FLASH中执行代码的速率比在RAM中执行快。由于其他厂商的MCU大多是代码在RAM中执行的速率比在FLASH中快。抱着疑问,基于STM32F412的NUCLEO板做了这个简单的测试。

       测试方法:
首先让代码加载到RAM中执行,在主函数中while(1)循环翻转GPIO,通过示波器检查GPIO的翻转速率;然后再通过修改分散加载文件,把代码加载到FALSH中执行,通过示波器检查GPIO的翻转速率。
       实验现象:
          ①代码在RAM中执行:
          通过分散加载文件把代码加载到RAM中执行。
         

把代码加载到RAM中的分散加载文件

把代码加载到RAM中的分散加载文件

           通过.map观看代码把加载到RAM中的具体位置。
         

通过.map文件可看出代码被加载到RAM中执行

通过.map文件可看出代码被加载到RAM中执行

           通过示波器检测代码在RAM中执行时的GPIO翻转速率。
            

代码在RAM中执行的GPIO翻转波形

代码在RAM中执行的GPIO翻转波形

          ②代码在FLASH中执行:
          通过修改分散加载文件把代码加载到FLASH中执行。
         

把代码加载到FLASH中执行的分散加载文件

把代码加载到FLASH中执行的分散加载文件

          通过.map观看代码把加载到FALSH中的具体位置。
         

代码在FLASH中执行的.MAP文件

代码在FLASH中执行的.MAP文件

           通过示波器检测代码在FLASH中执行时的GPIO翻转速率。
           

代码在FLASH中执行的GPIO翻转波形

代码在FLASH中执行的GPIO翻转波形

       误差和限制:
       由于受到GPIO外设的限制,GPIO的翻转速率并不代表RAM和FLASH的代码执行速率,但能通过单一变量控制的方法粗略对比出两者的速率大小。GPIO的翻转速率仅代表此次实验的结果,仅供参考。
       结果和分析:由以上现象得出,在STM32F412的FLASH中代码执行速率比在RAM中快;STM32F412的GPIO翻转速率(高→低→高)在一般条件下可达2.72MHz。
       实验意义:
       首先得出在STM32F412中,代码在FLASH中执行的速率比在RAM中快的结论。想要提高代码的执行速率,则应把代码加载到FLASH中执行。据说这与STM32内部的总线仲裁机制有关。
       其次,对于100MHz主频的STM32F412来说,代码在RAM中执行的速率对于一般应用尚可接受。对于拥有1M Byte FLASH和256K Byte的STM32F412ZG来说,不对其内存进行充分的利用仿佛有点浪费。如果要拿片内的FLASH来存储用户数据(非代码数据),则可能会遇到擦写片内FLASH与中断产生而使程序跑飞的问题。此情况下用户可通过把代码加载到RAM中执行,解决操作片内FLASH和中断共存的问题。
       最后,GPIO口的翻转速率,是用GPIO模拟各种外设通信接口(如SPI,I2C等)的前提保障,以上实测STM32F412ZG的GPIO翻转速率仅供参考,不过相对于本人用过其他某一厂商100MHz的cortex M4来说,STM32F412ZG的GPIO翻转速率还是相对较快的。

注:本实验实验编程环境为keil-MDK5.14开发环境,由之前《NUCLEO-F412ZG测评:UID和RNG(随机数)》的工程代码修改后进行测试。由于程序比较简单,就不贴上来了。如有兴趣可下载《NUCLEO-F412ZG测评:UID和RNG(随机数)》的工程自行修改:https://www.stmcu.org.cn/module/forum/thread-608121-1-1.html






评分

参与人数 1ST金币 +20 收起 理由
zero99 + 20

查看全部评分

回复

使用道具 举报

31

主题

1951

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-12-4
发表于 2016-10-11 11:51:20 | 显示全部楼层
        谢谢分享
回复 支持 反对

使用道具 举报

4

主题

574

回帖

3

蝴蝶豆

高级会员

最后登录
2020-12-9
发表于 2016-10-11 12:21:59 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

4

主题

484

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-8-12
发表于 2016-10-11 13:05:34 | 显示全部楼层
谢楼主分享结果
回复 支持 反对

使用道具 举报

9

主题

276

回帖

66

蝴蝶豆

金牌会员

最后登录
2020-11-17
 楼主| 发表于 2016-10-11 13:26:41 | 显示全部楼层
回复 支持 反对

使用道具 举报

1182

主题

3785

回帖

1

蝴蝶豆

论坛元老

最后登录
2020-3-17
发表于 2016-10-12 16:22:31 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

25

主题

455

回帖

63

蝴蝶豆

金牌会员

最后登录
2020-9-21
发表于 2016-10-13 20:31:35 | 显示全部楼层
通过分散加载文件把代码加载到RAM中执行和Flash中执行的截图,我看着像是一样的,楼主是不是放错图了?
回复 支持 反对

使用道具 举报

16

主题

3009

回帖

2

蝴蝶豆

论坛元老

最后登录
2020-11-30
发表于 2016-10-13 21:19:14 | 显示全部楼层
收藏学习。
回复 支持 反对

使用道具 举报

9

主题

276

回帖

66

蝴蝶豆

金牌会员

最后登录
2020-11-17
 楼主| 发表于 2016-10-15 21:35:29 | 显示全部楼层
shanji 发表于 2016-10-13 20:31
通过分散加载文件把代码加载到RAM中执行和Flash中执行的截图,我看着像是一样的,楼主是不是放错图了?
...

你仔细看
回复 支持 反对

使用道具 举报

9

主题

276

回帖

66

蝴蝶豆

金牌会员

最后登录
2020-11-17
 楼主| 发表于 2016-10-15 21:36:18 | 显示全部楼层

嘿嘿。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版