免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: lanyushan123
打印 上一主题 下一主题

[内存管理] 对arm做内存诊断 [复制链接]

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
11 [报告]
发表于 2014-05-23 08:42 |只看该作者
lanyushan123 发表于 2014-05-22 21:40
对硬件内存的测试不容易完成吗? 导师要求做的测试,想法是源于之前对单片机的硬件内存的测试,所以计划将诊 ...

呵呵,原来是为了做课题。
我的意思是,如果实际使用的话,就基本没有必要自己实现一个这样的工具了,因为已经有现成可用的了,而且人家做得比较好。
如果只是单纯的做研究,那就另当别论了。内存测试其实是一项比较复杂的工作,不是简单的读写几下内存就可以的,还需要考虑一些硬件特性,比如相邻cell之间的关联性,如果要自己实现,建议参考一下memtest工具的实现方式,映像中其测试算法还是很复杂的。
另外,如果要在运行的Linux环境中进行内存测试,也是比较危险的,写的时候不能覆盖掉已经使用的内存(尤其是内核自己用的)。估计你们老板的意思,是要考验你对Linux中内存分布、使用情况的熟悉程度。多数情况下,内存测试还是在离线,或通过grub启动进行,在运行系统中进行测试还是比较困难的。

论坛徽章:
0
12 [报告]
发表于 2014-05-26 14:02 |只看该作者
大师莫生气,我仔细研读也调试了那段程序,我只是在想,我做的是硬件的诊断测试,类似于实时的意思,如果将/dev/mem按设备文件读取,其实是将内存保存成了文件然后读取其内容,但是诊断测试的话,我好像应该是要按位写入内存,经过一种算法之后看能否得到相应的结果,那么这样的话,是改变了内存的对吧,那这样会不会影响系统的正常运行呢,应该是肯定会影响吧?纠结于这个问题,望指点一二回复 8# Tinnal


   

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
13 [报告]
发表于 2014-05-26 21:53 |只看该作者
回复 12# lanyushan123
如果你随意动了Linux管理的内存,那肯定有问题呀。这点humjb_1983跟你谈了。
因为/dev/mem是直接去访问内存的,不会先向内核申请。
同时,“其实是将内存保存成了文件然后读取其内容”, 你这句话理解错了,/dev/mem是直接操作内存的,没有“先保存成文件”的于法,这点不能怪你,你不了解Linux的文件系统。但观念要纠正过来。

一般,嵌入式系统或PC,内存的检查都在系统启动前完成(如BIOS或UBOOT阶段),因为哪时候内存跟本没什么人在用,不会冲突,你爱怎么写就怎么去写。系统启来后,如果你把内核已经使用了的内存改写了,问题就大了,而你在用户态没法知到内核究竟用了哪块。因此,比较方便的方法有:
1. 当然在UBOOT了去做罗。
2. 在启动内核时,通过MEM命令行,让内核只用一小块,其它给你留着,然后再通过/dev/mem接口去测试。当然,内存要够大。
3. 通过mmap建立匿名映射,然后去访问。内核此时会给你正式分配内存,就不会冲突了。


还有就是内存的检测算法问题,我估计单片机就只会写入0X55,0Xaa这类的数然后再读回来这类的算法,因为单片机基本上用的都是SRAM,比较简单。而PC或者嵌入式系统用的都是SDRAM或DDR,内存本身比SRAM复杂得多,错误的类型也因此多样。单片机的检测算法太简单了。

如果只是一个课题,哪你就建一个匿名映射,再按单片机的算法写写,把题结了你行了,国内的研究我也不寄予什么希望。
如果想真实的去用户,还是参考一个社区完善的项目吧。如Memtest86。

如对上文有什么不理解,请先百度再发问。


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP