lanyushan123 发表于 2014-05-19 14:44

对arm做内存诊断

大师好啊各位,我想要对arm板子的物理内存进行读写操作,但是不知从何处下手,跪求指导!!
我最近琢磨着,是不是用 /dev/mem读 内存,但这不是我想要的对硬件物理内存的诊断测试,求大侠指导!!!!!

humjb_1983 发表于 2014-05-19 19:35

memtest工具应该就可以了吧

Tinnal 发表于 2014-05-19 21:50

回复 1# lanyushan123

我最近琢磨着,是不是用 /dev/mem读 内存,但这不是我想要的对硬件物理内存的诊断测试,求大侠指导!!!!!

说了半天,你究竟想怎么测????????
通过/dev/mem, 直接读取所有的内存,至于你想怎么去读写,不就是就程序的事情了吗!

你是不是不会用/dev/mem呀。给你个链接:
http://blog.csdn.net/zhanglei4214/article/details/6653568

自己要学会用谷哥、度娘。


   

lanyushan123 发表于 2014-05-21 09:01

用/dev/mem读取的是系统的物理内存吧?如果是读写arm板子的绝对物理地址的内存是怎样做回复 3# Tinnal


   

lanyushan123 发表于 2014-05-21 09:10

如果相对物理内存按为读、写,应该怎么做呢, mmap /dev/mem是把内存按文件读取的么回复 3# Tinnal


   

humjb_1983 发表于 2014-05-21 09:22

你的目的是啥?是要做内存硬件测试?

lanyushan123 发表于 2014-05-21 15:53

对的,而且需要在板子里有系统运行的情况下测试硬件回复 6# humjb_1983


   

Tinnal 发表于 2014-05-21 20:12

回复 4# lanyushan123

是的,读的就是物理地址,用法不是之前给你一下参靠链接了吗。你想没有用心看实在不应该!

例子的mmap是这样的。
map_base = mmap(NULL, 0xff, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x20000);
别人也写得很清楚含义:
上面的例子将起始地址0x20000(物理地址), 长度为0xff映射出来。 然后就可以像普通数组一样操作内存。

已经很清楚了呀。
映射出来的后,就是一个指针,可直接访问,不用调读写文件的接口,看别人的例子就没用读写接口呀。

另外于再补充两点:
1、这个方法不仅仅访问内存,还能访问芯片的外设,只要有物理地址的都能访问。
2、高版本的内核对内核的代码段和数据段有保护,可以这个区段会访问不了,如果想访问,可以把这个功能关了。


因此,总结:
1. 没有去百度!
2. 没有详细看给你的参考链接!

我表示不高兴{:2_174:} 。



   

humjb_1983 发表于 2014-05-22 08:46

很多的内存问题,用简单的用例和算法是测不出来的,建议还是别自己写用例了,就用现成的memtest工具,其已经考虑了各种情况,并设置了复杂的测试算法,相信会比自己写的更有用。

lanyushan123 发表于 2014-05-22 21:40

对硬件内存的测试不容易完成吗? 导师要求做的测试,想法是源于之前对单片机的硬件内存的测试,所以计划将诊断测试对象换成arm板子,在装有linux系统的条件下做内存的测试,这个课题行不通吗?跪求高手解答回复 9# humjb_1983


   
页: [1] 2
查看完整版本: 对arm做内存诊断