笔记参考了宋宝华老师的《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必需函数指针的确定;数据的获取过程;虚拟摄像头驱动程序编写过程

最新文章

  1. html5的web存储
  2. iOS 时间的处理
  3. ZH奶酪:自然语言处理工具LTP语言云调用方法
  4. 由React学习到Yeoman安装以及遇到的问题
  5. struts2 action 3中书写方式
  6. phpcms v9的url优化
  7. halcon,C# 学习
  8. Android学习笔记⑦——UI组件的学习AdapterView相关1
  9. 兼容IE,Firefox,Opera等浏览器的添加到收藏夹js代码实现
  10. 东软实训1 -jsp内置对象及其常用方法
  11. Android 深入解析光传感器(二)
  12. Struts2 xml 详解
  13. Linux提示字符设置
  14. QT之setstylesheet防止子窗体继承父窗体样式
  15. Shell命令-文件及内容处理之split、paste
  16. 第 9 章 数据管理 - 075 - 配置 VirtualBox backend
  17. MySQL按周统计 WEEK 实例
  18. Delphi数据库数据用文件流方式快速写入Excel文件
  19. 002.iSCSI服务端配置
  20. 响应式有利于SEO还是pc+手机端分开url有利于SEO?

热门文章

  1. 康哲20191114-1 每周例行报告kz404
  2. Skpi List跳表
  3. Thingsboard MQTT连接至服务器
  4. gisoracle做windows界面
  5. VC++ 返回13位时间戳(Unix时间戳)
  6. LSTM和双向LSTM讲解及实践
  7. 宝塔 ssl https无法访问使用
  8. 用java输出杨辉三角
  9. c++ 网络编程基础
  10. Vscode 调试 Flutter 项目