最近正在学习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. 编译高级图形库例子,显示图形
阅读(1203) | 评论(0) | 转发(0) |