|
|||||||
|
培训内容
课程目标:
参加嵌入式linux应用开发培训,可以使学员对桌面和嵌入式Linux应用编程有全面的了解,具备编写Linux环境下的应用程序和模块的能力。课程目标包括:
1)熟悉Linux操作系统具体操作
2)熟悉并可以编译Linux内核
3)熟悉嵌入式Linux系统开发的整体流程
4)熟悉Linux系统调用
5)能够熟练编写Linux应用程序,包括网络、图形等
6)了解Linux设备驱动程序的开发
入学要求:
学员学习本课程应具备下列基础知识:
具备计算机基础知识;
具备C语言编程基础;
了解Linux基本操作。
课程安排:
时间 课程大纲 第一天
9:00-12:00 1 嵌入式Linux基础
1.1 Linux简介及历史
1.2 安装Linux操作系统
1.3 Linux基本命令
1.4 GNU与GPL
1.5 函数库和系统调用
1.6 在线帮助
1.7 嵌入式系统开发流程
1.8 如何选择嵌入式操作系统2 常用工具的使用
2.1 认识gcc编译器
2.2 认识gdb调试器
2.3 Makefile祥解
2.4 vi编辑器高级使用
2.5 库和头文件的保存位置
2.6 共享库及其相关配置
2.7 使用和创建函数库
2.8 什么是交叉编译
2.9 交叉编译的过程13:00-16:00 【实验】
实验1:动手安装Linux系统
通过本实验,学员将具备安装Linux操作系统的能力,了解Linux的文件系统、交换分区等概念。
实验2:学习Linux系统命令
本实验指导学员学习Linux常用的命令,包括cp/rm/mkdir/rmdir/ls/mv/ln/kill/cd等。
实验3:配置tftp服务
本实验指导学员配置tftp服务
实验4:配置nfs服务
本实验指导学员配置nfs服务,为后面的开发工作打基础
实验5:建立嵌入式开发环境
本实验指导学员建立嵌入式开发环境,配置交叉编译器。
实验6:下载内核到嵌入式平台
实验7:下载根文件系统
实验8:编写并下载应用程序到嵌入式平台
实验6,7,8是嵌入式系统开发的基本步骤,通过这几个实验,学员可以掌握嵌入式系统开发流程。第二天
9:00-12:00 3 嵌入式Linux内核
3.1 认识Linux内核结构
3.2 编译Linux内核
3.3 Linux内核模块
3.4 裁剪Linux
3.5 Linux开机流程分析
3.6 认识Bootloader
3.7 移植uboot
3.8 移植Linux内核4 Linux系统调用
4.1 理解系统调用
4.2 系统调用的限制
4.3 使用系统调用13:00-16:00 【实验】
实验1:编译小于300k的Linux内核
通过本实验,学员将制作支持网络、支持音频等不同类型的内核,加深对Linux内核的了解。
实验2:使用open系统调用打开文件
通过本实验,学员可以熟悉Linux中open系统调用的方法。
实验3:使用read/write系统调用读写数据
通过本实验,学员可以熟悉Linux中read/write系统调用的方法。了解一般串口通信的方式。
实验4:其他系统调用实例
本实验将列举更多的系统调用实例,学员对Linux系统调用能有进一步的理解。第三天
9:00-12:00 5 进程
5.1 进程的属性和状态
5.2 进程的控制和调度
5.3 进程的创建、执行、消亡
5.4 进程的相关系统调用
5.5 守护进程6 进程间通信
6.1 进程间通信基本概念
6.2 管道
6.3 信号(signal):
6.4 内存映射(mapped memory):
6.5 息队列(message queue):
6.6 信号量(semaphore)
6.7 共享内存7 嵌入式Linux下的网络开发
7.1 ISO/OSI七层协议模型/IP网络4层模式
7.2 TCP/IP协议族
7.3 TCP/IP编程
7.4 基于嵌入式Linux的TCP/IP网络结构
7.5 基于嵌入式Linux的socket编程
7.6 UDP与TCP的区别
7.7 UDP Server-Client关系13:00-16:00 【实验】
实验1:使用ps命令查看进程信息
Ps是基本的linux命令,通过本实验,不仅要熟悉ps命令方法,更重要的是可以了解Linux进程的组成。
实验2:使用proc文件系统查看进程信息
本实验将指导学员了解proc文件系统,通过proc文件系统查询进程信息,可以扩展到修改系统参数。
实验3:使用system()系统调用运行和等待
本实验将通过编写system系统调用的程序,加深对系统进程的了解。
实验4:exit和exec系统调用实例
实验5:编写一个守护进程
守护进程是Linux系统开发中很重要的知识点,本实验要求学员编写一个守护进程,通过本实验,学员可以熟悉守护进程的编写过程。
实验6:编写基于串口通信的多进程程序
通过本实验,学员可以掌握ARM的串行口工作原理,了解ARM的UART通讯。在了解了串口编程后,扩展到多串口同时通信,从而掌握进程间通信技术。
实验7:分析并加强Ping程序
实验8:编写一个简单的tftp服务器
本实验将开发一个tftp服务器,实现简单的文件传输功能第四天
9:00-12:00 8 嵌入式驱动开发
8.1 驱动程序基础知识
8.2 Linux设备驱动分类
8.3 Linux设备驱动模型
8.4 编写字符设备驱动程序9 嵌入式图形开发
9.1 GUI基础知识
9.2 qt简介
9.3 建立Qt/Embedded 开发环境
9.4 编写qt程序10 根文件系统
10.1 Linux文件系统概述
10.2 MTD技术分析
10.3 日记文件系统
10.4 制作根文件系统
10.5 制作ramdisk13:00-16:00 【实验】
实验1:I/O实验,8*8发光二极管点阵
通过本实验,学员可以掌握ARM芯片I/O控制LED显示的方法,熟悉s3c2410处理器的I/O配置寄存器,编程实现实验板的发光二极管点亮和熄灭。同时还可以掌握Linux驱动开发能力。
实验2:动手制作ramdisk
本实验将创建一个ramdisk,并加载到Flash中去,启动Linux内核后,挂载该ramdisk。
实验3:制作cramfs文件系统
本实验将创建一个cramfs文件系统,并加载到Flash中去,启动Linux内核后挂载。
师资团队:
孙天泽
具有多年嵌入式开发实战经验,3年嵌入式培训经验。曾参与过多个嵌入式系统项目的开发工作,熟悉的处理器包括:EP7312、S3C44B0,S3C2410,PXA255,在项目中主要负责driver开发工作。多年来一直从事Linux内核的研究工作,任Linux伊甸园网站内核版版主。《嵌入式设计及Linux驱动开发指南--基于arm9处理器》一书作者,《Red Hat Linux实用指南》一书译者,最近3年内发表学术论文10余篇。
田 彦
清华大学博士,在嵌入式系统软件、硬件开发方面具有多年的项目开发经验。熟悉包括嵌入式Linux在内的多种嵌入式操作系统,熟悉PPC和ARM体系结构,从事过基于嵌入式系统的CAN、Bluetooth、RF、GPS、GPRS等研发工作。
孙 琼
计算机网络专业硕士,已具有多年的嵌入式Linux开发经验,曾移植裁减过多个版本的嵌入式Linux(如uClinux、Rtlinux、Debain等),并在多种平台上移植过完整的NTP、SNMP等多个协议栈,全面参与视频监控系统的开发,对ARM、MIPS等体系结构都有较为深刻的理解,在Linux下有两年的驱动开发经验。《嵌入式Linux应用程序开发详解》一书作者。目前正在参与路由算法在硬件上的实现等项目。
班级规模及环境:
为了保证培训效果,增加互动环节,我们坚持小班授课,每期报名人数限15人,多余人员安排到下一期进行。人手一套开发板和开发用的PC主机。
上课地点:北京清华大学
上课时间:
周末班(周六日上课):2008年11月29日,2009年01月03日
连续班(连续上课):2008年11月29日,2009年01月01日
课时费用:
课时:共4天,每天6学时,总计24学时
培训费用(含教材费和午餐费):公司员工(2500元),个人自费(1900元),学生自费(1500元,凭有效证件)
认证费(可选):300元(项目考核通过,可获中国软件行业协会嵌入式分会颁发的《嵌入式Linux应用工程师》证书)
外地学员:代理安排食宿(需提前预定)




