课程描述
本课程旨在培养具备全面嵌入式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. 视频采集、传输应用程序设计 |