一、课程性质与设置目的
(一)课程性质与特点
嵌入式Linux系统开发与应用是嵌入式技术专业的核心课程之一,同时也是一门与ARM、Linux系统开发等学科有着密切联系的计算机学科,具有综合性、应用性、实践性等特征。本课程立足于ARM实验开发设备和Linux嵌入式操作系统进行编写,结合嵌入式开发的最新理论与实践成果,并在借鉴国内外先进经验的基础上,对嵌入式系统及嵌入式Linux开发的基本理论、基本知识及其具体的开发进行了全面、系统地阐述与分析,培养学生进行综合知识的运用以及工程开发的能力。
(二)课程设置目的与基本要求
本课程被列为嵌入式技术专业高等教育自学考试必修的专业课。通过本课程的学习,使学生对嵌入式系统的基本结构、嵌入式系统设计所涉及的内容有一个较全面的认识,掌握进行嵌入式系统设计的基本理论和方法,为今后从事嵌入式系统的研究和开发打下良好的基础。基本要求如下:
1.熟悉嵌入式系统的体系结构和分类;熟悉ARM微处理器的结构和特点;了解嵌入式操作系统的分类;了解嵌入式系统的设计与开发;
2.熟悉Linux下C语言编程;熟悉Linux进程控制和多线程编程;掌握交叉编译环境的搭建;掌握ARM-Linux内核的编译和移植;
3.掌握基于嵌入式Linux操作系统的网络编程、设备驱动、图形编程和应用程序设计的基本方法,能够独立进行基于ARM微处理器和嵌入式Linux操作系统的嵌入式系统设计和开发。
(三)本课程与相关课程的联系
本课程以嵌入式Linux操作系统为主线,融合了操作系统、程序设计、计算机网络等计算机学科。建议在学习本课程之前,学生应具备必要的程序设计、Linux操作系统、计算机网络编程等知识基础,例如:C语言程序设计、操作系统、计算机网络等课程。
本课程共分为七章,分别是嵌入式系统概述、嵌入式Linux开发基础、开发环境的建立、嵌入式Linux网络编程、嵌入式设备驱动、Qt图形编程、嵌入式Linux综合设计。其中:
1.重点章包括:开发环境的建立、嵌入式Linux网络编程、嵌入式设备驱动、Qt图形编程。
2.次重点章包括:嵌入式系统概述、嵌入式Linux开发基础。
3.一般章包括:嵌入式Linux综合设计
二、课程内容与考核目标
第一章嵌入式系统概述
一、学习目的与要求
本章的学习目的主要是对嵌入式系统有一个总括性的掌握。要求了解嵌入式系统的发展历程,掌握嵌入式系统的体系结构和分类,掌握微处理器的分类及特点、嵌入式操作系统的分类及特点,熟悉嵌入式系统开发的基本过程。重点学习ARM微处理器的内核、结构及特点,基于嵌入式Linux操作系统开发的基本过程。
二、课程内容
1.1嵌入式系统的定义
1.1.1嵌入式系统的组成和特点
1.1.2嵌入式系统的发展历程及趋势
1.2嵌入式系统的体系结构和分类
1.2.1嵌入式系统的体系结构
1.2.2嵌入式系统的分类
1.3嵌入式微处理器
1.3.1嵌入式微处理器的分类
1.3.2ARM嵌入式处理器的内核和架构
1.3.3ARM微处理器结构
1.3.4ARM嵌入式处理器的特点及应用领域
1.3.5嵌入式处理器的选型原则
1.4嵌入式操作系统
1.4.1操作系统的概念和分类
1.4.2嵌入式Linux操作系统
1.4.3WindowsCE操作系统
1.4.4μC/OS-II操作系统
1.4.5Symbian操作系统
1.4.6VxWorks操作系统
1.5嵌入式系统的设计与开发
1.5.1嵌入式系统的设计与开发流程
1.5.2嵌入式系统的模拟仿真与调试
三、考核知识点
1.嵌入式系统的定义
2.嵌入式系统的体系结构
3.嵌入式微处理器
4.嵌入式操作系统
5.嵌入式系统的设计与开发流程
四、考核要求
1.嵌入式系统的定义
识记:嵌入式系统的组成和特点
2.嵌入式系统的体系结构
识记:嵌入式系统的分类
3.嵌入式微处理器
识记:嵌入式微处理器的分类
领会:ARM嵌入式微处理器的内核、架构,ARM嵌入式微处理器结构
简单应用:ARM处理器选型
4.嵌入式操作系统
识记:操作系统的概念和分类、常用的几种嵌入式操作系统
5.嵌入式系统的设计与开发流程
领会:嵌入式系统的设计流程、模拟仿真与调试
第二章嵌入式Linux开发基础
一、学习目的与要求
本章的学习目的主要是对Linux开发的基本内容有一个整体性的掌握。要求了解Linux操作系统的基本操作,掌握Linux下C语言程序设计基础,掌握Vi编辑器、GCC编译器和GDB调试器的使用,掌握Make工具的使用,了解Makefile文件的基本结构,了解LinuxShell编程,了解Linux下进程编程和多线程编程,在此基础上能进行简单应用程序设计和调试。重点学习Linux下C语言程序设计基础,通过熟练掌握Vi编辑器、GCC编译器和GDB调试器等编程工具的灵活使用进行Linux编程。
二、课程内容
2.1Linux的基本操作
2.1.1用户系统相关命令
2.1.2文件目录相关命令
2.1.3压缩打包相关命令
2.1.4网络相关命令
2.1.5重定向与管道
2.1.6Linux帮助系统
2.2Linux下C语言程序设计基础
2.2.1VI的使用
2.2.2GCC编译器
2.2.3GDB调试器的使用
2.2.4GNUmake和makefile
2.3LinuxShell编程
2.4Linux进程控制编程
2.4.1Linux进程概述
2.4.2Linux进程编程
2.4.3Linux进程通信
2.5Linux下的多线程编程
2.5.1线程概述
2.5.2线程的基本操作
2.5.3线程的访问控制
2.5.4“生产者—消费者”
三、考核知识点
1.Linux的基本操作
2.VI编辑器的使用
3.GCC编译器的使用
4.GDB调试器的使用
5.makefile文件结构
6.Linux进程控制编程
7.Linux下的多线程编程
四、考核要求
1.Linux的基本操作
识记:Linux系统用户系统、文件目录、压缩打包、网络操作、重定向、管道和帮助系统的操作命令。
2.VI编辑器的使用
领会:VI编辑器的模式切换、常用操作。
3.GCC编译器的使用
领会:GCC编译器的工作过程、常用选项。
简单掌握:使用GCC编译器编译程序。
4.GDB调试器的使用
领会:GDB调试器的常用调试命令。
简单掌握:使用GDB调试器调试程序。
5.Makefile文件结构
领会:Makefile文件的基本结构、变量和隐含规则。
简单应用:会编写Makefile文件
5.Linux下的Shell编程
识记:Shell脚本建立和执行,Shell脚本中的变量、特殊字符、流程控制和函数的定义。
6.Linux进程控制编程
领会:进程编程的系统调用
综合应用:管道通信、信号通信
7.Linux下的多线程编程
领会:线程的基本操作系统调用
综合应用:线程的访问控制
第三章开发环境的建立
一、学习目的与要求
本章的学习目的主要是掌握如何构建嵌入式开发环境。要求了解ARM与宿主机的数据传输,掌握交叉编译环境的建立,理解BootLoader技术的工作原理,了解VIVI和U-Boot代码原理和如何进行移植,掌握ARM-Linux内核的编译和移植,掌握根文件系统的建立和烧写,在此基础上,掌握嵌入式应用程序的编写和移植过程。重点学习BootLoader技术和ARM-Linux内核的编译和移植。
二、课程内容
3.1基于ARM9的博创2410s开发实验平台
3.2ARM与宿主机的通信
3.2.1串口通信
3.2.2以太网接口
3.2.3USB接口
3.2.4JTAG接口
3.3交叉编译环境的建立
3.3.1宿主机环境搭建
3.3.2交叉编译环境的建立
3.4BootLoader技术
3.4.1初识BootLoader工作原理
3.4.2VIVI的代码分析与移植
3.4.3U-Boot的分析与移植
3.5ARM-Linux内核的编译与移植
3.5.1Linux内核版本与特点
3.5.2Linux内核移植
3.6根文件系统的建立与烧写
3.6.1嵌入式Linux常用的文件系统
3.6.2根文件系统的目录结构
3.6.3定制系统文件
3.6.4NFS文件系统的建立与使用
3.6.5Samba服务的建立与使用
3.6.6使用BusyBox构建根文件系统
3.7建立嵌入式Linux应用程序
三、考核知识点
1.ARM与宿主机的通信
2.交叉编译环境的建立
3.BootLoader技术
4.ARM-Linux内核的编译与移植
5.根文件系统的建立与烧写
6.建立嵌入式Linux应用程序
四、考核要求
1.ARM与宿主机的通信
识记:ARM与宿主机的通信的几种类型
2.交叉编译环境的建立
领会:宿主机环境的搭建、交叉编译环境的建立
3.BootLoader技术
识记:BootLoader的工作原理和启动过程
领会:VIVI代码结构,U-Boot代码结构
简单应用:VIVI移植,U-Boot移植
4.ARM-Linux内核的编译与移植
识记:Linux内核版本和特点
简单应用:Linux内核移植
5.根文件系统的建立与烧写
识记:嵌入式Linux常用的文件系统、根文件系统的目录结构
简单应用:定制文件系统、建立NFS文件系统、建立Samba服务、使用BusyBox
6.建立嵌入式Linux应用程序
综合应用:编写、移植一个简单的嵌入式Linux应用程序
第四章嵌入式Linux网络编程
一、学习目的与要求
本章的学习目的主要是掌握TCP/IP协议及网络编程。要求了解OSI参考模型,理解TCP/IP协议各层的主要功能,掌握TCP和UDP两个主要协议,熟练掌握Socket的定义、类型和基本函数,在此基础上进行TCP和UDP编程。重点学习Socket的定义、类型和基本函数以及基于Scoket的网络编程实例。
二、课程内容
4.1TCP/IP概述
4.1.1OSI参考模型与TCP/IP参考模型
4.1.2TCP/IP协议族
4.1.3TCP和UDP
4.2网络编程基础
4.2.1socket概述
4.2.2socket的基本函数
4.3socket应用程序设计
4.3.1TCP编程实例
4.3.2UDP编程实现
三、考核知识点
1.OSI参考模型与TCP/IP参考模型
2.TCP/IP协议族
3.TCP和UDP
4.socket网络编程
5.socket应用程序设计
四、考核要求
1.OSI参考模型与TCP/IP参考模型
识记:OSI参考模型的分层,TCP/IP参考模型的分层,两种模型的对应关系。
2.TCP/IP协议族
识记:TCP/IP协议族的主要协议。
3.TCP和UDP
领会:TCP协议、三次握手、TCP数据报头格式;UDP协议、UDP数据报头格式。
4.socket网络编程
领会:socket定义、socket类型、socket地址结构处理、数据存储优先顺序、名字地址转换和基本函数。
5.socket应用程序设计
综合运用:利用所学网络和socket编程知识进行TCP和UDP编程
第五章嵌入式设备驱动
一、学习目的与要求
本章的学习目的主要是掌握嵌入式设备驱动的类型和实现。要求了解Linux设备的分类、设备文件、设备号、设备文件系统和系统文件系统;掌握Linux设备驱动程序的结构;掌握字符设备驱动的编写和测试;掌握LCD设备的工作原理和驱动开发;掌握块设备的驱动程序工作原理、主要数据结构和驱动程序编写;掌握键盘的分类、工作原理和驱动程序的编写、掌握网络设备的加载方法、重要数据结构、工作过程和驱动程序移植。重点学习几种常用设备的驱动程序编写方法。
二、课程内容
5.1Linux下设备驱动概述
5.1.1设备的分类
5.1.2设备文件
5.1.3主设备号与次设备号
5.1.4设备文件系统与系统文件系统
5.2设备驱动程序的结构
5.3字符设备驱动
5.4LCD设备驱动
5.4.1LCD工作原理
5.4.2FrameBuffer机制简介
5.4.3LCD驱动开发流程
5.5块设备驱动
5.5.1块设备驱动程序简介
5.5.2块设备驱动程序工作原理
5.5.3块设备驱动主要数据结构
5.5.4块设备驱动编写流程
5.6键盘驱动
5.6.1键盘的分类
5.6.2键盘工作原理
5.6.3键盘驱动程序的实现
5.7Linux网络驱动程序
5.7.1网络设备概述
5.7.2网络设备的加载方法
5.7.3重要数据结构
5.7.4网络设备的初始化
5.7.5打开和关闭网络设备
5.7.6发送过程的实现
5.7.7接收过程的实现
5.7.8中断控制
5.7.9NE2000兼容网卡驱动程序的移植
5.8触摸屏接口设计与Linux驱动编程
5.8.1触摸屏接口概述
5.8.2触摸屏驱动的体系接口
5.8.3触摸屏的Linux驱动程序分析
5.8.4触摸屏的测试与校准
三、考核知识点
1.Linux设备类型、设备号、设备文件系统和系统文件系统
2.设备驱动程序的结构,驱动程序的注册和注销、设备的打开和释放、设备的读写和控制操作、设备的中断和轮询处理
3.字符设备驱动的编写、编译和测试
4.LCD设备的工作原理、驱动开发
5.块设备驱动程序工作原理、主要数据结构和驱动开发
6.键盘工作原理和驱动开发
7.网络设备的加载、主要数据结构、设备的初始化、设备的控制、中断处理和驱动开发
四、考核要求
1.Linux设备类型、设备号、设备文件系统和系统文件系统
识记:设备的分类、
领会:主设备号与次设备号的定义、设备文件系统与系统文件系统的区别
2.设备驱动程序的结构,驱动程序的注册和注销、设备的打开和释放、设备的读写和控制操作、设备的中断和轮询处理
识记:设备驱动程序的主要组成部分
领会:驱动程序的注册和注销、设备的打开和释放、设备的读写和控制操作、设备的中断和轮询处理
3.字符设备驱动的编写、编译和测试
领会:字符设备驱动的编写、编译和测试
简单应用:字符设备驱动开发
4.LCD设备的工作原理、驱动开发
领会:LCD工作原理、FrameBuffer机制
简单应用:LCD驱动开发
5.块设备驱动程序工作原理、主要数据结构和驱动开发
领会:块设备驱动程序工作原理、主要数据结构
简单应用:块设备驱动开发
6.键盘工作原理和驱动开发
领会:键盘工作原理
简单应用:键盘驱动开发
7.网络设备的加载、主要数据结构、设备的初始化、设备的控制、中断处理和驱动开发
领会:网络设备的加载、主要数据结构、设备的初始化、设备的控制、中断处理
简单应用:网络设备驱动开发
第六章Qt图形编程
一、学习目的与要求
本章的学习目的主要是掌握嵌入式Linux的图像编程。要求了解常用的嵌入式图形界面编程机制,掌握Qt/Embedded的环境搭建、信号与插槽的概念以及图形设计器的使用方法;了解基于Qt技术的Qtopia,掌握基于Qt技术的Qtopia系统平台、开发环境的搭建,熟练掌握Qt/Embedded和Qtopia下应用程序的实现方法。重点学习Qt/Embedded环境下应用程序的开发过程。
二、课程内容
6.1嵌入式GUI简介
6.1.1Qt/Embedded
6.1.2MiniGUI
6.1.3Microwindows
6.1.4OpenGUI
6.1.5常见GUI的参数比较
6.2Qt/Embedded开发基础
6.2.1Qt/Embedded介绍
6.2.2Qt/Embedded的安装与环境变量设置
6.2.3Qt/Embedded信号和插槽机制
6.2.4QtDesigner的使用
6.2.5Qt/Embedded窗口实例
6.3基于Qt技术的Qtopia
6.3.1基于Qt技术的Qtopia系统平台
6.3.2Qtopia介绍及其开发环境的建立
6.3.3Qt/Embedded和Qtopia下应用程序的实现
6.4Qt编程综合实验
6.4.1基于PC的“HelloWorld”程序
6.4.2发布Qt/Embedded程序
三、考核知识点
1.嵌入式GUI的Qt/Embedded、MiniGUI、Microwindows和OpenGUI以及它们之间的比较
2.Qt/Embedded的架构、开发环境、安装和环境变量设置、信号和插槽机制以及窗口设计
3.Qt/Embedded和Qtopia体系结构,Qtopia开发环境的建立,Qt/Embedded和Qtopia下应用程序的实现
4.Qt/Embedded下应用程序的开发流程
四、考核要求
1.嵌入式GUI的Qt/Embedded、MiniGUI、Microwindows和OpenGUI以及它们之间的比较
识记:Qt/Embedded、MiniGUI、Microwindows和OpenGUI的特点
2.Qt/Embedded的架构、开发环境、安装和环境变量设置、信号和插槽机制以及窗口设计
领会:Qt/Embedded的架构、开发环境
简单应用:Qt/Embedded安装和环境变量设置、信号和插槽机制以及窗口设计
3.Qt/Embedded和Qtopia体系结构,Qtopia开发环境的建立,Qt/Embedded和Qtopia下应用程序的实现
领会:Qt/Embedded和Qtopia体系结构
简单应用:Qtopia开发环境的建立,Qt/Embedded和Qtopia下应用程序的实现
4.Qt/Embedded下应用程序的开发流程
综合应用:Qt/Embedded下应用程序的开发
第七章嵌入式Linux综合设计项目实例
一、学习目的与要求
本章的学习目的主要是通过综合开发实例掌握嵌入式Linux开发的基本流程和方法。了解网络视频监控系统的设计、实现流程;了解车载信息娱乐系统的设计思路、硬件电路设计和软件设计;了解电梯监控系统的系统设计和实现;了解无线点菜系统的设计思路、硬件设计和软件设计;了解基于WebService智能家居的系统设计和系统实现。重点通过上述综合开发实例的学习,掌握嵌入式Linux开发的基本流程、开发方法。
二、课程内容
7.1网络视频监控系统
7.2车载信息娱乐系统
7.2.1实例说明
7.2.2设计思路分析
7.2.3硬件电路设计
7.2.4软件设计
7.3基于嵌入式平台的电梯监控系统
7.3.1系统概述
7.3.2系统设计
7.3.3系统实现
7.4无线点菜系统
7.4.1设计思路分析
7.4.2系统硬件设计
7.4.3系统软件设计
7.4.4总结
7.5基于嵌入式与WebService的智能家居系统
7.5.1系统概述
7.5.2系统设计
7.5.3系统实现
三、考核知识点
1.网络视频监控系统
2.车载信息娱乐系统的设计思路,硬件电路设计和软件设计
3.基于嵌入式平台的电梯监控系统的系统设计和系统实现
4.无线点菜系统的设计思路,系统硬件设计和软件设计
5.基于嵌入式与WebService的智能家居系统系统设计和实现
四、考核要求
1.网络视频监控系统
综合应用:网络视频监控系统的开发
2.车载信息娱乐系统的设计思路,硬件电路设计和软件设计
综合应用:车载信息娱乐系统的开发
3.基于嵌入式平台的电梯监控系统的系统设计和系统实现
综合应用:电梯监控系统的开发
4.无线点菜系统的设计思路,系统硬件设计和软件设计
综合应用:无线点菜系统的开发
5.基于嵌入式与WebService的智能家居系统系统设计和实现
综合应用:智能家居系统系统的开发
三、有关说明与实施要求
(一)关于课程内容与考核目标的说明
《嵌入式Linux系统开发与应用》课程自学考试大纲明确了《嵌入式Linux系统开发与应用》课程学习的内容以及深广度,规定了该课程自学考试的范围和标准,是进行学习和考核的依据。该课程中各章的内容均由若干知识点组成,在自学考试中成为考核知识点。
本课程的考核目标主要是考核考生对《嵌入式Linux系统开发与应用》课程内容的掌握程度,检查他们对嵌入式Linux系统开发的认识深度与广度,以及他们在工作中应用这些理论与方法的能力,处理和解决实际开发问题的能力。
《嵌入式Linux系统开发与应用》课程自学考试大纲要求考生学习和掌握的知识点内容都作为考核的内容。由于各知识点在课程中的地位、作用以及知识自身的特点不同,自学考试将对各知识点分别按四个认知(或叫能力)层次确定其考核要求。四个能力层次从低到高依次是:识记;领会;简单应用;综合应用。关于这些用语、概念的解释如下:
识记:能正确认识和表述科学事实、原理、术语和规律,知道该课程的基础知识,并能进行正确的选择和判断。
领会:能将所学知识加以解释、归纳,能领悟某一概念或原理与其他概念或原理之间的联系,理解其引申意义,并能做出正确的表述和解释。
简单应用:能用所学的概念、原理、方法正确分析和解决较简单问题,具有分析和解决一般问题的能力。
综合应用:能灵活运用所学过的知识,分析和解决比较复杂的问题,具有一定解决实际问题的能力。
(二)关于自考教材
《嵌入式Linux系统开发与应用》康维新主编,机械工业出版社出版,2013年1月第1版。
(三)自学方法指导
1.本课程的学习者应根据本大纲规定,认真阅读指定教材,理解教材中的基本原理,熟悉基本分析方法。为有效地指导个人自学和社会助学,本大纲已指明了课程的重点和难点,在各章的基本要求中也指明了各章内容的重点和难点。本课程的学习者应在全面系统学习的基础上,掌握重点,有目的的深入学习重点章节的内容,但切忌在没有全面学习教材的情况下孤立地去抓重点。
2.本课程的学习者在自学时,应根据本大纲在推荐教材和参考书中找出大纲中相关章节知识点的论述,系统做出自学笔记,适当地配合地进行编程练习。本课程中需要动手编程的实践内容较多,自学者在学习时,要注重对知识点的理解和掌握,仔细阅读教材和参考书中的内容,多动手编程和调试,做到融会贯通。
(四)对社会助学的要求
1.社会助学者应根据本大纲规定的考试内容和考核目标,认真钻研指定的教材,明确本课程的特点、学习范围和学习要求,对自学应考者进行切实有效的辅导,并从学习方法上给予指导,引导他们防止自学中的各种偏向,把握社会助学的正确方向。
2.正确处理重点和一般的关系。课程内容有重点与一般之分,但考试的内容要覆盖全部课程,而且重点与一般是相互联系的,不是截然分开的。社会助学者应全面系统地学习教材,掌握全部考试内容和考核知识点,在此基础上再突出重点。总之,要将把全面理解和重点深入探讨结合起来,切勿孤立地只抓重点,把自学应考者引向猜题押题的歧途。
3.正确处理基础知识与应用能力之间的关系。社会助学者既要重视基础理论知识,又要重视实际应用能力的培养,努力引导自学应考者将识记、领会同应用联系起来,将基础知识和理论转化为应用能力,在全面辅导的基础上,着重培养和提高自学应考者分析和解决问题的能力。
(五)关于命题考试的若干要求
1.本课程考试采用闭卷笔试方式,考试的时间为150分钟。本课程考试可以携带没有存储功能的小型计算器。
2.本大纲各章所规定的基本要求、考核知识点及考核要求下的知识细目,都属于考核的内容。考试命题既要覆盖到章,又要避免面面俱到。要注意突出课程的重点、章节重点,加大重点内容的覆盖度。
3.命题不应有超出大纲中考核知识点范围的题,考核目标不得高于大纲中所规定的相应的最高能力层次要求。命题应着重考核自学者对基本概念、基本知识和基本理论是否了解或掌握,对基本方法是否会用或熟练。不应出与基本要求不符的偏题或怪题。
4.本课程在试卷中对不同能力层次要求的分数比例大致为:识记占20%,领会占30%,简单应用占30%,综合应用占20%。
5.要合理安排试题的难易程度,试题的难度可分为:易、较易、较难和难四个等级。每份试卷中不同难度试题的分数比例一般为:2:3:3:2。
必须注意试题的难易程度与能力层次有一定的联系,但二者不是等同的概念。在各个能力层次中对于不同的考生都存在着不同的难度,考生切勿混淆。
6.课程考试命题的主要题型一般有单项选择题、多项选择题、判断题、名词解释题、简答题、编程题、论述题等题型。各种题型的具体样式参见附录题型举例。
附录:题型举例
一、单项选择题,要求给出四个备选答案(一个正确答案)
1、在VI编辑器的命令模式下,下面那个命令用来删除光标所在字符()。
A、x
B、X
C、dd
D、DD
二、多项选择题,要求给出五个备选答案(二个以上正确答案)
1、TCPsocket编程的基本函数包括()。
A、socket()
B、bind()
C、connect()
D、send()
E、exit()
三、判断题
1、Linux下每个设备对应两个设备号,一个是主设备号,一个是从设备号。()
四、名词解释题
1、字符设备
五、简答题
中国足彩网信息请查看学历考试网