LED驱动----ioremap 映射

本文介绍了Linux驱动中的ioremap函数,该函数用于将硬件寄存器映射到虚拟内存,使得驱动程序能够操作硬件。以LED驱动为例,展示了如何使用ioremap初始化GPIO寄存器,并通过控制GPIO实现LED的开关操作。在加载和卸载模块时,LED的亮灭状态随之变化。
摘要由CSDN通过智能技术生成

 

        刚开始学字符设备驱动,感觉最难的是驱动和底层硬件的连接。linux上的驱动程序,是基于操作系统之上的,他并不直接和底层的硬件打交道,但是我们写的驱动必须能使硬件“跑”起来,即与硬件紧密相连。

        就拿最简单的LED驱动来说,我们的驱动程序是在虚拟的内存上面跑的,但是最终,LED的点亮还是必须靠GPIO管脚的高低电平来控制。那么,我们的虚拟的内存怎么才能和实际的硬件上面的寄存器对应起来呢?

        这篇要写的就是ioremap这个映射函数,他可以将我们硬件上面的寄存器,映射为虚拟的内存,从而使驱动程序在我们的虚拟的内存中运行。

 

void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) 
入口: phys_addr:要映射的起始的IO地址,即:物理地址
size:要映射的空间的大小; 
flags:要映射的IO空间的和权限有关的标志;
 
 下面是我用ioremap函数写的第一个LED 的驱动:(硬件是s3c2440的开发板)
 
/***************************************************************/
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值