《嵌入式程序设计基础》教学大纲
(2013版)
课程编码:0611102703
课程名称:嵌入式程序设计基础
学时/学分:48/3
先修课程:《程序设计基础》、《操作系统》、《网络操作系统》
适用专业:计算机科学与技术
开课教研室:嵌入式系统教研室
执笔:
审定:
一、课程性质与任务
1.课程性质:本课程是计算机科学与技术专业的专业选修课,是针对计算机科学与技术专业选择嵌入式方向学生的方向选修课。
2.课程任务:课程教学所需达到的目的是了解Linux操作系统、掌握嵌入式Linux的开发环境与工具软件、重点掌握嵌入式C语言程序设计基础、了解嵌入式Linux C高级编程与调试、重点掌握Linux下的文件的操作和I/O应用、重点掌握ARM Linux进程与进程调度、了解ARM Linux多线程开发、了解ARM Linux网络编程和嵌入式Linux设备驱动程序开发。
二、课程教学基本要求
《嵌入式程序设计基础》课程全面讲解嵌入式系统基础,从Linux基础、基本操作命令讲起,为学生快速入门提供了保证。然后学习嵌入式Linux C语言开发工具、语言基础,之后通过实例学习嵌入式Linux下的I/O与文件系统的开发、进程控制开发、进程间通信开发、网络应用开发、基于中断的开发、设备驱动程序的开发等内容,使学生基本掌握嵌入式程序设计开发技术。
本课程共计学时:48,理论学时32,实践学时16。
成绩考核形式:末考成绩(闭卷考查)(70%)+平时成绩(平时测验、作业、课堂提问、课堂讨论等)(30%)。成绩评定采用百分制,60分为及格。
三、课程教学内容
第一章 嵌入式系统基础知识与开发环境搭建
1.教学基本要求
理解和掌握嵌入式系统基础知识,掌握Linux常用命令,能在Linux下调试C程序。
2.要求学生掌握的基本概念、理论、技能
通过本章教学使学生了解嵌入式系统的定义与特点,了解嵌入式系统的组成和嵌入式软件开发流程;熟练掌握Linux常用命令,特别是Linux编辑器vi、Linux编译器GCC和Linux调试器GDB的使用,以便能顺利进行程序的编辑调试。
3.教学重点和难点
教学重点是在Linux环境下编辑调试C程序。
教学难点是熟悉Linux系统并掌握常用命令。
4.教学内容
(1)嵌入式系统基础知识
主要知识点:嵌入式系统的定义与特点;嵌入式系统的组成;ARM处理器平台介绍;嵌入式系统开发流程;嵌入式软件开发流程。
(2)Linux基础
主要知识点:Linux启动过程;Linux系统服务;Linux常用命令。
(3)嵌入式Linux C语言开发
主要知识点:嵌入式Linux C语言编程环境;Linux编辑器vi的使用;Linux编译器GCC的使用;Linux调试器GDB的使用。
第二章 嵌入式Linux C语言基础
1.教学基本要求
熟悉C程序设计,熟练掌握Linux环境下调试C程序技能。
2.要求学生掌握的基本概念、理论、技能
通过本章教学使学生掌握Linux环境下C程序设计知识,特别是对指针的调用,内存的分配,程序的移植性等进行深入学习。
3.教学重点和难点
教学重点是在Linux环境下C程序的编写方式方法。
教学难点是Linux下程序的可移植性考虑。
4.教学内容
(1)数据、表达式
主要知识点:基本数据类型;变量与常量;运算符与表达式。
(2)控制语句及函数
主要知识点:嵌入式Linux C语言基本语句;选择语句;循环语句;函数的定义与声明;函数的参数、值和基本调用;函数的嵌套、递归调用。
(3)数组、指针与结构
主要知识点:数组;指针;结构体与联合。
(4)进阶议题
预处理;C语言中的内存分配;嵌入式Linux可移植性考虑;C和汇编的接口;Linux内核常见数据结构。
第三章 文件I/O编程
1.教学基本要求
理解和掌握文件基本概念及文件指针,嵌入式Linux C语言环境下标准文件I/O操作。
2.要求学生掌握的基本概念、理论、技能
通过本章教学使学生了解文件基本概念及文件指针,了解Linux系统下文件类型及属性,了解标准文件I/O操作,文件I/O管理。能完成对文件的处理操作。
3.教学重点和难点
教学重点是在Linux环境下文件I/O操作。
教学难点是熟悉Linux系统中的用户编程接口(API)。
4.教学内容
(1)Linux系统调用及用户编程接口(API)
主要知识点:系统调用;用户编程接口(API);系统命令。
(2)Linux文件I/O系统概述
主要知识点:虚拟文件系统(VFS);通用文件模型;ARM Linux的设备文件。
(3)文件I/O操作
主要知识点:不带缓存的文件I/O操作;标准I/O开发。
(4)嵌入式Linux串口应用开发
主要知识点:串口概述;串口设置与使用。
第四章 Linux进程线程开发
1.教学基本要求
理解和掌握嵌入式Linux进程线程管理,能初步实现进程线程的通信和控制。
2.要求学生掌握的基本概念、理论、技能
通过本章教学使学生了解嵌入式Linux进程线程管理,了解嵌入式Linux进程控制相关API和进程间通信API,了解嵌入式Linux线程相关API。
3.教学重点和难点
教学重点是在Linux进程线程管理与应用。
教学难点是熟悉嵌入式Linux进程控制相关API,进程间通信API,线程相关API。
4.教学内容
(1)Linux进程线程管理
主要知识点:进程描述符及任务结构;进程的调度;Linux中的线程;Linux中进程间通信。
(2)Linux进程线程接口函数
主要知识点:Linux进程控制相关API;Linux进程间通信API;Linux线程相关API。
第五章 Linux网络开发
1.教学基本要求
理解和掌握TCP/IP协议和网络编程基础。
2.要求学生掌握的基本概念、理论、技能
通过本章教学使学生了解TCP/IP核心协议,了解socket基础编程;掌握Web服务器协议。
3.教学重点和难点
教学重点是Linux环境下socket基础编程。
教学难点是掌握TCP/IP核心协议。
4.教学内容
(1)TCP/IP协议知识
主要知识点:TCP/IP的分层模型;TCP/IP分层模型特点;TCP/IP核心协议。
(2)网络基础编程
主要知识点:socket概述;socket基础编程。
(3)Web服务器
主要知识点:Web服务器功能;Web服务器协议;运行Web服务器。
第六章 Linux设备驱动开发
1.教学基本要求
理解和掌握嵌入式设备驱动程序的特点,了解模块相关命令和模块编程流程。
2.要求学生掌握的基本概念、理论、技能
通过本章教学使学生了解嵌入式设备驱动程序的特点,了解模块相关命令和模块编程流程;了解字符设备驱动编写和块设备驱动编写。
3.教学重点和难点
教学重点是了解嵌入式设备驱动程序编程流程。
教学难点是嵌入式设备驱动程序的编写。
4.教学内容
(1)设备驱动概述
主要知识点:设备驱动简介;设备驱动程序的特点。
(2)模块编程
主要知识点:模块编程简介;模块相关命令;模块编程流程。
(3)设备驱动编写
主要知识点:字符设备驱动;块设备驱动;LCD驱动。
四、学时分配
1.讲授内容及学时分配
章序 |
内容 |
课时 |
备注 |
一 |
嵌入式系统基础知识与开发环境搭建 |
4 |
|
二 |
嵌入式Linux C语言基础 |
12 |
|
三 |
文件I/O编程 |
4 |
|
四 |
Linux进程线程开发 |
4 |
|
五 |
Linux网络开发 |
4 |
|
六 |
Linux设备驱动开发 |
4 |
|
合计 |
32 |
|
2.实践内容及学时分配
序号 |
项目 名称 |
内容提要 |
学时 |
必/选开 |
1 |
Linux基本操作 |
1.练习Linux常用命令。 2.熟悉Linux C运行环境。 |
2 |
必开 |
2 |
Linux C语言基础 |
1.Linux C语言程序的编辑调试。 2.ARM-Linux函数调用测试。 3.ARM-Linux指针、结构体应用。 |
6 |
必开 |
3 |
文件I/O基本编程 |
1.Linux C文件标准I/O程序开发。
|
2 |
必开 |
4 |
Linux进程线程开发 |
1.Linux进程控制。 2.Linux进程间通信。 3.Linux线程操作。 |
2 |
必开 |
5 |
traceroute程序实例 |
1.traceroute程序实例的分析与运行。
|
2 |
必开 |
6 |
简单的skull驱动实例 |
1.驱动编写流程分析。 2.驱动运行结果分析。 |
2 |
必开 |
合计 |
16 |
|
五、主用教材及参考书
(一)主用教材:
《嵌入式Linux C语言应用程序设计(修订版)》主编:孙琼 出版社:人民邮电出版社 出版时间:2014年。
(二)参考书:
1. 《从实践中学嵌入式Linux C编程》主编:曾宏安 出版社:电子工业出版社出版时间:2012年。
2. 《嵌入式Linux应用程序开发标准教程(第2版)》主编:华清远见嵌入式培训中心 出版社:人民邮电出版社 出版时间:2009年。
3. 《嵌入式系统高级C语言编程》主编:凌明 出版社:北京航空航天大学出版社 出版时间:2011年。