linux 内核中物理地址转换为虚拟地址一些不懂的地方,麻烦指点

volatileunsignedlong*gpfcon=NULL;volatileunsignedlong*gpfdat=NULL;//这两个是驱动中的定义GPFCON0... volatile unsigned long *gpfcon = NULL;
volatile unsigned long *gpfdat =NULL;  //这两个是驱动中的定义

GPFCON 0X56000050
GPFDAT 0x56000054
GPFUP 0x56000058
Reserved 0x5600005c //这四个是手册中的数据

下面为物理地址转换为虚拟地址的映射
*gpfcon = (volatile unsigned long *)ioremap(0x56000050,16); //问题一:此处为什么是16?
gpfdat = gpfcon +1;//问题二:此处为什么是1?(volatile unsigned long*)所指向的长度是多少?
展开
 我来答
kwydwuf
推荐于2016-04-15 · TA获得超过7410个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2007万
展开全部
  1.  GPFCON 0X56000050
    GPFDAT 0x56000054
    GPFUP 0x56000058
    Reserved 0x5600005c 

这是四个连续的物理地址,每个长度为4字节,所以是16


2. 在 32位系统上, sizeof(指针) 是4,所以 sizeof(xxxx xxxx *) 总是等于4,由于gpfcon 指向的是被映射后的 0X56000050,  gpfdata 就指向 0x56000054

力控科技
2024-08-19 广告
ForceSCADA是力控科技信创产品的重要组成部分,具备完全自主知识产权,支持部署在Linux桌面版、服务器版、嵌入式等系统架构下。使用ForceSCADA可以搭建创新性高、扩展性佳、融合度强的SCADA平台,进而构建高效、智能化的监控中... 点击进入详情页
本回答由力控科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式