400-888-5228

课程介绍:

驱动程序属于Linux内核的一部分,开发驱动程序是嵌入式Linux项目中很重要的一部分内容。开发出高质量、高性能的驱动程序是项目成败的关键。随着 市场上对嵌入式产品的需求越来越大,从而对驱动程序开发人员的需求也在飞速增加。本课程的最大特点是以项目为培训目标,培养出真正具有实际开发能力的专业 人才。

用户态进程和内核的通信方法;Char,block设备驱动的编写;中断处理和I/O调度;内核时钟;内核同步;网络驱动程序的编写;内核的设备管理模 型;USB,PCI驱动接口;Linux TCP/IP栈结构;LinuxIP协议栈主要数据结构;Netfilter的框架;内核调试方法。

 

课程长度:

3天

课程对象:

针对Linux驱动开发和Linux内核开发及嵌入式开发系统开发技术人员。

具备Linux应用和开发经验,欲从事Linux平台驱动程序开发或嵌入式开发者。

 

课程大纲

1.Linux内核简介

  • Linux系统架构
  • 内核的启动原理

2.Linux内核编译

  • Linux内核编译环境
  • 内核裁减
  • 使用自定义内核

3.内核模块简介

  • 内核模块管理

4.内核模块编译

  • 内核模块开发环境
  • hello world

5.字符设备驱动

  • 认识linux的字符设备
  • 字符设备驱动框架
  • 字符设备驱动解析
  • 定制字符设备驱动

6.内核代码的调试

  • 内核的调试开关
  • 打印调试
  • 查询调试
  • kdump

7.并发机制和临界区

  • 多进程模型
  • 临界区
  • 信号量和互斥锁
  • 自旋锁

8.高级字符设备操作

  • ioctl
  • I/O阻塞
  • poll和select

9.时间和延时

  • 时间的计算
  • 当前时间
  • 延时
  • 内核定时器
  • tasklets

10.内存分配

  • kmalloc工作原理
  • cache管理
  • vmalloc及类似函数
  • CPU相关变量
  • 大缓冲区

11.与硬件的通信

  • I/O端口和I/O内存
  • 访问I/O端口

12.内存映射和DMA

  • 内存管理和mmap
  • Direct I/O
  • 直接内存访问

13.中断处理

  • 中断处理程序
  • 中断的顶半部和低办部
  • 中断共享
  • 中断驱动的I/O

14.内核的数据类型

  • 接口特定的数据类型
  • List

15.PCI设备驱动

  • PCI总线
  • PC/104
  • 其他PC总线

16.USB设备驱动

  • USB设备和主机
  • USB和sysfs
  • USB urbs
  • USB驱动框架

17.Linux设备驱动模型

  • Kobjects,Ksets和内核子系统
  • 地层Sysfs操作
  • 热插拔事件
  • 总线,设备和驱动

18.文件系统驱动

  • vfs驱动框架
  • ext3文件系统

19.块设备驱动

  • 块设备操作
  • 请求队列

20.网络设备驱动

  • 网络设备驱动框架
  • 数据的收发和ioctl
  • 中断处理
  • Socket缓冲区
  • 流量统计