驱动学习总结

驱动学习总结

  1. 硬件访问技术–地址映射

(1)动态映射–使用最多的

void *ioremap(phyaddr ,size)

入参:phyaddr 是物理地址,
size 是映射的区域大小
函数的返回值是映射后的虚拟地址

具体用法可参考:https://blog.csdn.net/zqixiao_09/article/details/50859505

(2)静态映射
用户将事先指定的映射关系,在内核启动时,将物理地址自动映射为虚拟地址。

用户通过map_desc结构来指明物理地址和虚拟地址的关系:
struct map_desc {
unsigned long virtual; //虚拟地址
unsigned long pfn; //物理地址所在的页帧号
unsigned long length; //映射长度
unsigned long type; //映射的设备类型
};

如何通知内核?
以s3c2440为例:
在cpu.c中有个结构体数组专门用来填充你定义的struct map_desc,
然后在初始化函数 比如 s3c24XX_init_io()中调用iotable_init()来调用刚才的数组完成映射

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值