课程描述
本课程旨在培养具备全面嵌入式Linux开发能力的人才,采用理论教学与实践相结合的方式,系统地介绍了Linux下应用程序设计,系统移植,内核开发、设备驱动程序开发。通过本课程的学习,学员可以掌握Linux下字符设备、网络设备、触摸屏、PCI设备等驱动程序的开发,同时掌握嵌入式 Linux应用程序、ARM程序的开发和分析方法。
培养对象
Linux应用工程师、驱动开发工程师、内核工程师。
入学要求
- ◆ 了解Linux操作系统
- ◆ 熟悉C语言,熟悉指针、结构体等概念
使用教材
- ◆《国嵌-嵌入式Linux高级培训内部教材》
- ◆《国嵌-嵌入式Linux高级培训实验手册》
实验器材
Mini2440开发板 + Linux 2.6.29内核
课程大纲
序号 | 上午(理论) | 下午(实验) |
第一阶段 Linux基础与应用程序开发 |
第一天 |
1. 嵌入式系统概述
2. Linux定制安装
3. Linux命令详解
4. Linux系统管理
5. Shell编程
1. Linux定制安装
2. Linux命令操作
3. Shell编程
第二天 |
1. GCC程序编译
2. GDB程序调试
3. Makefile
4. Linux文件编程
5. Linux时间编程
1. GCC程序编译
2. GDB程序调试
3. Linux文件/时间编程
第三天 |
1. Linux进程控制编程
2. Linux进程间通讯编程
1. Linux进程控制编程
2. Linux进程间通讯编程
第四天 |
1. Linux进程间通讯编程
2. 多线程程序设计
1. Linux进程间通讯编程
2. 多线程程序设计
第五天 |
1. TCP/IP概述
2. Linux网络编程
1. Linux网络编程
第二阶段 ARM程序设计与系统移植 |
第六天 |
1. ARM处理器概述
2. ARM处理器工作模式
3. ARM系统寄存器
4. ARM寻址方式
5. ARM中断与异常
6. ARM环境C语言编程
7. ADS集成开发环境
1. ADS集成开发环境
2. ARM环境C语言编程
第七天 |
1. LED程序设计
2. ARM中断与异常
3. S3c2440 GPIO
4. 按键程序设计
1. LED程序设计
2. 按键程序设计
第八天 |
1. ARM bootloader介绍
2. ARM+Uboot 命令
3. ARM+Uboot 启动流程分析
1. Uboot命令
第九天 |
1. ARM+Uboot移植方法
2. ARM+Uboot网卡驱动程序移植
3. ARM+Uboot flash驱动移植
1. Uboot移植
2. Uboot网卡驱动移植
3. Uboot flash驱动移植
第十天 |
1. Linux内核架构
2. Linux内核源代码
3. Linux内核裁剪
4. Linux内核编译与安装
5. Linux内核启动流程
6. 交叉工具链使用
7. 嵌入式Linux内核制作
8. 嵌入式Linux根文件系统制作
1. Linux内核裁剪
2. Linux内核编译
3. Linux根文件系统制作
4. Uboot启动内核
第三阶段 Linux内核开发与系统移植 |
第十一天 |
1. Linux内核模块开发
2. Linux内存管理
3. Linux进程地址空间
4. Linux内核地址空间
5. Linux内核内存分配
6. Linux内核链表
1. Linux内核模块
2. Linux内核链表
第十二天 |
1. Linux进程管理
2. Linux进程调度
3. 系统调用实现
4. Linux内核定时器
1. 系统调用实现
2. 内核定时器
第十三天 |
1. Linux驱动简介
2. 字符设备驱动程序设计
3. 驱动调试技术
4. 并发与竞态
1. 简单字符设备驱动设计
第十四天 |
1. Ioctl型驱动
2. 内核等待队列
3. 阻塞型驱动程序设计
4. Poll设备操作
1. 字符驱动Ioctl设备方法
2. 阻塞型字符驱动设计
3. Poll设备方法设计
第十五天 |
1. Mmap设备操作
2. 硬件访问
3. 混杂设备驱动
4. LED驱动程序设计
1. Mmap设备操作
2. LED驱动程序设计
第十六天 |
1. Linux总线、设备、驱动模型
2. Linux platform驱动
3. 中断处理
4. 按键驱动程序
1. 按键驱动程序
第十七天 |
1. Linux网络体系架构
2. Linux网卡驱动程序设计
3. Dm9000网卡驱动程序分析
4. 触摸屏驱动程序设计
1. Dm9000网卡驱动程序设计
2. 触摸屏驱动程序设计
第十八天 |
1. PCI驱动程序设计
2. 串口驱动程序设计
1. PCI网卡驱动程序
第十九天 |
1. USB Specification
2. Linux USB 架构
3. USB Host Controller驱动测试
4. USB设备驱动程序设计
1. USB Host Controller驱动测试
2. USB网卡驱动程序设计
项目实战 H.264 远程视频监控系统 |
第二十天 |
1. USB摄像头驱动程序移植
2. H.264视频编解码程序移植
3. 视频采集、传输应用程序设计