第一天9:00-12:00:
linux内核开发环境搭建过程;
2、 makefile内容详解 ;
3、 arm-Linux内核配置与裁减;
4、 uboot,linux makefile分析;
5、 系统存储空间配置解析;
6、 FLASH镜像存储布局和RAM初始化存储布局
13:30-18:30
【实验】
1、 开发环境搭建;
2、 linux内核编译,在内核中添加模块;
第二天9:00-12:00:
1、 linux设备驱动程序概述;
2、 设备的主次编号;
3、 linux设备驱动程序框架与内核接口实现;
4、 Linux字符设备驱动开发;
5、 字符设备重要数据结构fs_operation分析;
13:30-18:30
6、 字符设备的注册和撤销;
7、 字符设备的打开和释放(open, release);
8、 字符设备的读写(read,write);
9、 字符设备的控制(ioctl);
10、 通过proc文件系统分析系统性能;
11、 LED的Linux驱动程序
【实验】
简单linux 设备驱动程序开发;
第三天9:00-12:00:
linux设备驱动程序基础知识:
1、 调试技术,编写规范;
2、 使用printk函数调试Linux内核;
3、 内存管理;
4、 中断处理;
5、 硬件中断处理流程;
13:30-18:30
6、 Linux内核中断子系统;
7、 安装中断处理程序;
8、 上半部/下半部处理;
9、 内核空间与用户空间数据的互访;
10、阻塞型I/O;
11、I/O复用(poll和select);
【实验】
1、 调试技术,内存管理;
2、 按键的Linux驱动程序;
第四天9:00-12:00:
linux设备驱动程序高级部分:
1、 内核同步机制,时间流;
2、 内核互斥机制;
3、 内存分配机制;
13:30-18:30
1. 异步串口通讯概述;
2. Linux终端与控制台体系;
3. Linux串口驱动程序与分析;
4. Linux串口的应用;
5. Linux网络驱动程序的层次;
【实验】
1、 串口设备驱动程序分析,与调试(uboot,linux2.4.20)
第五天9:00-12:00:
网络socket程序设计
1、 TCP/IP协议栈框架;
2、 Socket编程
网络设备驱动程序开发
1、 网络设备的初始化;
2、 网络数据包的发送和接收;
3、 Net_device数据结构;
4、 sk_buff数据结构;
5、 内核的驱动程序接口;
13:30-18:30
6、 网络设备的内核加载;
7、 网络设备的模块加载;
8、 网卡驱动程序的移植;
【实验】
网络设备驱动程序分析,与调试(linux2.4.20)
第六天9:00-12:00:
USB HOST接口与Linux驱动程序设计;
1、 USB接口概述;
2、 USB规范和USB总线,USB OHCI标准;
3、 USB Host接口硬件设计;
4、 Linux的USB OHCI驱动程序接口分析;
13:30-18:30
5、 USB主机和USB设备;
6、 USB数据传输时序;
7、 USB传输模式(等时、中断、控制、批量);
8、 主要数据结构及接口函数;
9、 USB设备分类和驱动程序;
【实验】
1. USB HOST驱动程序测试