seamano
驱动牛犊
驱动牛犊
  • 注册日期2004-07-28
  • 最后登录2004-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2983回复:5

急 !急! ioremap () 的问题???

楼主#
更多 发布于:2004-08-14 16:04
小弟用的是intel 公司的sitsang 开发板  想读它的 物理地址 0x1400,0010 上的数 同时把数 储存起来
现在问题是我怎么去读这个地址上的数  在它的
tatic struct map_desc sitsang_io_desc[] __initdata = {
 /* virtual     physical    length      domain     r  w  c  b */
  { 0xf0000000, 0x08000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 },
  { 0xf1000000, 0x04000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 },
   
  { 0xf1100000, 0x04800000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 },
  { 0xf4000000, 0x10000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 },

里面没有0x14000010的映射
于是我用 下面的代码:
int *addr:
int i;
addr=ioremap(0x14000000,0x0100);
i=readl(addr+0x0010);
printk(data=%x\n",i);

来读它的数 结果读出来的是不对 请问是不是用ioremap映射不行 啊?  急!急!
sindo_bird
驱动牛犊
驱动牛犊
  • 注册日期2004-04-11
  • 最后登录2004-12-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-19 23:18
呵呵,好多天没来看贴了。
你说的那个问题我好像遇到过,后来多试了几次就搞定了,具体怎么回事我也忘了。
好像不是ioremap()的问题,大概是c语言中数据长度换算的问题,如果不是,再看看big-edian和little-edian,实在不行就把地址的值也打出来看看,和/proc/iomap中的值对照一下,要有点耐心
lsshao
驱动牛犊
驱动牛犊
  • 注册日期2004-02-03
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-23 22:23
先向系统申请资源,然后再映射内存!!!
申请资源request_region()
映射ioremap()
这样才能使用物理资源!!!!!
zheng2002
驱动中牛
驱动中牛
  • 注册日期2002-04-17
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-28 13:24
先向系统申请资源,然后再映射内存!!!
申请资源request_region()
映射ioremap()
这样才能使用物理资源!!!!!

nod
qq:14459938 email:zheng2002@21cn.com RH9 kernel 2.4.20
enLinux
驱动牛犊
驱动牛犊
  • 注册日期2003-11-27
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-01 10:06
先向系统申请资源,然后再映射内存!!!
申请资源request_region()
映射ioremap()
这样才能使用物理资源!!!!!


如果还不行,那就要看看firmware的映射是不是对了
boblai
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-17 10:13
先向系统申请资源,然后再映射内存!!!
申请资源request_region()
映射ioremap()
这样才能使用物理资源!!!!!



这位兄弟能否把代码示范一下啊 :)多谢了
我穿着开档裤坐在石头上,石头很烫但是很舒服,地上还有一条蚯蚓。。。。。。
游客

返回顶部