免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14765 | 回复: 18
打印 上一主题 下一主题

菜鸟求教/dev/mem 的mmap问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-30 19:09 |只看该作者 |倒序浏览
20可用积分
我在驱动中申请了一块内存,在应用程序中打开/dev/mem,再mmap,结果dmesg中报错,mmap也返回失败。

/var/log/messages的报错:  Program test tried to read /dev/mem between 209800000->209a28000

原来在redhat 企业版5.2(内核版本2.6.18-98)下是没问题的,结果现在换成redhat 企业版5.3(内核版本2.6.18-128)就不行了

哪位大侠知道原因吗?多谢了!

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2009-12-30 21:35 |只看该作者
首先确定一下/dev/mem是否有读取的权限

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2009-12-30 21:38 |只看该作者
LZ可以看一下偶的这篇文章中的实现。
http://blog.chinaunix.net/u/33048/showart_1271210.html

另外,你内核态分配的地址是否已经转换成了物理地址

论坛徽章:
0
4 [报告]
发表于 2009-12-31 07:47 |只看该作者
原帖由 Godbach 于 2009-12-30 21:35 发表
首先确定一下/dev/mem是否有读取的权限

 
我是用root执行的

论坛徽章:
0
5 [报告]
发表于 2009-12-31 07:48 |只看该作者
原帖由 Godbach 于 2009-12-30 21:38 发表
LZ可以看一下偶的这篇文章中的实现。
http://blog.chinaunix.net/u/33048/showart_1271210.html

另外,你内核态分配的地址是否已经转换成了物理地址


是的,用的是物理地址,方法一样

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
6 [报告]
发表于 2009-12-31 10:08 |只看该作者
建议LZ这样实验一下。既然/dev/mem可以读取的话,你就把它当个文件。打开文件后,按照你得到的物理地址作为偏移,读取文件内容即可。

看一下这样是否可行。

论坛徽章:
0
7 [报告]
发表于 2009-12-31 10:54 |只看该作者
原帖由 Godbach 于 2009-12-31 10:08 发表
建议LZ这样实验一下。既然/dev/mem可以读取的话,你就把它当个文件。打开文件后,按照你得到的物理地址作为偏移,读取文件内容即可。

看一下这样是否可行。


/dev/mem是实现了fops的函数吗?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
8 [报告]
发表于 2009-12-31 11:12 |只看该作者
原帖由 superfisha 于 2009-12-31 10:54 发表


/dev/mem是实现了fops的函数吗?


之前在2.4下直接按照文件的方式读取过/dev/mem,你可以试一下

论坛徽章:
0
9 [报告]
发表于 2009-12-31 11:13 |只看该作者
应该跟内核编译选项有关系,你看下CONFIG_STRICT_DEVMEM是否打开,如果是打开的关掉试下.

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
10 [报告]
发表于 2009-12-31 11:20 |只看该作者
我觉得写个测试程序应该是几分钟的事情,行不行很快就得到验证了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP