驱动里物理地址的映射
时间:2010-09-14
来源:互联网
在我的.h文件里的宏定义(这是从原来程序里复制)
#ifndef __ASSEMBLY__
typedef volatile unsigned int AT91_REG; // Hardware register definition
#define AT91_CAST(a) (a)
#else
#define AT91_CAST(a)
#endif
#ifndef __ASSEMBLY__
typedef struct _AT91S_AC97C {
AT91_REG AC97C_CAMR; // Channel A Mode Register
AT91_REG AC97C_CBMR; // Channel B Mode Register
} AT91S_AC97C, *AT91PS_AC97C;
#else
#define AC97C_CAMR (AT91_CAST(AT91_REG *) 0x0000002C) // (AC97C_CAMR) Channel A Mode Register
#define AC97C_CBMR (AT91_CAST(AT91_REG *) 0x0000003C) // (AC97C_CBMR) Channel B Mode Register
#endif
#define AT91C_BASE_AC97C (AT91_CAST(AT91PS_AC97C) 0xFFFA0000) // (AC97C) Base Address
在.c文件里要用到
AT91C_BASE_AC97C->AC97C_CAMR(这个地方为什么可以这样用啊,哪位大哥能给我安.h文件里定义的内容解释下)
AT91C_BASE_AC97C->AC97C_CBMR
但是需要进行物理地址的映射。
我该怎么弄呢?
我改成了:
void *AC97C_VIR_BASE;
#define AT91C_BASE_AC97C_VIR AT91C_BASE_AC97C+AC97C_VIR_BASE
AC97C_VIR_BASE = ioremap( AT91C_BASE_AC97C, 0x100 );
AT91C_BASE_AC97C_VIR->AC97C_CAMR
AT91C_BASE_AC97C_VIR->AC97C_CBMR
但是编译不对我该怎么改呢?
#ifndef __ASSEMBLY__
typedef volatile unsigned int AT91_REG; // Hardware register definition
#define AT91_CAST(a) (a)
#else
#define AT91_CAST(a)
#endif
#ifndef __ASSEMBLY__
typedef struct _AT91S_AC97C {
AT91_REG AC97C_CAMR; // Channel A Mode Register
AT91_REG AC97C_CBMR; // Channel B Mode Register
} AT91S_AC97C, *AT91PS_AC97C;
#else
#define AC97C_CAMR (AT91_CAST(AT91_REG *) 0x0000002C) // (AC97C_CAMR) Channel A Mode Register
#define AC97C_CBMR (AT91_CAST(AT91_REG *) 0x0000003C) // (AC97C_CBMR) Channel B Mode Register
#endif
#define AT91C_BASE_AC97C (AT91_CAST(AT91PS_AC97C) 0xFFFA0000) // (AC97C) Base Address
在.c文件里要用到
AT91C_BASE_AC97C->AC97C_CAMR(这个地方为什么可以这样用啊,哪位大哥能给我安.h文件里定义的内容解释下)
AT91C_BASE_AC97C->AC97C_CBMR
但是需要进行物理地址的映射。
我该怎么弄呢?
我改成了:
void *AC97C_VIR_BASE;
#define AT91C_BASE_AC97C_VIR AT91C_BASE_AC97C+AC97C_VIR_BASE
AC97C_VIR_BASE = ioremap( AT91C_BASE_AC97C, 0x100 );
AT91C_BASE_AC97C_VIR->AC97C_CAMR
AT91C_BASE_AC97C_VIR->AC97C_CBMR
但是编译不对我该怎么改呢?
作者: marcomo1986 发布时间: 2010-09-14
哪位大哥帮小弟一下,着急啊,项目做不下去了,不胜感激
作者: marcomo1986 发布时间: 2010-09-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28