Chinaunix首页 | 论坛 | 博客
  • 博客访问: 488479
  • 博文数量: 93
  • 博客积分: 1431
  • 博客等级: 上尉
  • 技术积分: 1006
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-18 10:30
文章分类

全部博文(93)

文章存档

2011年(20)

2010年(2)

2009年(71)

我的朋友

分类:

2009-05-13 13:24:26

linux2.6下的 ioremap 问题:
实验平台:linux2.6.9
交叉编译器:arm-linux-gcc-3.4.6-glibc-2.3.6
试验程序:
ADDR_SJA1000_ADDR = ioremap(0x04000000,0xff);     
ADDR_SJA1000_DATA = ADDR_SJA1000_ADDR + (0x1<<2);
printk("ADDR_SJA1000_ADDR = %x\n",ADDR_SJA1000_ADDR);
printk("ADDR_SJA1000_DATA = %x\n",ADDR_SJA1000_DATA);
打印结果:
ADDR_SJA1000_ADDR = c4874000
DDR_SJA1000_DATA = c4874010
难道DDR_SJA1000_DATA 的值 不应该是c4874004 吗
在linux2.4.14 下打印DDR_SJA1000_DATA = c4874004

我又在2.6下试了一下发现:
ADDR_SJA1000_DATA = ADDR_SJA1000_ADDR + ?   ----  DDR_SJA1000_DATA =?
 (0x1<<2)-----c4874010
 (0x1<<1)-----c4874008
 (0x1<<0)-----c4874004
而在2.4下 相关数据为
 (0x1<<2)-----c4874004
 (0x1<<1)-----c4874002
 (0x1<<0)-----c4874001
阅读(1028) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-06-14 10:47:58

在家”用网路”赚全世界的钱! 这是真正实现跨国事业最好的机制。藉由网路无远弗届的力量, 让全球超过180个国家变成一个单一市场,在你加入的那一刻, 网路能到达的地方,就是你收入能到达的地方。 有意者免费索取DVD影音详细说明~> http://www.longteng.ws ★ 谢谢您的阅览,如不感兴趣,抱歉打扰您了,请将此讯息删除! 祝您˙诸事顺心-愉快! ^_____^