Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57593
  • 博文数量: 19
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-03 15:03
文章分类
文章存档

2011年(1)

2009年(8)

2008年(10)

我的朋友

分类:

2009-01-01 15:34:25

最近正在学习linux驱动的开发,看到有人写了这个计划,拿来当个参考吧!

符课程大纲:

第一天

9:00
|
12:00
1. Linux字符设备驱动程序
目标:掌握Linux驱动程序开发基本方法,用户程序和内核驱动程序的交互机制。经过学习后能够编写实用的字符设备驱动程序(采集数据/控制执行机)

设备驱动程序简介
 1 Linux设备驱动的概念
 2 设备和模块分类
 3 模块的构建、编译和装载
字符设备驱动程序
 1 字符设备驱动程序分析
 2 主设备号和次设备号
 3 文件操作
 4 fs_operation结构分析
 5 open和release
 6 read和write
 7 ioctl
 8 阻塞型I/O
 9 poll和select



13:30
|
16:30
实验
      1. 熟悉驱动开发的GNU编程环境和命令
      2. 编写一个Hello World模块并加载测试
      3. 认识S3C2410的GPIO操作原理
      4. 将驱动程序直接编译到内核
      5. 编写字符驱动程序,控制执行机(LED)
      6. 编写较复杂的字符驱动程序,阻塞用户进程进行同步

第二天

9:00
|
12:00
2. 内核内存管理与中断处理

目标:掌握Linux内核存储器管理、定时、中断处理等基础设施的使用。经过学习后能够以高效的方式实现驱动程序,获得较高的驱动程序性能。包括实时性、I/O吞吐率、低处理器占用

块设备与网络设备介绍
      2.1. Linux内存管理机制
      2.2. 内存分配与存储器映射
      2.3. 高速缓存管理
      2.4. mmap设备操作
      2.5. 在内核中描述时间
      2.6. 使用任务队列
      2.7. 内核定时器
      2.8. 硬件中断处理流程
      2.9. Linux内核中断子系统
      2.10. 安装中断处理程序
      2.11. 上半部/下半部处理
      2.12. 中断共享

13:30
|
16:30
实验
      1. 编写例子驱动使用3种内存分配机制
      2. 编写驱动程序使用2种延时机制,理解当中的区别
      3. 编写驱动程序使用内核定时器和任务
      4. 编写使用中断的键盘驱动程序

第三天

9:00
|
12:00
3. 块设备驱动程序,MTD以及文件系统
目标:掌握Linux块设备驱动程序和Flash存储器高级使用技术。经过学习后能够自如选择嵌入式存储方案,并编写/移植相关驱动程序,满足苛刻的嵌入式数据存储需求
      3.1. 块设备特点及驱动程序工作原理
      3.2. 块设备驱动与文件系统接口
      3.3. 块设备中的访问优化原理——请求队列与缓冲区
      3.4. 典型的块设备驱动程序分析
      3.5. IDE设备块驱动程序框架
      3.6. 2.6内核的SATA驱动分析
      3.7. 2.4内核与2.6内核存储驱动的变革
      3.8. MTD Flash块设备驱动程序
      3.9. Linux中存储卡驱动分析
      3.10. 嵌入式文件系统

4. 网络驱动程序
目标:深入理解Linux网卡驱动程序开发方法,软件socket和网卡驱动程序的数据交换过程。经过学习后能够编写实用的网卡驱动程序,并实现高级的网络监控功能
      4.1. OSI网络参考模型
      4.2. 套接字(socket)简介
      4.3. 套接字缓冲区(sk_buff)
      4.4. net_device结构分析
      4.5. 数据包传送与接收
      4.6. 网络驱动的中断处理
      4.7. 以太网MAC地址解析

13:30
|
16:30
实验
      1. 编写简单的块设备驱动程序,实现磁盘分区、文件系统挂载
      2. 移植编写S3C2410 Flash控制器驱动程序
      3. 移植嵌入式文件系统,并格式化、部署根文件系统映像
      4. 分析嵌入式文件系统垃圾块回收
      5. 测试、分析非正常断电对文件系统影响

      1. 编写简单的虚拟以太网卡驱动程序
      2. 移植编写嵌入式CS8900A网卡驱动程序
      3. 配置网络参数,测试网卡驱动程序行为
      4. 编写测试程序,监视并控制网卡链路层、物理层对外部事件响应


 


 

第四天

9:00
|
12:00
5. USB设备驱动程序开发和PCI
目标:深入理解Linux内核USB子系统,掌握USB驱动程序编写技术。经过学习后能够编写/移植USB主机OHCI以及设备驱动程序,实现对硬件平台功能的灵活扩展
      5.1. Linux内核对USB规范的支持
      5.2. USB主机驱动程序
      5.3. USB设备驱动程序
      5.4. USB HUB驱动程序
      5.5. OHCI HCD
      5.6. PCI总线概述
      5.7. PCI配置空间
      5.8. PCI主设备busmaster
      5.9. PCI设备驱动结构

6. 帧缓冲驱动程序和DMA
目标:掌握Linux嵌入式显示驱动程序开发方法,理解嵌入式Linux图形驱动程序实现机制。经过学习能过编写/移植嵌入式显示控制器驱动程序,并针对各种LCD硬件作定制工作
      6.1. 嵌入式显示设备简介
      6.2. 帧缓冲(framebuffer)设备特点
      6.3. 帧缓冲驱动程序显示原理
      6.4. 帧缓冲驱动程序与DMA配合
      6.5. 硬件图形加速简介
      6.6. 使用高级图形库





13:30
|
16:30
实验
      1. 在内核中调整USB子系统,改变USB功能集
      2. 编写并移植PL2303驱动程序,实现USB与主机串口通信
      3. 添加U盘驱动程序,观察目标板上U盘加载过程
      4. 移植USB摄像头驱动,并加载测试
      5. 使用USB工具深入理解USB设备概念和USB驱动程序结构
      6. 调试PCI总线初始化
      7. 观察并调试PCI设备配置过程
      8. 加载简单的PCI设备驱动

      9. 编写S3C2410彩色LCD控制器驱动程序
      10. 编写测试程序控制屏幕显示
      11. 编译高级图形库例子,显示图形
阅读(1239) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~