笔记参考了宋宝华老师的《Linux设备驱动开发详解:基于最新的Linux 4.0内核》以及韦东山老师的嵌入式驱动教程

笔记开发环境:

单板:第一章到第八章使用TINY4412-1611;第九章及之后章节使用iTOP4412_SCP精英版

编译工具链:arm-linux-gcc-4.3.2

内核版本:linux-3.5-20170221

busybox版本:busybox-1.20.0

重要知识点会使用加粗字体

一、驱动基础:系统调用过程

二、点亮LED:字符驱动框架;完成init()和exit();完成write()、open()和release();LED字符驱动完整代码

三、中断分析以及按键中断:内核中断分析;等待队列;按键中断字符驱动程序;中断的底半部机制;中断共享

四、poll()、select()和epoll():poll()函数;select()函数;epoll()函数;poll()、select()和epoll()的区别;驱动程序的poll()函数

五、并发控制:并发与竞态;中断屏蔽;原子操作;自旋锁;信号量;互斥体;互斥体和自旋锁的选择

六、异步通知:应用程序异步通知signal();驱动程序异步通知fasync()

七、内核定时器:内核定时器的使用方法;完整代码

八、输入子系统:输入子系统分层;input.c分析;input_dev;input_handler;input_dev和input_handler的连接过程;总结;更改key.c为输入子系统

九、总线设备驱动模型:platform_device;platform_driver;platform_bus_type;总结;更改led.c为总线设备驱动

十、LCD的framebuffer设备驱动:fb_info;fb_ops;framebuffer驱动调用流程

十一、三星平台framebuffer驱动:平台驱动使用的结构体;platform_driver;platform_device;关系总结;s3cfb_lcd

十二、使用PWM调整LCD背光亮度:用户空间调整背光亮度;PWM子系统;三星平台驱动分析

十三、GPIO子系统:gpio_direction_output()分析;内核中GPIO的使用函数;LED驱动优化

十四、i2c子系统:i2c框架分析;核心层提供的注册函数;i2c-s3c2410.c文件分析;设备驱动层程序编写过程

十五、电容触摸屏驱动:电容触摸屏检测原理;电容触摸屏控制芯片驱动分析;自己实现触摸屏驱动

十六、USB驱动:USB固件和USB传输方式;Linux USB设备驱动模型;USB数据传输;USB鼠标设备驱动

十七、块设备驱动:块设备概念和读写过程;块设备框架分析;块设备驱动编写步骤

十八、Nand Flash驱动和Nor Flash驱动:Nand Flash驱动分析;MTD子系统框架分析;Nor Flash驱动分析;Nand Flash驱动和Nor Flash驱动编写

十九、eMMC驱动框架分析:MMC简介;MMC框架分析;MMC驱动框架总结

二十、网卡框架分析、虚拟网卡驱动和DM9621驱动分析:网络设备驱动的结构;网络设备驱动分析;虚拟网卡驱动编写过程及代码;DM9621驱动分析

二十一、RTC驱动:RTC设备驱动分析;修改内核支持RTC

二十二、DMA驱动:DMA简介;DMA Engine介绍和DMA设备驱动步骤;DMA设备驱动程序

二十三、uevnet机制和U盘自动挂载:uevent机制;编辑mdev.conf实现U盘自动挂载

二十四、V4L2框架主要结构体分析和虚拟摄像头驱动编写:V4L2框架主要结构体分析;核心层提供的注册函数;v4l2_device和video_device的file_operations分析;v4l2.c的init()函数分析;数据传输和控制结构体分析;虚拟摄像头驱动vivi.c虚拟机测试;ioctl()执行过程和v4l2_ioctl_ops必需函数指针的确定;数据的获取过程;虚拟摄像头驱动程序编写过程

