驱动及驱动开发的简单理解

一直对驱动有着强烈的好奇心,怎奈工作始终与其无缘,且未来也不大可能接触驱动。因此,今天用了一些时间,去简单的了解了一下驱动及驱动开发。如果有错误的理解,请予以指正,不胜感激!

什么是驱动

在计算中,设备驱动程序是一种计算机程序,用于操作或控制连接到计算机的特定类型的设备。驱动程序提供了与硬件设备的软件接口,使操作系统和其他计算机程序可以访问硬件功能,而无需了解有关所使用硬件的精确细节。

驱动程序通过硬件连接到的计算机总线或通信子系统与设备进行通信。当调用程序调用驱动程序中的例程时,驱动程序向设备发出命令。设备将数据发送回驱动程序后,驱动程序可以调用原始调用程序中的例程。驱动程序依赖于硬件且特定于操作系统。它们通常为那些有必要的时间异步的硬件接口提供终端处理。

驱动开发是什么样子的

有两篇博客,很好的讲述了驱动开发大概什么样子的,感谢作者:

需要关注的一些点
  • ioctl
  • writel and readl
  • ioremap, 通过数据手册可以找到每个端口的物理地址. #define FS4412_GPF3CON 0x114001E0
(摘)系统驱动和裸机平台设备驱动的不同

第一次接触带有操作系统的驱动编程,之前感觉系统驱动比较神秘的面纱也被揭开了,跟裸机平台的设备驱动相比,区别就是

1)系统给驱动的编程增加了一个框架,需要依照系统对于驱动的统一管理来实现框架的内容,比如增加moudle_init,在init中注册设备号 添加设备等, 这都是在告诉系统,我们写的驱动具体实现的东西在哪里。
2)具体实际的动作,跟裸机驱动是一致的,因为驱动的本质就是直接操作硬件,而对于硬件的操作方法是硬件的数据手册里边统一定义的,手册没有改,对硬件的操作同样不会变化,
3)系统实现控制驱动的通信方法,裸机驱动调用控制驱动的方法直接调用就可以,而系统中需要通过ioctl来实现应用驱动的程序跟驱动程序的通信控制。

  • 3
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值