首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

嵌入式linux驱动求高人指教,该怎么处理

2013-01-25 
嵌入式linux驱动求高人指教在linux下写驱动要用虚拟地址,这个我知道。例如:要操作两个寄存器寄存器A的地址

嵌入式linux驱动求高人指教
在linux下写驱动要用虚拟地址,这个我知道。
例如:要操作两个寄存器   寄存器A的地址为0x3cfffff0,寄存器B的地址是0x3cfffff4,问题来了。
当我进行虚拟地址映射的时候分两中操作,
第一种vA=(volate unsigned int *)ioremap(0x3cfffff0,8)
      vB=vA+1;
第二种:vA==(volate unsigned int *)ioremap(0x3cfffff0,8)
       vB==(volate unsigned int *)ioremap(0x3cfffff4,8)
请问以上两种映射后的虚拟地址操作的都是实际的物理地址吗,第二种映射方式是否正确。
[解决办法]
ioremap是将物理地址映射成内核虚地址,供驱动io操作
[解决办法]
个人感觉都OK,有什么问题吗?什么现象?
[解决办法]
第一个ioremap 已经映射了8字节,就是把0x3cfffff0-0x3cfffff8,把B已经包含进去了,所以不用再映射一次。
重叠映射不是好习惯。

热点排行