开发者学堂课程【物联网开发 - Linux 驱动开发实操演练:驱动简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/657/detail/10868
驱动简介
内容介绍
一、驱动的概念
二、驱动的地位
一、驱动的概念
1、软件驱动
(1)驱动的作用
驱动硬件,使硬件处于某种工作模式,提供控制硬件方法。
在学习 linux 驱动之前,大家可能接触过某个代码,比如,做单片机开发肯定操作过硬件设备。当时在操作硬件设备时,大部分人是在裸机上进行操作开发。在裸机上开发时,可能会编写软件代码控制单面机,驱动硬件工作。
我们编写各种硬件设备的 init 函数也称初始化函数、操作控制的函数,比如
输出:gpio_out()、输入:gpio_int()、
某些通讯方式:sent()、recv()收发数据等等,提供这些方法。
在 main 函数里调用这些方法,首先,调用 init 数字化,接下来编写一个 while 循环,在循环里编写相应的操作。
在这个过程中,初始化、硬件设备的控制都属于对硬件设备的驱动工作,对硬件设备的操作都放在 main 函数里面。
之前大家在做开发时没有驱动的概念是因为我们把驱动和对硬件设备的操作放在一起没有讲什么是驱动,现在 linux 操作系统运行以后,从整体上分成了两层,一是应用层,二是内核层。
在操作系统运行时必须有一个硬件,系统软件必须运行在硬件平台上才能工作,在此我们只提设备这个硬件平台。
层次清楚之后,首先了解一下内核层。现在我们使用的内核 linux 内核。
之前我们学习 linux 操作系统时,linux 操作系统有五大功能,分别是进程管理、内存管理、文件系统、网络、设备控制,其中的设备控制功能与今天所讲内容相关。
设备控制是内核提供的功能用来管理编写的驱动。
驱动是由内核驱动控制统一管理,驱动在编写时必须遵循内核提供的驱动框架。驱动只是完成对设备的驱动工作,应用层的应用程序完成对设备的具体操作,应用层通过系统调用操作驱动。
二、驱动地位
1、驱动是连接内核与设备的桥梁