⼀.朱有鹏linux驱动学习笔记edu.51cto/topic/777.html
这⾥的驱动即linux内核驱动:
⼴义上就是这⼀段代码操作了硬件去动,所以这⼀段代码就叫硬件的驱动程序。
(本质上是电⼒提供了动⼒,⽽驱动程序提供了操作逻辑⽅法)
//裸机驱动程序通过往相应寄存器上写数据(⾼低电平)来操作硬件使其按照⽬的去动。
狭义上驱动程序就是专指操作系统中⽤来操控硬件的逻辑⽅法部分代码。
linux体系架构:
1.分层思想;
//有上下层;应⽤层APP通过系统调⽤API(也有C库,不过是API封装的)进⼊操作系统OS中
2.驱动的上⾯是系统调⽤API;
//驱动对上层API负责;下层负责⽤来实现上层,上层调⽤下层⼯作。
3.驱动的下⾯是硬件;
//被上层驱动调⽤,负责⽆条件搬砖;对于驱动来说操作硬件就是操作寄存器
4.驱动的⾃⼰本⾝也是分层的。
//分层本来为了降低难度反⽽显得有些难了!
管理学就是研究怎样把⽼板的⽅法和思路有效传递给底下员⼯,怎样把基层的情况尽可能多的让⽼板知道。
驱动应该这么学?
(⼀)学好C语⾔;
(⼆)掌握相关预备知识;
硬件操作⽅⾯;
应⽤层API;
(三)驱动学习阶段;
注重实践,⼀步⼀步写驱动;
框架思维,多考虑整体和上下层;
先通过简单设备学linux驱动框架;
学会总结、记录、这会有助于理解。
学习是⼀个螺旋上升的过程!
=========================⽬录============================
5.linux驱动开发
5.1.驱动应该怎么学
5.2.字符设备驱动基础
5.3.字符设备驱动⾼级
5.4.驱动框架⼊门之LED
5.5.linux设备驱动模型
5.6.misc类设备与蜂鸣器驱动
5.7.framebuffer驱动详解
5.8.input⼦系统基础之按键
5.9.触摸屏驱动移植实战
5.10.块设备驱动介绍
5.11.⽹络设备驱动介绍
5.1.驱动应该怎么学
5.1.1.什么是驱动1
5.1.2.什么是驱动2
5.1.3.模块化设计
5.1.4.linux设备驱动分类
5.1.5.驱动程序的安全性要求
5.1.
6.驱动应该这么学
5.2.字符设备驱动基础
5.2.1.开启驱动开发之路
5.2.2.最简单的模块源码分析1
5.2.3.最简单的模块源码分析2linux内核设计与实现 pdf
5.2.4.最简单的模块源码分析3
5.2.5.⽤开发板来调试模块
5.2.
6.字符设备驱动⼯作原理1
5.2.7.字符设备驱动⼯作原理2
5.2.8.字符设备驱动代码实践1
5.2.9.字符设备驱动代码实践2
5.2.10.应⽤程序如何调⽤驱动
5.2.11.添加读写接⼝
5.2.12.读写接⼝实践
5.2.13.驱动中如何操控硬件
5.2.14.静态映射操作LED1
5.2.15.静态映射操作LED2
5.2.1
6.静态映射操作LED3
5.2.17.动态映射操作LED
5.3.字符设备驱动⾼级
5.3.1.注册字符设备驱动新接⼝1
5.3.2.注册字符设备驱动新接⼝2
5.3.3.注册字符设备驱动新接⼝3
5.3.4.注册字符设备驱动新接⼝4
5.3.5.字符设备驱动注册代码分析1
5.3.
6.字符设备驱动注册代码分析2
5.3.7.⾃动创建字符设备驱动的设备⽂件5.3.8.设备类相关代码分析1
5.3.9.设备类相关代码分析2
5.3.10.静态映射表建⽴过程分析
5.3.11.动态映射结构体⽅式操作寄存器5.3.12.内核提供的读写寄存器接⼝
5.4.驱动框架⼊门之LED
5.4.1.何谓驱动框架
5.4.2.内核驱动框架中LED的基本情况5.4.3.初步分析led驱动框架源码1
5.4.4.初步分析led驱动框架源码2
5.4.5.在内核中添加或去除某个驱动5.4.
6.基于驱动框架写led驱动1
5.4.7.基于驱动框架写led驱动2
5.4.8.基于驱动框架写led驱动3
5.4.9.linux内核的gpiolib学习1
5.4.10.linux内核的gpiolib学习2
5.4.11.linux内核的gpiolib学习3
5.4.12.linux内核的gpiolib学习4
5.4.13.linux内核的gpiolib学习5
5.4.14.linux内核的gpiolib学习6
5.4.15.linux内核的gpiolib学习7
5.4.1
6.使⽤gpiolib完成led驱动
5.4.17.将驱动添加到内核中
5.5.linux设备驱动模型
5.5.1.linux设备驱动模型简介
5.5.2.设备驱动模型的底层架构
5.5.3.总线式设备驱动组织⽅式
5.5.4.platform平台总线简介1
5.5.5.platform平台总线⼯作原理2
5.5.
6.platform平台总线⼯作原理3
5.5.7.平台总线实践环节1
5.5.8.平台总线实践环节2
5.5.9.平台总线实践环节3
5.5.10.平台总线实践环节4
5.6.misc类设备与蜂鸣器驱动
5.6.1.板载蜂鸣器驱动测试
5.6.2.misc类设备介绍
5.6.3.misc驱动框架源码分析1
5.6.4.misc驱动框架源码分析2
5.6.5.蜂鸣器驱动源码分析1
5.6.6.蜂鸣器驱动源码分析2
5.7.framebuffer驱动详解
5.7.1.framebuffer介绍
5.7.2.framebuffer应⽤编程实践1 5.7.3.framebuffer应⽤编程实践2 5.7.4.framebuffer应⽤编程实践3 5.7.5.framebuffer驱动框架总览5.7.
6.framebuffer驱动框架分析1 5.8.input⼦系统基础之按键
5.8.1.什么是input⼦系统
5.8.2.input设备应⽤层编程实践1 5.8.3.input设备应⽤层编程实践2 5.8.4.input⼦系统架构总览1
5.8.5.input⼦系统架构总览2
5.8.
6.输⼊核⼼层源码分析1
5.8.7.输⼊核⼼层源码分析2
5.8.8.输⼊事件驱动层源码分析5.8.9.输⼊设备驱动层源码分析1 5.8.10.输⼊设备驱动层源码分析2 5.8.11.中断⽅式按键驱动实战1 5.8.12.中断⽅式按键驱动实战2 5.9.触摸屏驱动移植实战
5.9.1.触摸屏驱动概览
5.9.2.内核中的竞争状态和互斥1 5.9.3.内核中的竞争状态和互斥2 5.9.4.中断的上下半部1
5.9.5.中断的上下半部2
5.9.
6.linux内核的I2C⼦系统详解1 5.9.
7.linux内核的I2C⼦系统详解2 5.9.
8.linux内核的I2C⼦系统详解3 5.
9.9.linux内核的I2C⼦系统详解4 5.9.10.linux内核的I2C⼦系统详解5 5.9.11.linux内核的I2C⼦系统详解6 5.9.12.linux内核的I2C⼦系统详解7 5.9.13.gslX680驱动的移植实践5.9.14.gslX680驱动源码分析2 5.
9.15.gslX680驱动源码分析2 5.9.16.⽼版本触摸屏的驱动
5.10.块设备驱动介绍
5.10.1.正确理解块设备驱动的概念5.10.2.块设备驱动框架简介
5.10.3.块设备驱动案例分析1
5.10.4.块设备驱动案例分析2
5.10.5.块设备驱动案例分析3
5.11.⽹络设备驱动介绍
5.11.1.⽹络设备驱动概述
5.11.2.虚拟⽹卡驱动分析1
5.11.3.虚拟⽹卡驱动分析2
5.11.4.DM9000驱动源码分析1 5.11.5.DM9000驱动源码分析2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论