免费注册 查看新帖 |

Chinaunix

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

请问关于linux虚拟地址的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-28 16:21 |只看该作者 |倒序浏览
我现在写一s3c2410上的 IO 驱动,是不是我把实际地址ioremap了之后读写它就可以了呢???
   比如实际地址是0x8000000,我映射它到0xC4900000,那是否我读0xC4900000就可以读到实际0x8000000地址的东西?写只要写到0xC4900000就可以到实际地址了???

   如果是的话我操作虚拟地址用这样的方法合适吗:
#define READ_reg(x)    (*(volatile u16 *)(x))
#define WR_reg(x,y)    (*(volatile u16 *)(x)=(y))

多谢大家,辅导小菜

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
2 [报告]
发表于 2006-12-28 16:56 |只看该作者
是的。
不过为什么不是u32 ,而用u16 ?

论坛徽章:
0
3 [报告]
发表于 2006-12-28 16:58 |只看该作者
多谢 确实是应该u32

论坛徽章:
0
4 [报告]
发表于 2006-12-28 17:08 |只看该作者

回复 2楼 gvim 的帖子

但愿您还在
我把0x8000000开始 ioremap了一块地方,
那我在0xC4900000+0x12是否就对应到了0x8000000+0x12 呢?

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
5 [报告]
发表于 2006-12-28 17:16 |只看该作者
恩,只要是以页为单位映射。
你的例子相当于0xC4900012的变换。查查mmu的映射过程你就明白了。

论坛徽章:
0
6 [报告]
发表于 2006-12-28 18:53 |只看该作者
多谢 现在还有些问题 为什么我用WR_reg(SLOT1_FLAG,0xA5A5) ;这样的语句想往一个虚拟地址写A5A5,可是执行完这条语句这个地址里的值发生了变化,结果却是6640,不是我要的A5A5???
是不是我们应该使用Linux中特定的函数来访问I/O内存资源,而不应该通过指向核心虚地址的指针来访问??
那我因该用什么方法操作地址呢?????

论坛徽章:
0
7 [报告]
发表于 2006-12-29 10:37 |只看该作者
以上的背景可是我用如下语句想向该地址写数据的时候为什么总是不对的
u32 temp ;
SLOT1_FLAG = SLOT1 + FLAG_SHIFT ;  //申请虚拟地址后的偏移量
writel(0xA5A5,SLOT1_FLAG) ;
temp = readl(SLOT1_FLAG) ;
printk("SLOT1_FLAG is %X ---%X\n",SLOT1_FLAG,temp);
打印出来的值不是我写入的0xA5A5  ?????
我调试观察对应的物理地址里的值也不是0xA5A5  
请教各位了 不知道是怎么回事情

论坛徽章:
0
8 [报告]
发表于 2006-12-29 14:10 |只看该作者
我发现 0x8000000 映射过来的地址里面的值都不是固定的,0x8000000 是nGCS1开始的地方,我看控制nGCS1的寄存器GPA12已经选重了nGCS1,不知道为什么还是把值写不到里面去~???

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
9 [报告]
发表于 2006-12-29 14:19 |只看该作者
我汗。
不知道你对"SROM"这个词是怎么理解的。
即便是对flash写入,也要有合适的方式嘛

[ 本帖最后由 gvim 于 2006-12-29 14:22 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2006-12-29 14:36 |只看该作者
老大 我半道出家 对这些不是很明白 您能不能指条路 我应该怎么理解呢?????????多谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP