课程目标 |
|
本课程为企业用户专门定制,涵盖了嵌入式Linux操作系统原理、应用开发、内核定制移植、驱动程序开发等全方面内容,同时还包括电源管理、内核调试、性能优化等高级内容。学习本课程的学员能够从事嵌入式系统相关的项目开发。
帮助您的企业实现以下目标:
◆ 新员工培训,快速熟悉嵌入式软件开发,学习嵌入式系统开发经验,培养独立解决问题能力,缩短新员工进入实际项目时间。
◆ 员工技术储备,了解主流开发硬件,熟悉最新嵌入式Linux操作系统原理,掌握嵌入式应用软件开发,了解行业发展动态。
◆ 提升现有开发团队技术,进一步熟悉嵌入式Linux内核原理,独立完成嵌入式Linux移植,培养独立开发嵌入式驱动程序能力,掌握嵌入式系统开发流程。
|
培训对象 |
|
嵌入式系统项目经理,嵌入式系统开发人员,嵌入式系统分析设计人员、嵌入式测试
工程师、嵌入式操作系统工程师及想从事嵌入式系统开发的开发人员。 |
培训方式 |
|
此课程只针对企业用户,培训人数在8人以上,两种培训方式:一是讲师上门授课;二是到我们培训中心参加培训;内容可根据客户要求进行定制。如有需求可拨打010-82600901电话进行洽谈。 |
课程进度安排 |
| 时间 |
课程大纲 |
| 第一天 |
9:00
|
12:00 |
1.1 嵌入式Linux基础
1.1.1 Linux内核发展趋势与概况
1.1.2 建立嵌入式Linux开发环境
1.1.3 GCC工具链的使用方法
1.1.4 GDB调试简要介绍
1.1.5 ELF文件格式分析
1.1.6 autoconf使用
1.1.7 makefile语法
1.1.8 编译内核
实验
1)用GDB调试一个简单的应用程序
2)使用autoconf创建一个简单的makefile文件
3)通过makefile编译程序
|
13:30
|
16:30 |
1.2 Linux应用编程
1.2.1 Linux静态/动态库的开发
1.2.2 Linux进程间通讯编程方式
1.2.3 Linux网络编程
实验
1)开发一个Linux静态库
2)开发一个Linux动态库,并测试
3)比较Linux的几种进程间通讯方式
|
| 第二天 |
9:00
|
12:00 |
2.1 理解Linux内核
2.1.1 Linux内核框架
2.1.2 Linux的进程
2.1.3 O(1)调度算法分析
2.1.4 Linux内存管理模式
2.1.5 Linux内核启动流程分析
2.1.6 Linux系统服务
2.1.7 启动Linux内核
实验
1)开发一个多进程的程序
2)分析Linux启动流程 |
13:30
|
16:30 |
2.2移植
2.2.1 移植的概念
2.2.2 移植Linux内核
2.2.3 bootloader的概念
2.2.4 移植u-boot
实验
1)动手移植Linux内核到arm平台
2)移植u-boot到arm平台
|
| 第三天 |
9:00
|
12:00 |
3.1 Linux内核调试
3.1.1 Printk()
3.1.2 Oops消息
3.1.3 /proc文件系统
3.1.4 Kgdb
3.1.5 追踪工具(strace,ltt,gprof,gcov,memwatch)
实验
1)使用printk函数调试Linux内核
2)通过proc文件系统调整系统性能
3)使用kgdb调试Linux内核
|
13:30
|
16:30 |
3.2 系统性能测试
3.2.1快速启动技术
3.2.2优化内核应用程序
3.2.3 内存泄漏检测
实验
1)测试自己Linux系统的性能
2)检测给定程序,查看内存泄漏
|
| 第四天 |
9:00
|
12:00 |
4.1 Linux 设备驱动开发
4.1.1 Linux驱动模型与分类
4.1.2 构建和运行模块
4.1.3 module工具使用方法
4.1.4 中断处理
4.1.5 内核中采用的同步技术
4.1.6 字符设备驱动概述
4.1.7 访问设备驱动程序的方法
4.1.8 fs_operation结构分析
4.1.9 增强的字符驱动程序
实验
1)编写简单的Linux字符驱动程序
2)分析fs_operation结构 |
13:30
|
16:30 |
4.2 Linux 设备驱动开发
4.2.1 设备文件系统:devfs 和sysfs
4.2.2 Linux的内存管理
4.2.3 DMA操作
4.2.4 高速缓存管理
4.2.5 mmap设备操作
4.2.6 设备结构和属性
4.2.7 Linux-2.6.x驱动模型
实验
1)理解设备文件系统
2)熟悉mmap设备操作
3)在驱动程序中使用DMA |
|
第五天 |
9:00
|
12:00 |
5.1 文件系统
5.1.1 Ramdisk
5.1.2 理解MTD构架
5.1.3 NOR/NAND flash--了解两者的特点和底层驱动。
5.1.4 文件系统的制作和固化
5.1.5 虚拟文件系统
5.1.6文件系统接口VFS
5.1.7 其他文件系统
实验
1)测试自己Linux系统的性能
|
13:30
|
16:30 |
5.2 手持设备特定驱动
5.2.1和手机相关的驱动介绍
5.2.2 framebuffer
5.2.3 overlay
5.2.4定时器/高精度定时器
5.2.5 红外 |