|

|
国家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:编写并下载应用程序到嵌入式平台 实验6,7,8是嵌入式系统开发的基本步骤,通过这几个实验,学员可以掌握嵌入式系统开发流程。
第二天
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:编译小于300k的Linux内核 通过本实验,学员将制作支持网络、支持音频等不同类型的内核,加深对Linux内核的了解。 实验2:使用open系统调用打开文件 通过本实验,学员可以熟悉Linux中open系统调用的方法。 实验3:使用read/write系统调用读写数据 通过本实验,学员可以熟悉Linux中read/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
基于嵌入式Linux的TCP/IP网络结构 7.5
基于嵌入式Linux的socket编程 7.6
UDP与TCP的区别 7.7
UDP Server-Client关系
实验】 实验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服务器,实现简单的文件传输功能
第四天
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
【实验】 实验1:I/O实验,8*8发光二极管点阵 通过本实验,学员可以掌握ARM芯片I/O控制LED显示的方法,熟悉s3c2410处理器的I/O配置寄存器,编程实现实验板的发光二极管点亮和熄灭。
同时还可以掌握Linux驱动开发能力。 实验2:动手制作ramdisk 本实验将创建一个ramdisk,并加载到Flash中去,启动Linux内核后,挂载该ramdisk。 实验3:制作cramfs文件系统 本实验将创建一个cramfs文件系统,并加载到Flash中去,启动Linux内核后挂载。
|