LINUX驱动笔记 目录的更多相关文章

  1. Linux~学习笔记目录索引

    回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...

  2. 嵌入式Linux驱动笔记(十八)------浅析V4L2框架之ioctl【转】

    转自:https://blog.csdn.net/Guet_Kite/article/details/78574781 权声明:本文为 风筝 博主原创文章,未经博主允许不得转载!!!!!!谢谢合作 h ...

  3. linux学习笔记-目录结构(1)

    每个linux系统的目录结构差不多,因为有FHS(Filesystem Hierarchy Standard)标准的规范. FHS的重点在于规范每个特定的目录下应该要放什么样的数据. FHS依据文件系 ...

  4. 【linux驱动笔记】linux模块机制浅析

      1.   模块module 操作系统分微内核和宏内核,微内核优点,可以使操作系统仅作很少的事,其它事情如网络处理等都作为应用程序来实现,微内核精简的同时,必然带来性能的下降.而linux的宏内核设 ...

  5. Linux/Centos笔记目录

        Linux介绍 Linux入门--个人感想 Google怎么用linux 初入Linux Windows XP硬盘安装Ubuntu 12.04双系统图文详解 实例讲解虚拟机3种网络模式(桥接. ...

  6. linux学习笔记-目录相关知识

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! linux的目录结构及作用是根据fhs标准定制的,以下列出一些常用的目录的作用,以及fhs官方网站的连接 FHS官方网站的连接: ...

  7. Linux学习笔记 -- 目录与文件的管理

    目录结构 Linux的目录结构为树状结构,最顶级的目录为根目录 “/”. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是. 绝对路径与相对路径 绝 ...

  8. linux学习笔记-目录结构(2)

    2./usr的意义与内容 依据FHS的基本定义,/usr里面放置的数据属于可分享的与不可变动的. usr是UNIX Software Resource的缩写,即UNIX操作系统软件资源所放置的目录,而 ...

  9. 【linux驱动笔记】字符设备驱动相关数据结构与算法

    欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...

随机推荐

  1. 康哲20191114-1 每周例行报告kz404

    此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/10004 本周PSP  本周进度条  本周折线图  饼状图

  2. 第07组 团队Git现场编程实战

    组员职责分工 团队成员 分工 杨明哲 爬数据,做网页 林兴源 合作编码完成了对美团数据的分析,分析出最有发展潜力的十佳好店 卞永亨 从大众点评分析出了服装商圈 林鑫 合作编码完成了对美团数据的分析,分 ...

  3. 如何选题?| 什么样的科学问题 | 研究项目才是有意义的?| scientific method

    搞科研,尤其是生命科学,经常会觉得自己做的东西是坨屎,没有任何意义. 在硕博的时候这种感觉会非常强烈,一个是自己思考能力不足:二是你的项目不是你设计的,不懂个中缘由,只执行的话就会很无聊,找不到意义感 ...

  4. Nginx日志按日切分及清理超期的日志文件

    Nginx的日志配置如下: #定义日志打印的格式 log_format main '$remote_addr - $remote_user [$time_local] "$request&q ...

  5. SQLite与MySQL区别

    原文链接:https://blog.csdn.net/zbw1185/article/details/47975965简单来说,SQLITE功能简约,小型化,追求最大磁盘效率:MYSQL功能全面,综合 ...

  6. Tomcat7/8/8.5三种版本的redis-session-manager的jar和xml配置均不同

    chexagon/redis-session-manager: A tomcat8 session manager providing session replication via persiste ...

  7. python的xpinyin模块:汉字转拼音

                            pypinyin 1.安装 pip install pypinyin 2.使用方法 >>> from pypinyin import ...

  8. 线程或进程绑定到特定的cpu

    常用的宏定义有: 1) 对cpu集进行初始化, 将其设置为空集 void CPU_ZERO(cpu_set_t *set); 2) 将指定的cpu加入到cpu集中 void CPU_SET(int c ...

  9. 【微信开发】微信小程序通过经纬度计算两地距离php代码实现

    需求: 要求做个根据用户当前位置获取周围商家地址,并且按照由近到远排序, 方法一: 代码层实现 封装方法: /** * @desc 根据两点间的经纬度计算距离 * @param float $lat ...

  10. Qt编写气体安全管理系统6-地图监控

    一.前言 地图监控主要是提供一个地图(可以是平面的也可以是立体彩色的,一般建议鸟瞰图,有3D感),然后设备在对应的地图上,可以切换地图来查看对应区域的设备,一般来说一个区域会有一个地图文件,设备在地图 ...