注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

辛昕.九门.上 http://home.eeworld.com.cn/space-uid-115166.html [收藏] [复制] [分享] [RSS]

日志

20160611 记录 对RAM的一些基本测试

已有 795 次阅读2016-6-11 23:34 | 记录

加班加到很忙的时候,手头的事情已经够让自己手忙脚乱了,所以,只打算首先把事情记下来。

涉及RAM的使用情况的一些疑问:
这类问题要去探寻究竟很痛苦,会涉及 机器底层,汇编层面的东西,搞不好还会涉及编译器。
但有时我们关心的只是它的表现。

对于RAM,我已经确认的一个问题是:
1.RAM的使用量是一个运行时问题,所以,MDK的map,网上流传的一些解释文章,提到RAM = RW+ZI,完全是误传;
实现方法很简单:你定义一个很大的数组(可通过试探法确认这个大小),直到你的程序无法正常运行,比如对于stm32,会直接进入 HardFault;
对其他MCU,不一定会进这个中断,但大同小异的是,MCU会处于宕机状态;
然后,你再把使用这个数组的语句关掉,你会发现MCU又复活了。

这就说明,RAM爆不爆,和定义了多大的局部变量无关,全在你有没使用这个定义;

2.RAM的使用量同时还有一个作用域问题。
证明方法与上述类似,但是,这次,我们的做法是,在一个函数里,定义一个将近爆RAM大小的数组;
然后再在另一个函数里定义一个也不小的数组,然后在一个地方,先后调用这两个函数,你会发现,一样不会有事。
这说明啥,这说明RAM的计算,指的是同一作用域内的 局部变量总和(当然,前提是这几个局部变量都在使用);

3.现在剩下的一个问题是:
我想知道,RAM占用很大和很小的时候,对于程序会造成什么影响?
我关心的点在: 运行时间  以及 是否会提高功耗?

对这个,我的测试方法将采用 IO翻转的方式来完成。

至于功耗,可能要费点劲。不过我有一个 数字直流电源,想来事情还会好办点。
目前我还没测,但是,我的预计是,对功耗(我说的是电流,不该会产生什么影响。)但是,可能会延长了运行时间——这,当然也可以理解为增大了功耗,但是,这就是另一种情形和计算方法了。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-11-21 02:32 , Processed in 0.014963 second(s), 9 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2018 http://bbs.eeworld.com.cn/

返回顶部