资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
高纲1450
江苏省高等教育自学考试大纲
29945 嵌入式软件技术概论
南京航空航天大学编
江苏省高等教育自学考试委员会办公室
一、 课程性质及其设置目的与要求
( 一) 课程性质和特点
《嵌入式软件技术概论》是高等教育自学考试计算机网络专业( 独立本科段) 考试计划规定必考的一门专业课。经过本课程的学习, 不但使学生了解嵌入式计算机系统的基本概念和组织构成, 并以ARM Cortex-M0+系列微处理器为基础掌握嵌入式计算机系统软件的开发方法, 重点培养学生嵌入式计算机系统的软件开发能力。
( 二) 本课程的基本要求
本课程共分为14章。在对嵌入式计算机的学科基础、 研究和应用领域以及ARM Cortex-M0+微处理器和KL25子系列微控制器进行简要介绍的基础上, 重点阐述了如何基于KL25子系列微控制器开发一个相对完整的嵌入式系统的具体过程, 以及嵌入式系统中所包含的基本接口及模块的编程方法, 包括串行通信、 中断、 定时器、 GPIO、 FLASH、 ADC、 DAC、 CMP、 SPI、 I2C、 TSI、 USB2.0、 系统时钟及其它接口与模块。经过对本书的学习, 要求应考者对嵌入式计算机系统有一个全面和正确的了解。具体应达到以下要求:
1.了解嵌入式计算机系统的基本概念、 发展过程、 现状和发展趋势, 嵌入式计算机系统的应用范畴, 嵌入式计算机系统与通用计算机系统的区别与联系;
2.理解并掌握嵌入式计算机系统的基本构成和基本原理;
3.掌握基于KL25子系列微控制器的嵌入式计算机软件系统开发的方法以及对嵌入式计算机系统各基本接口及模块的开发编程方法。
( 三) 本课程与相关课程的联系
嵌入式软件技术概论是一门综合性和应用性都比较强的课程, 其内容涉及计算机相关专业的大部分专业课程, 学习者需要具有一定的数字电路及编程基础, 也要对计算机的一般组成有所了解。因此, 本课程的前修课程应至少包含《数字电路》、 《程序设计语言》( 以C语言为主) 以及《计算机组成原理》, 这些课程能够帮助学生很好的理解嵌入式计算机系统的硬件结构及尽快掌握嵌入式计算机系统的软件编程方法。
二、 课程内容与考核目标
第1章 概述
( 一) 课程内容
本章简要而全面地介绍了嵌入式计算机系统的定义、 由来及特点, 以及其知识体系和相关术语, 总结并收拢C语言基础知识, 为后续学习打下基础。
( 二) 学习要求
了解和掌握嵌入式计算机系统的定义、 由来及特点, 以及其知识体系和相关术语; 总结和复习C语言基础知识。
( 三) 考核知识点和考核要求
1.领会: 嵌入式计算机系统的知识体系及相关术语;
2.掌握: 嵌入式计算机系统的定义及特点。
第2章 ARM Cortex-M0+处理器
( 一) 课程内容
本章简要概述了ARM Cortex处理器, 重点介绍ARM 及ARM Cortex-M0+处理器的内部结构特点及汇编指令。
( 二) 学习要求
经过本章的学习, 要求了解ARM Cortex处理器的-A、 -A50、 -M及-R系列各自的特点和应用范围; 了解和掌握ARM Cortex-M0+处理器的特点、 内核结构、 存储器映像、 内部寄存器、 寻址方式及指令系统; 能读懂ARM Cortex-M0+汇编代码。
( 三) 考核知识点和考核要求
1.领会: ARM Cortex处理器的-A、 -A50、 -M及-R系列各自的特点和应用范围; ARM、 ARM Cortex-M0+处理器的特点及内核结构。
2.掌握: ARM Cortex-M0+处理器的存储器映像、 内部寄存器、 寻址方式及指令系统。
3.熟练掌握: 读懂ARM Cortex-M0+汇编代码并能给出一段汇编代码的运行结果。
第3章 KL25简介与硬件最小系统
( 本章3.6节内容不做考核要求)
( 一) 课程内容
本章介绍了Kinetis系列MCU的各子系列特性及应用领域, 并经过对Kinetis L系列MCU进行分析, 阐述了Kinetis系列MCU的基本知识、 实现构架。重点介绍了KL25 MCU的存储映像、 引脚功能和硬件最小系统。
( 二) 学习要求
了解Kinetis系列MCU的各子系列特性、 应用领域、 基本知识及实现构架; 了解KL25 MCU的引脚功能和硬件最小系统结构; 掌握硬件最小系统概念及KL25 MCU的存储映像。
( 三) 考核知识点和考核要求
1.领会: Kinetis系列MCU的各子系列特性、 应用领域、 基本知识及实现构架; 了解KL25 MCU的引脚功能和硬件最小系统结构。
2.掌握: 最小系统概念及KL25 MCU的存储映像。
第4章 第一个样例程序及工程组织
( 本章4.4.2~4.6节内容不做考核要求)
( 一) 课程内容
本章给出通用I/O基本概念和连接方法, 简要给出KL25 MCU的端口控制模块与GPIO模块的编程结构; 阐述了给直接映像寄存器地址赋值的方法, 点亮一盏小灯的编程步骤; 阐述制作构件的必要性及基本方法并给出第一个构件化编程框架、 GPIO构件、 Light构建编程实例。
( 二) 学习要求
了解通用I/O基本概念和连接方法; 了解KL25 MCU的端口控制模块与GPIO模块的编程结构; 掌握给直接映像寄存器地址赋值的方法及点亮一盏小灯的编程步骤; 了解制作构件的必要性及基本方法。
( 三) 考核知识点和考核要求
1.领会: 通用I/O基本概念和连接方法; KL25 MCU的端口控制模块与GPIO模块的编程结构; 制作构件的必要性及基本方法。
2.掌握: 给直接映像寄存器地址赋值的方法及点亮一盏小灯的编程步骤。
第5章 构件化开发方法与底层驱动构建封装规范
( 一) 课程内容
本章分析了嵌入式构件化的必要性并给出了构件化的定义; 详细给出了KL25系统的硬件构件化设计的规则及注意要点; 阐述了基于硬件构件的嵌入式底层软件构件的编程方法及编程框架; 阐述软硬件构件的重用和移植方法; 给出了底层驱动构件封装规范并详细分析了公共要素文件编写技巧。
( 二) 学习要求
经过本章的学习, 了解嵌入式构件化的必要性并掌握其定义; 了解和掌握KL25系统的硬件构件化设计的规则及注意要点; 了解和掌握基于硬件构件的嵌入式底层软件构件的编程方法及编程框架; 了解软硬件构件的重用和移植方法; 了解底层驱动构件封装规范及公共要素文件编写技巧。
( 三) 考核知识点和考核要求
1.领会: 嵌入式构件化的必要性; KL25系统的硬件构件化设计的规则及注意要点; 基于硬件构件的嵌入式底层软件构件的编程方法及编程框架; 软硬件构件的重用和移植方法; 底层驱动构建封装规范及公共要素文件编写技巧。
2.掌握: 嵌入式构件化的定义; 重用概念; 移植概念。
第6章 串行通信模块及第一个中断程序结构
( 一) 课程内容
本章主要阐述了串口相关的基础知识及KL25 MCU的串口模块功能概要并介绍了串口模块驱动构件编程时涉及的寄存器; 设计并封装了串行通讯的驱动构件; 分析了KL25 MCU的中断机制并给出了中断的编程步骤和实例。
( 二) 学习要求
经过本章的学习, 了解串口相关的基础知识及KL25 MCU的串口模块功能并掌握串口模块驱动构件编程时涉及的寄存器; 了解串行通讯驱动构件的设计和封装方法; 了解KL25 MCU的中断机制并掌握中断编程方法及编程时涉及的寄存器。
( 三) 考核知识点和考核要求
1.领会: 串口相关的基础知识及KL25 MCU的串口模块功能; 串行通讯驱动构件的设计和封装方法; KL25 MCU的中断机制。
2.掌握: 串口模块驱动构件编程方法及编程时涉及的寄存器; 中断编程方法及编程时涉及的寄存器。
第7章 定时器相关模块
( 一) 课程内容
本章讲述了计数器/定时器的一般工作原理, 主要介绍了KL25 MCU的内核定时器和定时器接口模块的基本功能和基本编程方法。
( 二) 学习要求
经过本章的学习, 了解计数器/定时器的一般工作原理; 了解内核时钟的功能并掌握内核时钟的相关寄存器及设置方法; 了解定时器/PWM模块的功能、 对应外部引脚并掌握该模块相关的寄存器及编程设置方法; 了解周期中断定时器( PIT) 的功能并掌握该模块相关的寄存器及编程设置方法; 了解低功耗定时器( PTMR) 的功能、 对应外部引脚并掌握该模块相关的寄存器及编程设置方法; 了解实时时钟模块( PTC) 的功能、 对应外部引脚并掌握该模块相关的寄存器及编程设置方法。
( 三) 考核知识点和考核要求
1.领会: 计数器/定时器的一般工作原理; 内核时钟的工作原理及驱动构件封装; 定时器/PWM模块的工作原理及驱动构件封装; 周期中断定时器( PIT) 的工作原理及驱动构件封装; 低功耗定时器( PTMR) 的工作原理及驱动构件封装; 实时时钟模块( PTC) 的工作原理及驱动构件封装。
2.掌握: 各计数器/定时器模块的功能、 相关寄存器及编程设置方法及驱动构件结构。
第8章 GPIO应用——键盘、 LED与LCD
( 一) 课程内容
本章讲述了KL25 MCU GPIO模块的一般工作原理, 主要介绍了键盘、 LED与LCD等GPIO模块典型应用的构件化设计编程方法及上述构件的综合应用范例。
( 二) 学习要求
经过本章的学习, 了解和掌握GPIO接口模块的一般工作原理; 了解和掌握键盘扫描基本原理和编程方法; 了解和掌握LED扫描基本原理和编程方法; 了解和掌握字符型LCD的基本原理和编程方法。
( 三) 考核知识点和考核要求
1.领会: 键盘扫描基本原理; LED扫描基本原理; 字符型LCD的基本原理。
2.掌握: 键盘驱动构件结构; LED驱动构件结构; LCD驱动构件结构。
第9章 Flash在线编程
( 本章内容不做考核要求)
第10章 ADC、 DAC与CMP模块
( 本章内容不做考核要求)
第11章 SPI、 I2C与TSI模块
( 本章内容不做考核要求)
第12章 USB2.0编程
( 本章内容不做考核要求)
第13章 系统时钟与其它功能模块
( 本章内容不做考核要求)
第14章 进一步学习指导
( 本章内容不做考核要求)
三、 有关说明和实施要求
( 一) 关于”课程内容与考核目标”中有关提法的说明
在大纲的考核要求中, 提出了”领会”、 ”掌握”、 ”熟练掌握”等三个能力层次的要求, 它们的含义是:
1.领会: 要求应考者能够记忆规定的有关知识点的主要内容, 并能够领会和理解规定的有关知识点的内涵与外延, 熟悉其内容要点和它们之间的区别与联系, 并能根据考核的不同要求, 做出正确的解释、 说明和阐述。
2.掌握: 要求应考者掌握有关的知识点, 正确理解和记忆相关内容的原理、 方法步骤等。
3.重点掌握: 要求应考者必须掌握的课程中的核心内容和重要知识点。
( 二) 自学教材
本课程使用教材为: 《嵌入式技术基础与实践( 第三版) 》, 王宜怀、 朱仕浪、 郭芸著, 清华大学出版社, 。
( 三) 自学方法的指导
本课程作为一门的专业课程, 综合性强、 内容多、 难度大, 应考者在自学过程中应该注意以下几点:
1.学习前, 应仔细阅读课程大纲的第一部分, 了解课程的性质、 地位和任务, 熟悉课程的基本要求以及本课程与有关课程的联系, 使以后的学习紧紧围绕课程的基本要求。
2.在阅读某一章教材内容前, 应先认真阅读大纲中该章的考核知识点、 自学要求和考核要求, 注意对各知识点的能力层次要求, 以便在阅读教材时做到心中有数。
3.阅读教材时, 应根据大纲要求, 要逐段细读, 逐句推敲, 集中精力, 吃透每个知识点。对基本概念必须深刻理解, 基本原理必须牢固掌握, 在阅读中遇到个别细节问题不清楚, 在不影响继续学习的前提下, 可暂时搁置。
4.学完教材的每一章节内容后, 应认真完成教材中的习题和思考题, 这一过程可有效地帮助自学者理解、 消化和巩固所学的知识, 增加分析问题、 解决问题的能力。
( 四) 对社会助学的要求
1.应熟知考试大纲对课程所提出的总的要求和各章的知识点。
2.应掌握各知识点要求达到的层次, 并深刻理解各知识点的考核要求。
3.对应考者进行辅导时, 应以指定的教材为基础, 以考试大纲为依据, 不要随意增删内容, 以免与考试大纲脱节。
4.辅导时应对应考者进行学习方法的指导, 提倡应考者”认真阅读教材, 刻苦钻研教材, 主动提出问题, 依靠自己学懂”的学习方法。
5.辅导时要注意基础、 突出重点, 要帮助应考者对课程内容建立一个整体的概念, 对应考者提出的问题, 应以启发引导为主。
6.注意对应考者能力的培养, 特别是自学能力的培养, 要引导应考者逐步学会独立学习, 在自学过程中善于提出问题、 分析问题、 做出判断和解决问题。
7.要使应考者了解试题难易与能力层次高低两者不完全是一回事, 在各个能力层次中都存在着不同难度的试题。
( 五) 关于命题和考试的若干规定
1.本大纲各章所提到的考核要求中, 各条细目都是考试的内容, 试题覆盖到章, 适当突出重点章节, 加大重点内容的覆盖密度。
2.试卷对不同能力层次要求的试题所占的比例大致是: ”领会”20%, ”掌握”60%, ”熟练掌握”为20%。
3.试题难易程度要合理, 可分为四档: 易、 较易、 较难、 难, 这四档在各份试卷中所占的比例约为2: 3: 3: 2。
4.本课程考试试卷采用的题型: 单项选择题、 名词解释、 简答题、 案例分析题及应用题。( 见附录题型示例) 。
5.考试方式为闭卷笔试, 考试时间为150分钟。评分采用百分制, 60分为及格。
附录 题型举例
一、 单项选择题
如: KL25芯片每个GPIO端口的寄存器数量是( )
A.4个 B.5个 C.6 个 D.7个
二、 名词解释
如: 构件移植
三、 简答题
如: 简述LBX指令的用途。
四、 案例分析题
如: 分析下列代码执行结果
LDR R2,[R1]
MOV R1,R2
ADD R2,R4,R1
STR R2,[R1]
五、 应用题
如: 将下列代码中空白部分补充完整。
//-----------------------------------------------------------------------*
//函数名: GPIO_Init *
//功 能: _____________ *
//参 数: port:端口名 *
// pin:指定端口引脚 *
// direction:引脚方向,0=输入,1=输出 *
// state:初始状态,0=低电平,1=高电平 *
//返 回: 无 *
//说 明: 无 *
//-----------------------------------------------------------------------*
void GPIO_Init(uint8 port,uint8 pin,uint8 direction,uint8 state);
展开阅读全文