国家Linux技术培训与推广中心
国家IT软件人才培训工程             

                     嵌入式Linux应用开发班(FSLA1001

 课程目标

参加嵌入式linux应用开发培训,可以使学员对桌面和嵌入式Linux应用编程有全面的了解,具备编写Linux环境下的应用程序和模块的能力。
课程目标包括:

        1
)熟悉Linux操作系统具体操作
        2
)熟悉并可以编译Linux内核
        3
)熟悉嵌入式Linux系统开发的整体流程
        4
)熟悉Linux系统调用
        5
)能够熟练编写Linux应用程序,包括网络、图形等
        6
)了解Linux设备驱动程序的开发

 培养对象

有志进行嵌入式Linux系统开发环境下应用程序开发工程师。

  入学要求

学员学习本课程应具备下列基础知识:
       
具备计算机基础知识;
       
具备C语言编程基础;
       
了解Linux基本操作。

 授课教师

胡继承教授 博士 在美国斯坦福大学计算机系做博士后研究。计算机应用方向的研究生导师,其研究的内容侧重于嵌入式系统的开发。
多年来一直从事大型软件系统开发、嵌入式系统软硬件开发、信号处理(图像、语音识别)、小波分析和应用等方面的研究;参与国家自
然科学基金重大研究计划的重点项目1项;他有着非常丰富的大型项目开发经验。2002年,获得教育部高等教育司颁发的教学成果二等奖。

 教材

      《嵌入式Linux应用开发班培训讲义》

 《嵌入式Linux应用程序开发详解》

 

 班级规模及环境

为了保证培训效果,增加互动环节,我们坚持小班授课,每期报名人数限15人,多余人员安排到下一期进行。
人手一套开发板和开发用的
PC主机

 时间地点

上课地点:武汉大学国际软件学院
        周末班(周六日上课)
      
连续班(暑期班连续上课)

 课时费用

课时: 4天,每天6学时,总计24学时
        ◆培训费用:人民币1800元优惠后(1600元),学生(1200元,凭有效证件)     

   ◆认证费(可选):300元(项目考核通过,颁发中国软件行业协会嵌入式分会认证的《嵌入式Linux应用工程师》证书)
       
◆外地学员:代理安排食宿(需提前预定)

 质量保障

1、   培训过程中,如有部分内容理解不透或消化不好,可免费在下期培训班中重听;

2、  培训结束后免费提供一个月的技术支持,充分保证培训后出效果;

3、  培训合格学员可享受免费推荐就业机会。

 

 课程进度安排

第一天

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
交叉编译的过程

【实验】
实验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:编写并下载应用程序到嵌入式平台
实验678是嵌入式系统开发的基本步骤,通过这几个实验,学员可以掌握嵌入式系统开发流程。

 

第二天

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
使用系统调用

【实验】
实验1:编译小于300kLinux内核
通过本实验,学员将制作支持网络、支持音频等不同类型的内核,加深对Linux内核的了解。
实验2:使用open系统调用打开文件
通过本实验,学员可以熟悉Linuxopen系统调用的方法。
实验3:使用read/write系统调用读写数据
通过本实验,学员可以熟悉Linuxread/write系统调用的方法。了解一般串口通信的方式。
实验4:其他系统调用实例
本实验将列举更多的系统调用实例,学员对Linux系统调用能有进一步的理解。

第三天

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
基于嵌入式LinuxTCP/IP网络结构
7.5
基于嵌入式Linuxsocket编程
7.6 UDP
TCP的区别
7.7 UDP Server-Client
关系

实验】
实验1:使用ps命令查看进程信息
Ps
是基本的linux命令,通过本实验,不仅要熟悉ps命令方法,更重要的是可以了解Linux进程的组成。
实验2:使用proc文件系统查看进程信息
本实验将指导学员了解proc文件系统,通过proc文件系统查询进程信息,可以扩展到修改系统参数。
实验3:使用system()系统调用运行和等待
本实验将通过编写system系统调用的程序,加深对系统进程的了解。
实验4exitexec系统调用实例
实验5:编写一个守护进程
守护进程是Linux系统开发中很重要的知识点,本实验要求学员编写一个守护进程,通过本实验,学员可以熟悉守护进程的编写过程。
实验6:编写基于串口通信的多进程程序
通过本实验,学员可以掌握ARM的串行口工作原理,了解ARMUART通讯。在了解了串口编程后,扩展到多串口同时通信,
从而掌握进程间通信技术。

实验7:分析并加强Ping程序
实验8:编写一个简单的tftp服务器
本实验将开发一个tftp服务器,实现简单的文件传输功能

第四天

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
制作ramdisk

【实验】
实验1I/O实验,8*8发光二极管点阵
通过本实验,学员可以掌握ARM芯片I/O控制LED显示的方法,熟悉s3c2410处理器的I/O配置寄存器,编程实现实验板的发光二极管点亮和熄灭。
同时还可以掌握
Linux驱动开发能力。
实验2:动手制作ramdisk
本实验将创建一个ramdisk,并加载到Flash中去,启动Linux内核后,挂载该ramdisk
实验3:制作cramfs文件系统
本实验将创建一个cramfs文件系统,并加载到Flash中去,启动Linux内核后挂载。