3912|7

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ioctl返回的地址问题?初学者,高人指点。 [复制链接]

请问ioctl返回的地址是虚拟地址还是物理地址?


小弟在做dm6446上的resize,用ioctl返回的resize驱动中申请的buffer的地址是在用户空间是不能用的?


大家指教。


ioctl返回的地址问题?初学者,高人指点。

最新回复

调用驱动写一个demo的时候,从摄像头采集,用resize变换大小,从lcd输出。resize是davinci片内集成的非arm dsp的一个东西,所以我想问mmu 内存控制器之间的区别?还有就是虚拟地址、物理地址的问题?(详见一楼)  详情 回复 发表于 2008-7-7 08:33
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
顶一下
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
有MMU的系统中,ioctrl返回的就是虚拟地址。无MMU的系统中,返回的是物理地址。
内核中的地址,在用户空间不能直接使用,必须通过类似Linux: mmap(...), WINCE: VirtualAlloc(...) VirtualCopy(...)之类的函数进行映射才行。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
看来楼上是双料人才呀,^_^

我想知道的是比如arm片内集成的那些外设的驱动,返回的是物理地址还是虚拟地址,我试验过是物理地址,但是还有个问题,给一个32位整型数如何判断是虚拟地址还是物理地址,把这个地址给程序中的变量传递,他下去的时候,os是怎么判断他是虚拟地址还是物理地址的?以前只知道系统内或用虚拟地址或用物理地址(就是实模式和段页模式),但为什么两个可以同时用?
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

5
 
ARM的外设也在统一寻址空间内。经过BOOT部分的MMU使能、映射表建立后,操作也是虚拟地址。
如果你发现是物理地址,那么就是你的平台没有MMU,那你跑的是ucLinux?
在一个系统开始设计时,会有虚拟地址起始地址的定义。linux下忘了,wince下从0x80000000开始都是虚拟空间。而物理地址肯定小于这些值的。判断就可以。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
cpu:dm6446 os:montavista
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

7
 
哦,达芬奇的呀,ARM926体系的,带MMU。
那你在什么步骤发现这个“物理地址”的?BOOT部分还是kernel部分?
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 
调用驱动写一个demo的时候,从摄像头采集,用resize变换大小,从lcd输出。resize是davinci片内集成的非arm dsp的一个东西,所以我想问mmu 内存控制器之间的区别?还有就是虚拟地址、物理地址的问题?(详见一楼)
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表