Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39390
  • 博文数量: 13
  • 博客积分: 501
  • 博客等级: 下士
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-20 10:04
文章分类

全部博文(13)

文章存档

2011年(1)

2010年(4)

2009年(8)

我的朋友
最近访客

分类: LINUX

2010-05-24 15:16:07

define _OS_REG_WRITE(_ah, _reg, _val) do {             \
    writel((_val),                                      \
            ((volatile u_int32_t *)((_ah)->ah_sh + (_reg)))); \
    *((volatile u_int32_t *)((_ah)->ah_sh + (_reg))); \
} while(0)
#define _OS_REG_READ(_ah, _reg) \
        readl((volatile u_int32_t *)((_ah)->ah_sh + (_reg)))
=================编译Ok===================
#define _OS_REG_WRITE(_ah, _reg, _val) do {             \
    writel((_val),                                      \
            ((volatile u_int32_t *)((u_int32_t)((_ah)->ah_sh + (_reg))^4))); \
    *((volatile u_int32_t *)((u_int32_t)((_ah)->ah_sh + (_reg))^4)); \
} while(0)
#define _OS_REG_READ(_ah, _reg) \
        readl((volatile u_int32_t *)((u_int32_t)((_ah)->ah_sh + (_reg))^4))
=================编译Ok===================
#define _OS_REG_WRITE(_ah, _reg, _val) do {             \
    writel((_val),                                      \
            ((volatile u_int32_t *)(((_ah)->ah_sh + (_reg))^4))); \
    *((volatile u_int32_t *)((u_int32_t)((_ah)->ah_sh + (_reg))^4)); \
} while(0)
#define _OS_REG_READ(_ah, _reg) \
        readl((volatile u_int32_t *)(((_ah)->ah_sh + (_reg))^4))
==============编译错误 提示异或的操作数错误================
个操作数一个是常量,一个是基址+偏移地址 也是一个整数。费解!!!!!
 
阅读(1069) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~