嵌入式程序设计基础》教学大纲

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编辑器viLinux编译器GCCLinux调试器GDB的使用,以便能顺利进行程序的编辑调试。

3.教学重点和难点

教学重点是在Linux环境下编辑调试C程序

教学难点是熟悉Linux系统并掌握常用命令

4.教学内容

1嵌入式系统基础知识

主要知识点:嵌入式系统的定义与特点;嵌入式系统的组成;ARM处理器平台介绍;嵌入式系统开发流程;嵌入式软件开发流程。

2Linux基础

主要知识点: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.教学内容

1Linux系统调用及用户编程接口(API)

主要知识点:系统调用;用户编程接口(API);系统命令。

2Linux文件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.教学内容

1Linux进程线程管理

主要知识点:进程描述符及任务结构;进程的调度;Linux中的线程;Linux中进程间通信。

2Linux进程线程接口函数

主要知识点:Linux进程控制相关APILinux进程间通信APILinux线程相关API

第五章    Linux网络开发

1.教学基本要求

理解和掌握TCP/IP协议和网络编程基础

2.要求学生掌握的基本概念、理论、技能

通过本章教学使学生了解TCP/IP核心协议,了解socket基础编程;掌握Web服务器协议。

3.教学重点和难点

教学重点是Linux环境下socket基础编程

教学难点是掌握TCP/IP核心协议。

4.教学内容

1TCP/IP协议知识

主要知识点:TCP/IP的分层模型;TCP/IP分层模型特点;TCP/IP核心协议。

2)网络基础编程

主要知识点:socket概述;socket基础编程。

3Web服务器

主要知识点: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语言基础

1Linux C语言程序的编辑调试

2ARM-Linux函数调用测试。

3ARM-Linux指针、结构体应用。

6

必开

3

文件I/O基本编程

1Linux C文件标准I/O程序开发。

 

2

必开

4

Linux进程线程开发

1Linux进程控制。

2Linux进程间通信。

3Linux线程操作。

2

必开

5

traceroute程序实例

1traceroute程序实例的分析与运行。

 

2

必开

6

简单的skull驱动实例

1.驱动编写流程分析。

2.驱动运行结果分析

2

必开

合计

16

 

五、主用教材及参考书

(一)主用教材:

《嵌入式Linux C语言应用程序设计(修订版)》主编:孙琼 出版社:人民邮电出版社 出版时间:2014年。

(二)参考书:

1. 《从实践中学嵌入式Linux C编程》主编:曾宏安 出版社:电子工业出版社出版时间:2012年。

2. 《嵌入式Linux应用程序开发标准教程(2)》主编:华清远见嵌入式培训中心 出版社:人民邮电出版社 出版时间:2009年。

3. 《嵌入式系统高级C语言编程》主编:凌明 出版社:北京航空航天大学出版社 出版时间:2011年。