《嵌入式系统应用与开发》课程教学大纲
课程名称:
| 嵌入式系统应用与开发
|
|
|
课程编号:
| 408309
| 436313
|
|
适用专业:
| 计算机科学与技术
| 软件工程
|
|
课程类别:
| 必修课
| 专业限选
|
|
课程学分:
| 3
|
|
|
总学时:
| 54
|
|
|
其中:理论学时
| 28
|
|
|
式实验学时
| 26
|
|
|
先修课程:
| C语言程序设计、数据结构、操作系统原理、计算机网络
|
一、课程的性质、目的与任务
《嵌入式系统应用与开发》课程是嵌入式方向和物联网方向的方向课。该课程主要讲述嵌入式系统应用程序开发方法与技巧,主要内容包括嵌入式应用程序开发基础、嵌入式应用程序开发环境的搭建、文件I/O编程、进程控制开发、进程间通信开发、多线程编程及网络编程等方法与技巧。通过本实验课程,应达到以下几个教学目的:
(1)掌握嵌入式系统应用程序开发编程基础,包括能熟练掌握vi、gcc、gdb、makefile等开发工具的使用,能掌握linux操作系统常用的基本命令的使用。
(2)熟练掌握嵌入式系统开发环境搭建过程,包括掌握交叉环境的搭建,tftp服务器的使用,nfs文件系统的使用,smb服务器的使用,常用的烧写工具的使用等。
(3)掌握linux操作系统下,文件I/O编程方法和技巧,能熟练使用ANSIC标准和POSIX标准C库I/O函数对文件进行操作。
(4)掌握linux下进程控制编程方法和技巧。能熟练掌握进程的创建、进程的等待、多进程、守护进程的编程方法和技巧。
(5)掌握linux下进程通信编程的方法和技巧。熟练掌握管道通信、消息队列、共享内存,信号及信号量等通信机制的原理和编程方法。
(6)掌握linux下线程编程的方法和技巧。
(7)掌握linux下网络编程的方法和技巧,能够使用socket通信原理编写TCP程序。
二、课程教学基本内容与要求
第一章 Linux快速入门
(一)基本教学内容
1.1嵌入式Linux基础
1.2 Linux安装
1.3 Linux文件及文件系统
1.4文件类型及文件属性
1.5 Linux目录结构
(二)基本要求
教学目的:掌握嵌入式Linux的基本概念、理解嵌入式linux的文件系统及目录结构和掌握linux系统的安装。
教学重点:Linux安装、linux文件系统及文件属性和Linux目录结构。
教学难点:Linux的安装和Linux的目录结构。
第二章 Linux基础命令
(一)基本教学内容
2.1 Linux常用命令
2.2 Linux启动过程详解
2.3 Linux系统服务
(二)基本要求
教学目的:掌握linux下常用命令的使用、理解linux启动过程和能使用linux提供的系统服务相关命令完成常用的服务的设定。
教学重点:linux常用命令的使用。
教学难点:linux系统的启动过程。
第三章 Linux下C编程基础
(一)基本教学内容
3.1 Linux下C语言编程概述
3.2常用编辑器
3.3 gcc编译器
3.4 gdb调试器
3.5 make工程管理器
(二)基本要求
教学目的:掌握linux下常用GNU工具vi编辑器、gcc编译器和gdb调试器的使用,能编写简单的make file配置文件。
教学重点:vi编辑器、gcc编译器、gdb调试器和make工程管理器。
教学难点:gcc编译器编译选项的分析、makefile文件的编写。
第四章 嵌入式系统基础
(一)基本教学内容
4.1嵌入式系统概述
4.2 ARM处理器硬件开发平台
4.3嵌入式软件开发流程
(二)基本要求
教学目的:了解嵌入式系统概述、熟悉ARM处理器硬件开发平台、掌握嵌入式软件开发流程。
教学重点:嵌入式系统的特点、嵌入式系统的体系结构、ARM9体系结构、嵌入式软件开发流程。
教学难点:ARM9体系结构、S3C2410处理器。
第五章 嵌入式Linux开发环境的搭建
(一)基本教学内容
5.1嵌入式开发环境的搭建
5.2 U-Boot移植
(二)基本要求
教学目的:掌握嵌入式开发环境的搭建和U-Boot移植主要步骤。
教学重点:嵌入式交叉编译环境的搭建、编译嵌入式Linux内核、制作文件系统、U-Boot移植主要步骤。
教学难点:编译嵌入式Linux内核、制作文件系统、U-Boot移植主要步骤。
第六章 文件I/O编程
(一)基本教学内容
6.1 Linux系统调用及用户编程接口(API)
6.2 Linux中文件及文件描述符概述
6.3底层文件I/O操作
6.4嵌入式Linux串口应用编程
6.5标准I/O编程
(二)基本要求
教学目的:理解系统调用及用户编程接口、了解Linux中文件及文件描述符概述、掌握底层文件I/O操作、掌握嵌入式Linux串口应用编程、掌握标准I/O编程。
教学重点:Linux系统调用及用户编程接口(API)、inux中文件及文件描述符概述、底层文件I/O操作、嵌入式Linux串口应用编程、标准I/O编程。
教学难点:文件锁、多路复用式串口操作。
第七章 进程控制开发
(一)基本教学内容
7.1 Linux进程概述
7.2 Linux进程控制编程
7.3 Linux守护进程
(二)基本要求
教学目的:理解Linux进程概述、掌握Linux进程控制编程方法和技技巧、掌握Linux守护进程编程的方法。
教学重点:Linux下的进程结构、Linux下的进程管理、编写守护进程。
教学难点:Linux下的进程结构、守护进程的出错处理。
第八章 进程间通信
(一)基本教学内容
8.1 Linux下进程间通信概述
8.2管道
8.3信号
8.4信号量
8.5共享内存
8.6消息队列
(二)基本要求
教学目的:理解Linux下进程间通信概述,掌握管道、信号、信号量、共享内存和消息队列等通信方式的应用和编程方法。
教学重点:管道、信号、信号量、共享内存和消息队列等通信方式的应用和编程方法。
教学难点:信号的处理、信号量的应用。
第九章 进程间通信
(一)基本教学内容
10.1 TCP/IP概述
10.2网络基础编程
10.3网络高级编程
(二)基本要求
教学目的:理解Linux线程概述、掌握Linux线程编程。
教学重点:线程的创建、线程等待、线程之间的同步与互斥。
教学难点:线程之间的同步与互斥。
第十章 嵌入式Linux网络编程
(一)基本教学内容
9.1 Linux线程概述
9.2 Linux线程编程
(二)基本要求
教学目的:理解TCP/IP概述、掌握网络基础编程、掌握网络高级编程。
教学重点:TCP/IP协议族、TCP和UDP、地址及顺序处理、socket基础编程。
教学难点:地址及顺序处理、网络高级编程。
三、课程各章节学时分配
序号
| 内容
| 理论学时
| 实验学时
|
计科
| 软工
| 计科
| 软工
|
1
| Linux快速入门
| 2
| 2
| 2
| 2
|
2
| Linux基础命令
| 4
| 4
| 2
| 2
|
3
| Linux下C编程基础
| 2
| 2
| 2
| 2
|
4
| 嵌入式系统基础
| 2
| 2
| 0
| 0
|
5
| 嵌入式Linux开发环境的搭建
| 4
| 4
| 4
| 4
|
6
| 文件I/O编程
| 2
| 2
| 4
| 4
|
7
| 进程控制开发
| 2
| 2
| 4
| 4
|
8
| 进程间通信
| 4
| 4
| 4
| 4
|
9
| 多线程编程
| 2
| 2
| 2
| 2
|
10
| 嵌入式Linux网络编程
| 4
| 4
| 2
| 2
|
合计
| 28
| 28
| 26
| 26
|
四、本课程课外学习与修学指导
该课程是一门综合性的课程,运用到操作系统原理、C编程基础和计算机网络等先行课程的内容,所以要多参考相关书籍,做到能系统的撑握相关知识;该课程是一门应用性较强的课程,在有限的实验课时以外,多实践练习,锻炼嵌入式应用程序开发的基本技能、基本设计思路,另外嵌入式系统源代码,大多是开源的。所以在进行应用程序开发过程中,课外多下载阅读分析相关应用程序源代码,做到个性化应用开发。
五、本课程考核方式及成绩评定标准
考核方式:闭卷考试
成绩评定方法:本课程的考核是平时成绩、实验成绩和期终考试成绩相结合。具体比例为:上课出勤、作业占20%,实验占20%,期末考试成绩占60%。
其中期未考试总分100分,基础题占50%,中等难度题占40%,较难题占10%。考试题型主要有:选择题、填空题、判断题、程序题填空题、程序设计题等。
六、教材及参考书
教材:《嵌入式Linux应用程序开发标准教程(第2版)》.华清远见嵌入式培训中心,人民邮电出版社,2009.
主要参考书:
[1] 刘洪涛,孙天泽.嵌入式系统技术与设计.北京:人民邮电出版社,2008
[2] Daniel P.Bovet;Marco Cesati著.陈莉君,张琼声,张宏伟译,深入linux内核(第三版).北京:中国电力出版社,2007
[3] [美]Christopher Halinan.嵌入式Linux开发(英文版).北京:人民邮电出版社,2008
[4] 罗克露,陈云川.嵌入式软件调试技术.北京:电子工业出版社,2009
[5] [英]Neil Matthew;Richard Stones著.陈健,宋健建译.linux程序设计(第三版).北京:人民邮电出版社,2009
大纲撰写人:刘泽平
大纲审阅人:刘伟群
教学副主任:易叶青
编写日期:2012.6