文档库 最新最全的文档下载
当前位置:文档库 › 29945 嵌入式软件技术概论

29945 嵌入式软件技术概论

29945  嵌入式软件技术概论
29945  嵌入式软件技术概论

高纲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.重点掌握:要求应考者必须掌握的课程中的核心内容和重要知识点。

(二)自学教材

本课程使用教材为:《嵌入式技术基础与实践(第三版)》,王宜怀、朱仕浪、郭芸著,清华大学出版社,2013年版。

(三)自学方法的指导

本课程作为一门的专业课程,综合性强、内容多、难度大,应考者在自学过程中应该注意以下几点:

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);

组态软件的发展历史

1.3组态软件的产生和发展趋势 1.3.1组态软件的概念和产生背景 组态英文是“Configuration”,是用“应用软件”中提供的工具、方法、完成工程中某一具体任务的过程。组态软件指一些数据采集与过程控制的专用软件,是面向监控与数据采集(Supervisory Control and Date Acquisition,SCADA)的自动控制系统监控层一级的软件平台和开发环境,能以灵活多样的组态方式(而不是编程方式)提供良好的用户开发界面和简捷的使用方法,其预设置的各种软件模块可以非常容易地实现和完成监控层的各项功能,并能同时支持各种硬件厂家的计算机和I/O产品,与高可靠的工控计算机和网络系统结合,可向控制层和管理层提供软、硬件的全部接口,进行系统集成。 在“组态”概念出现之前,是通过编写程序(如使用BASIC、C、FORTRAN 等)来实现某一任务的,编写程序不但工作量大、周期长,而且容易犯错误,不能保证工期。组态软件的出现,解决了这个问题。“组态”的概念是伴随集散型控制系统(Distributed Control System简称DCS)的应用产生的,如DCS组态,PLC 梯形图组态。在其他行业也有组态的概念,如AutoCAD,Photoshop,办公软件(powerpoint)都存在相似的操作,即用软件提供的工具来形成自己的作品,并以数据文件保存作品,而不是执行程序。组态形成的数据只有其制造工具或其他专用工具才一能识别。由于个人计算机的普及和技术的逐渐成熟,如何利用PC进行工业监控,成为工业控制领域的重要研究方向,市场的发展使很多DSC和PLC 厂家主动公开通信协议,向“PC”监控完全开放,这不仅降低了监控成本,也使市场空间得以扩大,智能仪器、嵌入式系统和现场总线的出现,更使组态软件成为工业自动化系统中的灵魂。 1.3.2组态软件的功能特点 (l)功能多样。组态软件提供工业标准数学模型库和控制功能库,组态模式灵活,能满足用户所需的测控要求。对测控信息的历史记录进行存储、显示、计算、分析、打印,界面操作灵活方便,具有双重安全体系,数据处理安全可靠。 (2)丰富的画面显示组态功能。提供给用户丰富方便的常用编辑工具和作图工具,提供工业设备图符、仪表图符,还提供趋势图、历史曲线、组数据分析图等:提供十分友好的图形化用户界面,包括Windows风格的窗口、弹出菜单、按

嵌入式系统概论_第七章

四系统行为描述(计算)模型

计算模型(Computation Model) 概述 时序程序模型 有限状态机(FSM) 并发进程模型 数据流模型 流程图 小结

计算模型-概述(1) 计算模型(computation Model)描述系统的处理行为(过程)的方法 模型作用 帮助设计者理解和描述系统行为 减少系统缺陷(bug) Most system bugs come from mistakes made describing the desired behavior rather than from mistakes in implementing that behavior.

计算模型-概述(2) 描述嵌入式系统的模型 时序程序模型(sequential program model) 提供一组语句、语句排列的规则 说明语句如何以一次一条的方式执行 表现为程序伪码 状态机模型(State machine model) 提供系统状态及状态之间转换的条件和方式 常用于以控制为主的系统 主要行为包括监视控制输入、设置控制输出来相 应

计算模型-概述(3) 描述嵌入式系统的模型(续) 并发进程模型(parallel process model) 描述多个进程执行的时序,以及进程之间的通讯过程。 适用于多进程系统 数据流(dataflow model) 描述过程中数据流动的路径 常用于以数据为主的系统 主要行为将输入数据流转换为输出数据流 面向对象模型(Object-oriented model) 将复杂的软件分为简单而确定的片断

嵌入式软件测试报告(内部)

软件(内部)测试报告 XXX系统 测试分析报告评审 V1.0 编写人: 编写日期: 审核人: 审核日期:

修订页

目录 目录 (1) 软件测试报告(内部) (2) 安装及使用测试 (3) 运行环境 (3) 安装易用性 (3) XXX测试 (4) 安装、使用问题及建议 (4) 功能单元测试 (5) 串口指令响应功能测试 (5) 1.测试方法及工具 (5) 2.功能测试 (5) 3.性能测试 (6) 4.稳定及安全性测试 (6) 5.BUG及建议 (6) xxx功能测试 (7) 整机测试 (8) 长时间工作稳定性整机测试 (8) 1.测试方法及工具 (8) 2.测试步骤及结果 (8) xxx整机测试 (8) 整机测试问题及建议 (8) 安装及使用测试附件 (10) 功能单元测试附件 (11) 整机测试附件 (12)

软件测试报告(内部) CRABXLAB-0628-15 TA/0001 软件测试报告编写:首先做对产品的安装及使用测试,如从运行环境、软件安装、故障指示、用户可操作性、界面友好性等方面来检测是否合理可靠;其次从功能完整性上测试,并对每个功能单元进行功能测试、性能测试、安全及稳定性测试,保证每个功能单元都稳定可靠;最后做整机测试,整机测试主要从长时间工作稳定性、异常处理(如网络、电量异常)合理可靠性等方面检查整机稳定可靠性。

安装及使用测试 开发出来的软件要基于对客户或者量生产上考虑产品的使用及安装环境的易用、安全、可操作性、友好性等。 运行环境 安装易用性

XXX测试 章节同安装及使用测试范例,由开发人员完善其他需要的测试项安装、使用问题及建议

嵌入式软件开发技术 习题集

嵌入式软件技术概论习题集 一单项选择题 1. 世界上第一台计算机研制成功的年代是( C ) Α.1944年B.1945年C.1946年D.1947年2. 十进制数235,用二进制表达为( A ) Α.11101011 B.11101010 C.11101001 D.11101110 3. ARM采用定长指令格式,所有指令都是32位,Bit[31:28]为( B ) Α.目标寄存器编码B.条件执行C.指令操作符编码D.永远是0 4. 8080处理器是(C ) Α.32位处理器B.16位处理器C.8位处理器D.4位处理器5. 把微处理器与外部设备相连接的线路称为(D ) Α.电源线B.控制线C.数据线D.总线 6. 嵌入式软件开发构建阶段的第一步是( A ) Α.编译B.链接C.定址D.打包 7. 以下有关进程和程序的说法错误的是( D ) Α.进程是动态的B.程序是静态的 C.一个程序可以对应多个进程D.程序就是进程 8. 微软开发的嵌入式操作系统是( C ) Α.RT-Linux B.MontaVista C.Windows CE D.VxWorks 9. ROM监视器是一个小程序,驻留在嵌入式系统的( B ) Α.RAM中B.ROM中C.Flash中D.DOM中10.直接存储器存取的英文缩写是( A ) Α.DMA B.DRAM C.ISA D.IRQ 11. 以下不是嵌入式系统应用领域的是( C ) Α.移动电话B.汽车电子C.办公系统D.军工航天12. 十进制数235,用八进制表达为( C ) Α.351 B.352 C.353 D.354 13. ARM采用定长指令格式,所有指令都是32位,Bit[27:26]为(C ) Α.目标寄存器编码B.指令操作符编码C.永远是0 D.条件执行14. 80286处理器是(B ) Α.32位处理器B.16位处理器C.8位处理器D.4位处理器15. 厂家和用户为性能扩充或作为特殊要求使用的信号线称为( A ) Α.备用线B.控制线C.数据线D.总线16. 嵌入式软件开发构建阶段的第二步是( B ) Α.编译B.链接C.定址D.打包17. 以下有关进程和程序的说法错误的是(B ) Α.进程是动态的B.一个进程可以对应多个程序 C.一个程序可以对应多个进程D.程序不是进程 18. WindRiver公司开发的嵌入式操作系统是( A ) Α.VxWorks B.MontaVista C.Windows CE D.RT-Linux 19. GDB中,用来设置断点的命令是( D ) Α.kill B.next C.make D.break 20.1Byte等于( D ) Α.1024KB B.1024KM C.1024GB D.8bit 21. 以下不是嵌入式系统应用领域的是( A ) Α.电子商务B.移动电话C.消费类电子产品D.军工航天

什么是嵌入式软件开发嵌入式系统软件开发所需要学习那些知识_百(精)

什么是嵌入式软件开发?嵌入式系统软件开发所需要学习那些知识? 随着智能化和信息化网络化的不断发展,嵌入式技能已经日趋成为一种新时代新技术革命的关键。对于嵌入式系统和嵌入式软件开发人员来说,这份职业无疑是种高端应用技术的结合。是一个很有前景的职业。 嵌入式趋势来势汹涌,目前为止已经被很多企业所应用,对于这方面人才的需求更是倍感吃紧。关于嵌入式具体应用不做详细的解说,在这里有必要强调一下,嵌入式软件开发是含义,和要想在嵌入式软件开发中取得不菲的成绩所需掌握那些最基础的知识。 嵌入式技术执行专用功能并被内部计算机控制的设备或者系统。嵌入式系统不能使用通用型计算机,而且运行的是固化的软件,嵌入式技术及应用是计算机应用技术的新发展,具有广泛的应用领域和发展前景,就业形势看好。 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑,笼统地来说,嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 这么多的应用可见嵌入式系统的前景和人才需求是相当大的,在最近几年中关于这一类的培训也层出不穷,所涉及到的课程和知识点相对来说还是有点差异的,在深圳达内福田培训中心网站上看到了关于嵌入式系统软件开发所需要掌握的几大知识点,感觉划分的很细致。 主要包含以下8个核心部分 1.Linux操作系统核心

嵌入式软件测试简介

一、嵌入式系统与嵌入式操作系统 1、嵌入式系统 嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的;适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。 嵌人式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌人式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结台在一起,它的升级换代也是和具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性;一般都固化在只读存储器中或间存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。 2、嵌入式操作系统 嵌入式操作系统EOS(Embedded Operating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌人系统的全部软、硬件资源的分配、调度工作,控制。 协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌人式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点: (1)可装卸性。开放性、可伸缩性的体系结构。 (2)强实时性。EOS实时性一般较强,可用于各种设备控制当中。 (3)统一的接口。提供各种设备驱动接日。 (4)操作方便、简单、提供友好的图形GUI,图形界面,追求易学易用。 (5)提供强大的网络功能,支持TCP门P协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。 (6)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS臭有较强的稳定性。嵌入式操作系统的用户接日一般不提供操作命令,它通过系统调用命令向用户程序提供服务。 (7)固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。 (8)更好的硬件适应性,也就是良好的移植性。 二、三种常用的嵌入式操作系统 1. PALM OS Palm是3Corn公司的产品,其操作系统为Palm OS。Palm OS是一种32位的嵌入式操作系统。Palm提供了串行通信接口和红外线传输接口;利用它可以方便地与其它外部设备通信、传输数据;拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。Palm OS是一套具有极强开放性的系统,现在有大约数千种专门为Palm OS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业解决方案,Palm OS无所不包。在丰富的软件支持下,基干Palm OS的掌上电脑功能得以不断扩展。 Palm OS是一套专门为掌上电脑开发的OS。在编写程序时,Palm OS充分考虑了掌上电脑内存相对较小的情况,因此它只占有非常小的内存。由于基干Palm OS编写的应用程序占用的空间也非常小(通常只有几十KB),所以,基于Palm OS的掌上电脑(虽然只有几MB的RAM)可以运行众多应用程序。 由于Palm产品的最大特点是使用简便、机体轻巧;因此决定了Palm OS应具有以下特点。 (1)操作系统的节能功能。由于掌上电脑要求使用电源尽可能小,因此在Palm OS的应用程序中,如果没有事件运行,则系统设备进人半休眠(doze)的状态;如果应用程序停止活动一段时间,则系统自动进人休眠(sleep)状态。 (2)合理的内存管理。Palm的存储器全部是可读写的快速RAM,动态RAM(Dynamic RAM)类似于PC机上的RAM,它为全局变量和其它不需永久保存的数据提供临时的存储空间;存储RAM(Storage RAM)类似于PC机上的硬盘,可以永久保存应用程序和数据。 (3)Palm OS的数据是以数据库(database)的格式来存储的。数据库是由一组记录(records)和一些数据库头信息组成的。为保证程序处理速度和存储器空间,在处理数据的时候,Palm OS不是把数据从存储堆(Storage Heap)拷贝到动态堆(Dynamic Heap)后再进行处理,而是在存储堆中直接处理。为避免错误地调用存储器地址,Palm OS规定,这一切都必须调用其内存管理器里的API来实现。 Palm OS与同步软件(Hotsync)结合可以使掌上电脑与PC机上的信息实现同步,把台式机的功能扩展到了掌上电脑。Palm应用范围相当广泛,如:联络及工作表管理、电子邮件及互联网通信。 销售人员及组别自动化等等。Palm外围硬件也十分丰富,有数码相机、GPS接收器、调制解调器、GSM无线电话、数码音频播放设备、便携键盘、语言记录器、条码扫描、无线寻呼接收器、探测仪。 其中Palm与GPS结合的应用,不但可以作导航定位,还可以结合GPS作气候的监测、地名调查等。 2. Windows CE

29945嵌入式软件技术概论

29945嵌入式软件技术概 论 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

高纲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章概述

嵌入式系统概论讲解

第一章嵌入式系统概论 参考习题 1、嵌入式系统本质上是什么系统? 答:从本质上讲,嵌入式系统中的计算机总是处于一种实时计算模式,也可以认为嵌入式计算机应具有某种实时性。也就是说,从嵌入式系统的广义概念考虑,嵌入式系统都可以看成是实时系统。 2、嵌入式系统开发与PC机软件开发的区别是什么? 答:嵌入式开发就是设计特定功能的计算机系统,形象的说就是开发一种嵌入在一个机器上实现特定功能的一个系统。PC的开发往往是上层应用程序,会更多的和业务流程,数据库,UI打交道。嵌入式的开发主要是和底层打交道,例如内存,NAND, 各种控制器,中断调度等等。当然现在也有很多需要在嵌入式设备上开发上层应用程序的需求了。 3、嵌入式系统基本概念? 答:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可配置,对功能、可靠性、成本、体积、功耗有严格约束的专用系统。这类系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统(可选择)以及应用程序等四个部分组成的。 4、嵌入式系统分类?

答:(1)按微处理器位数划分 按所采用的处理器位数,可以分为4位、8位、16位、32位和64位系统。 (2)按应用类别划分 可以简单地划分为信息家电、通信、汽车电子、航空航天、移动设备、军用电子、工业控制、环境监控等各种类型。 (3)按系统的实时性划分 硬实时系统、软实时系统和自适应实时。 (4)按工业界应用的复杂程度划分 简单单处理器系统 可扩展单处理器系统 复杂嵌入式系统 制造或过程控制中使用的计算机系统 第二章ARM嵌入式微处理器技术基础 参考习题 1、ARM32位指令、16位指令的特点。 答:ARM微处理器支持32位的ARM指令集和16位Thumb指令集,每种指令集各有自己的优点和缺点:ARM指令集效率高,但代码密度低;Thumb指令集具有较高的代码密度,却仍保持ARM的大多数性能上的优势,可看做ARM指令集的子集。

嵌入式系统导论复习题.docx

嵌入式系统导论复习题 一填空 1、嵌入式系统通常是以应用为中心,以计算机技术为基础,软换件可裁剪,对功能、体积、功耗等严格耍求的专用计算机系统。 2、嵌入式系统的可靠性是嵌入式计算机的生命线。 3、嵌入式系统的基本结构一般可分为硕件和软件,换件包括嵌入式核心芯片、存储器系统及外部接口,软件包括应用软件、编程接口、嵌入式操作系统和板升级支持包。 4、嵌入式处理器主要包括EMPU、EMCU、EDSP和ESOC。其中ESOC最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。 5、目前使用的嵌入式操作系统有好几十种,最常用的是LINUX和WINCEo 6、嵌入式系统的系统级设计方法主要冇先硬件后软件设计方法和软硬件协同设计的方法,其中针对单片机的开发是釆用先硕件后软件的方法。 7、嵌入式软件可分为系统软件、支撑软件和应用软件三类。 8、嵌入式处理器是嵌入式硬件系统的核心,其种类非常多,常见的有ARM处理器、MIPS 处理器和PowerPC处理器。 9、TI公司的TMS320C2XXX系列的DSP可作为MCU进行使用。 10、标准的嵌入式系统架构有两人体系:RISC和CISC,其中RISC架构的处理器包括ARM、MIPS、PowerPC、ARC等,CISC架构为我们所熟知的是INTEL的X86架构、VIA架构和AMD 架构。 ARM7系列微处理器为32位RISC处理器。 12、国产嵌入式处理器的代表芯片为方舟和龙芯系列处理器。 13、存储器有三个主要特性:速度、容量和价格。其中寄存器速度最快、价位最高、容量最小;主存用來存放将要参与运行的程序和数据;存取速度和容量介于寄存器和主存之间的为高速缓冲存储器cacheo 14、按存储器的作用不同,可分为主存储器、辅助存储器和缓冲存储器,其屮RAM和ROM 属于主存储器。 15、RAM主要有SRAM和DRAM,常见的RAM容量扩展方法为字长扩展和字数扩展。 16、CPU和I/O接口Z间通信的总线包括数据总线、控制总线和地址总线,其中数据总线是双向总线。 17、接口是两个部件之间的连接点或边界,通过接口把CPU和外设连接在一起,接口电路主要面向CPU和外设两个方面。 18、嵌入式系统中,I/O接口芯片寻址方式为:存储器映像法和I/O隔离法。 19、嵌入式处理器的复位电路是使处理器从起始地址开始执行指令。 20、串行通信有3种基本传送方式:单工、半双工和全双工。串行通信的两种类型为异步串行通信和同步串行通信。 21、串行接口RS 系列标准冇:RS-232, RS-422, RS-485o 22、蓝牙模块的无线通信频率为2.4GHZ以内,主要有3个部分组成:无线传输收发单元、 基带处理单元以及数据传输接口。 23、I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。 24、嵌入式操作系统是嵌入式系统极为重要的纟R成部分,是嵌入式系统的灵魂,通常包 括与硕件相关的底层驱动软件、系统内核、设备驱动接口、通信协议等。 25、典型的嵌入式操作系统包括VXWorks, windowsCE, LINUX, U C/OS-II, QNX等,其中不是实时操作系统的为UNUXo

基于ARM嵌入式工控机主板的人机界面组态软件开发方案

基于ARM嵌入式工控机主板的人机界面组态软件开发方案本文介绍基于ARM单片机的嵌入式控制系统的人机界面组态软件开发方案,嵌入式系统具有RS232,RS485串口,单片机TTL电平串口,I2C通讯接口,以太网接口,无线通讯,U盘存储,语音播放等功能。可以配套使用10寸,12寸,15寸,17寸,19寸,30寸,50寸等触摸屏显示器,电视机。嵌入式人机界面组态软件HMImaker开发显示操作界面,具有各种组态控件,可编程数据库,0代码,如制作PPT简单快速。ARM嵌入式控制系统具有单片机协议,modbus通讯协议,I2C通讯协议,西门子,三菱,台达,欧姆龙PLC协议,广泛应用于各种单片机人机界面,嵌入式人机界面,PLC人机界面开发,如检测设备,测量控制系统,自动化控制,排队叫号机,自助服务终端,触摸屏控制系统,仪器仪表系统,楼宇自动化,智能交通系统,监控系统,机电设备控制系统,汽车电子,工厂电子看板,美容医疗仪器。 关键词: ARM主板、嵌入式工控机、ARM工控主板、嵌入式主板、人机界面、触摸屏控制系统 第一章、绪论 传统工控机存在着一些缺点,比如高功耗,可维护性差,散热和稳定性差,脆弱的存储器系统以及体积和成本因素,使之在工业控制的某些应用领域,无法达到令人满意的效果,不能满足应用需求,限制了IPC在诸多工业控制场合的应用。 ARM嵌入式工控机开关机通电断电即可,省去操作系统崩溃的担忧,通电即进入操作界面,无需等待,抗强电磁干扰,超低功耗,刷新速度快,长期运行,永不不死机,稳定可靠。系统无发热、永不崩溃、可承受连续插拔断电和3秒快速启动运行等诸多功能,无须采用风扇散热,防尘、防水性能好;功率低,节能,绿色环保。

嵌入式软件测试工程师

嵌入式软件测试工程师 一、嵌入式软件测试工程师任职条件 1、自动化、计算机、电子通信以及相关学科,硕士以上学历; 2、熟悉嵌入式Linux、Android、Windows CE或其它嵌入式操作系统下的开发和调试; 3、具有良好汇编语言和C语言的编程能力; 4、了解流行的处理器架构ARM/MIPS/POWERPC/ColdFire等;熟悉嵌入式系统的体系结构,熟悉嵌入式操作系统下的应用程序编写;熟练使用1种以上脚本开发,Lua。 5、3年以上嵌入式操作系统开发或测试经验; 有良好的编码习惯,能够按照代码规范进行编码及文档工作; 具有吃苦精神,能够承受较大的工作压力,自学能力强; 富于团队合作精神,工作责任心强;较强的英语阅读 5、熟悉测试基本理论、包括黑盒、白盒测试技术;熟悉功能测试和性能测试方法,熟悉软件测试流程和质量保证体系优先; 能力; 6、熟悉大型数据库,SQLSERVER、Oracle等。 .根据系统需求与设计能够编制测试方案,制定测试计划与测试用例;

7、具备系统测试环境的搭建与维护能力; 具备较强的设计文档的理解能力,口头和文字表达能力强; 8、熟悉C、C++ 编程,掌握gcc/make等相关开发工具;能够熟练掌握ADS、KeilC等嵌入式软件设计调试工具;熟悉TCP/IP网络协议,熟悉socket编程;掌握多种软件测试工具。 9、掌握常用的linux命令,熟悉数据库(SQL和Oracle)的基本操作; 10、.要有良好的组织沟通能力,具有团队协助精神; 二、嵌入式软件测试工程师职责 1、组建软件测试团队,制定相关测试流程及技术管理体系; 2、带领测试团队展开测试工作,负责产品的质量保证体系的建立; 3、规划测试策略,制定测试方案和计划,并负责计划的管理;负责按照测试计划组织实施软件测试;包括测试需求文档编写,测试用例设计,测试脚本执行;完整地记录测试结果,编写完整的测试报告等相关的技术文档; 4.对测试中发现的问题进行详细分析和准确定位,与开发人员讨论缺陷解决方案。 5.提出对产品的进一步改进的建议,并评估改进方案是否合理,对测试结果进行总结与统计分析,对测试进行跟踪,并提出反馈意见。 6.为业务部门提供相应技术支持,确保软件质量指标。 7、制定和实行测试相关的培训计划,提高测试团队的整体工作能; 8、做好测试和软硬件部门的沟通和协调工作。

嵌入式软件开发入门教程

C语言是嵌入式软件开发人员必须熟练掌握的编程语言。作为C语言的初学者重点掌握基本数据类型、复合数据类型、流程控制、数组、指针、函数这几方面的基本知识。本人建议通过观看视频教学的方式进行学习,这样既快速又通俗易懂,当然前提是必须找到优质的教学视频资源。此外,可以配合入门书籍谭浩强的《C语言程序设计》进行学习。如果想深入的学习可以参考美国人写的人民邮电出版社出版的《C Primer Plus》。 方法/步骤2: C语言的磨炼 掌握了基本的C语言语法以后并不代表我们就学会了C语言,关键是如何灵活的去运用。我们可以练习编写C语言学习书籍的课后习题或者在网站上搜索C语言笔试题库进行练习。也可以百度寻找经典的C 语言编程案例进行学习。总之,就是将C语言运用的越熟练越好。至于开发环境可以选择VC++ 6.0 或者linux。 方法/步骤3: 硬件电路基础

嵌入式软件工程师还必须懂一些硬件电路的基本知识。当然,对于刚入门的软件开发人员没必要非常精通电路技术,熟悉基本的电子元器件的功能即可。例如,电阻、电容、电感的作用以及符号,三极管、MOS管导通截止的条件,微处理器、晶振的基本概念等。至于,以上这些基本知识我们可以通过童诗白的第四版《模拟电子技术基础》和网上查阅的资料进行学习。 方法/步骤4: 如何看懂原理图 作为嵌入式软件开发人员我们经常会和硬件打交道,我们的程序最终会被烧录到微处理器内部运行。所以,我们必须要会看硬件原理图,看懂之后才知道如何写程序。首先,我们要知道嵌入式硬件最小系统的组成部分,包括电源电路、晶振、微处理器、复位电路。然后以微处理器为中心向四周查看,主要看我们可以操纵的外设资源。以上知识的学习我们不妨经常浏览一下某些知名IT网站其他人上传的经典原理图。 方法/步骤5: 基本外设知识

嵌入式软件测试与一般软件测试之异同研究

嵌入式软件测试与一般软件测试之异同研究 作者:网络转载发布时间:[ 2013/3/5 9:09:17 ]推荐标签: 摘要:随着计算机技术的普及,软件系统已经深入到生活的各个方面,从普通的计算机软件,到银行或超市的终端系统,甚至到手机的软件系统。对软件的质量要求也在不断提高,软件测试及其技术也有了飞速发展。在对软件测试技术相关基本概念研究解析的基础上,分析软件测试起源与发展,保证软件产品的质量、提高产品的可靠性。对于嵌入式软件系统,因其多样性,基于操作系统,使用的开发环境,微控制器都是日益繁多的,所以嵌入式软件测试与普通软件测试相比有其自身的特点。 关键字:软件测试;嵌入式测试;软件质量 1、引言 嵌入式软件的开发和测试也就与普通软件的开发和测试策略有了很大的不同,嵌入式软件系统是一种针对特殊任务、特殊环境而进行特殊设计的定制产品,有其专门的开发环境、软硬件紧密结合、严格的实时要求等特点。使得嵌入式软件测试与普通软件测试虽有相似之处,但有也有其自身独特的特点。 2、软件测试和嵌入式软件测试 2.1 软件测试的定义及目的 软件测试,即Software Testing。软件测试的定义有很多,在1979年出版的一本经典著作《软件测试艺术》(The art of software testing)中,GLEMFORD J.MYERS曾经对软件测试下过如下定义:软件测试就是为了发现错误而执行程序或系统的过程。虽然它不太完善,但放在当时的情况下是可以说的通的。 随着计算机和软件技术的发展,软件应用的复杂性和规模的不断扩大,软件测试技术的研究也取得了很大的突破。早期的定义已经不适用了,许多专家对软件测试提出了各种各样的定义。综合起来,我们可以定义“软件测试是由一个程序的行为在有限测试用例集合上,针对期望的行为的动态验证组成,测试用例是从通常的无限执行域中适当选取的”。

组态软件的比较

从目前国内组态软件市场看,是国内组态软件品牌和国外品牌同时并存的局面。这种局面,应该说在今后相当长的一段时期内还要长期存在。组态软件市场经过10余年的培育和发展,目前正处在一个蓬勃发展的成长阶段,用户对组态软件产品接受程度也日益增加。用户正面临从产品接受度到品牌接受度的转变期。随着市场竞争的加剧和一些先期发展的品牌市场推广力度的加大,组态软件市场对新进入者会增加越来越高的门槛。从各家组态软件市场看,现在主要有以下品牌: 国内品牌: 1,组态王:是国内最早、装机量最多的组态软件。主要优势如下:1)品牌知名度,在许多项目中,往往是国外组态软件的替代品,而且只要是接触过组态软件,基本上都知道组态王;2)办事处多,本地化服务能力强;3)驱动丰富而且一般都比较可靠。其缺点是:现在因为处于国内第一的位置,重点放在大客户上,对一般的小客户服务态度和能力都比较差,而且价格控制比较严,一般不低价。 2,MCGS:国内组态软件第二品牌。主要优势如下:1)在市场的宣传、推广方面做的比较好;2)对销售队伍的管理和考核比较完善,销售人员的跟踪能力比较强;3)有嵌入式产品。其缺点也比较明显:1)产品本身基于VB开发,效率比较低,而且系统的稳定性方面在所有知名组态软件中最差;2)驱动设置数据时同时设置两次,问题相当严重;3)数据处理和运算功能相对较弱。而且从近期看,其人员的流动,对其公司影响很大。 3,力控:力控是最近两年发展起来的品牌,其主要优势如下:1)市场推广在所有的组态软件中做的最好的厂家,包括杂志、网络上投入都很多,而且比较有效;2)技术服务能力强,从用户反应看,力控售后技术支持做的很到位;3)产品相对稳定;4)驱动比较完善。 4,华富:产品宣传做的很多,在用户中有影响力,但是使用的不是太多。产品本身稳定性不好,而且内部管理不善,一直没有发展起来。 5,FameView:主要针对西门子产品做的,而且对西门子硬件产品的技术支持也做得很到位。在用户中影响力有限。 6,世纪星:主要做一些工程,产品推广不力,产品本身也不是太完善,32点免费提供给用户使用。 7,天工:技术不错,但是市场推广一直没有做好。 8,Synall:现在主要集中做电力行业,而且一般是做工程。 9,鲁班:用户评价最差的软件,极少有人用到。 国际品牌: 1,IFix:是国内做得最成功的组态软件品牌。连续多年销售额第一。其主要优势在于以下几点:1),品牌知名度高,已经在用户心中形成事实上的最好品牌;2)系统稳定,技术先进,支持VBA脚本,产品技术含量在所有组态软件中最高;3)产品结构合理,系统开放性强,包括其IO驱动直接支持OPC接口;4)文档完备,驱动丰富。但是其产品也有几个明显缺点:1)产品价格偏高,超出国内价格基本上在10倍左右;2)主要是国内的一些代理做,技术支持和服务能力比较差。

29945 嵌入式软件技术概论

高纲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章概述

嵌入式软件测试基础知识

嵌入式软件测试基础知识 测试是传统软件开发的最后一步。整个软件开发过程,需要收集要求、进行高层次的设计、详细设计、创建代码、进行部分单元测试,然后集成,最后才开始最终测试。最佳的开发实践应包含代码检查这个步骤。然而代码检查一般只能找出70%的系统错误,因此完美的测试环节绝对必不可少。测试就像个复式记帐系统,可以确保将缺陷扼杀在最终推出的产品之前。在所有其它的工程实践中,测试都被视为基本环节。比如,在美国,每一座联邦政府出资修建的桥都必须经过大量的风洞测试。而在软件领域,测试并没有很受重视。尽管测试是所有工程实践准则的关键部分,但编写测试程序却感觉是在浪费时间。好在嵌入式系统设计界内的许多领域已经将测试作为其工作的核心部分,他们认识到将这个关键步骤放在项目末期极不明智,因而主张同步地编写测试程序和应用程序。嵌入式系统软件测试在诸多方面都与应用软件测试一样。不过,应用测试与嵌入式系统测试之间还是存在一些重要差异。嵌入式开发人员一般会用到基于硬件的测试工具,而这类工具通常不会用于应用开发过程中。此外,嵌入式系统一般都有些独一无二的特性,这些特性应该在测试计划中得以体现。本文将介绍测试和测试案例开发的基础知识,并指出整个嵌入式系统测试工作的特有细节。何时测试以及如何测试从图1可以看出,在可行的条件下,测试应尽早展开。一般来讲,最早的测试是由最初的开发人员进行的模块或单元测试。遗憾的是,开发人员大多对如何建构一整套测试例程以进行测试所知不足。由于精心设计的测试例程通常直到集成测试时才能使用,因此许多在单元测试过程中就能找出的缺陷直到集成测试时才会被发现。比如,硅谷的一家大型网络设备厂商为找出其软件集成问题的关键原因,进行了一项研究。这家厂商发现,在项目集成阶段找出的缺陷中,有70%是由在集成之前从没被执行过的程序所产生的。 2012-3-16 11:05:05 上传 下载附件 (9.94 KB) 图1:改正问题的成本。单元测试:开发人员在单独进行模块级测试时一般是编写存根代码(stub code)取代余下的系统软硬件。在开发周期的这个环节,测试主要侧重于代码的逻辑性能。通常,开发人员会分别使用某些平均值、高值或低值、以及某些超出范围的值(以测试代码的异常处理功能)进行测试。但这些基于“黑匣子”的测试仅能对模块中整个代码的一部分进行测试。回归测试:测试不应是一劳永逸的。每次修改程序后都应该重新进行测试,以确保这些更改不会无意中“误伤”某些不相关的行为。称为回归测试的这类测试,一般是通过测试脚本自动进行的。比如,如果你设计了一组100个输入/输出(I/O)测试,回归测试脚本会自动执行这100个测试,然后将输出与一组“黄金标准”输出进行对比。每次对代码的任何部分进行修改时,都要对包含被修改代码的整个程序运行整套回归测试程序包,以确保修改过程中不会“误伤”其余代码。测试什么因为没有一个实际的测试集可以证明一个程序是正确的,因此关键问题变成了哪个测试子集最有可能检测到最多的错误。选择合适的测试例程的问题被称为测试例程设计。虽然存在数十种测试案例的设计方法,但它们通常可归为两种截然不同的方法:功能测试和覆盖测试。功能测试(也称为黑匣子测试)选择可评估实现与需求规格符合程度的测试。覆盖测试(也称为白匣子测试)选择可执行代码某些部分的测试例程。(过后,将详细讨论这两种方法。)这两种测试都是对嵌入式设计进行严格测试所必需的。其中,覆盖测试表示代码的稳定性,所以这种测试是用于已经完成或将近完成的产品的。另一方面,可在编写要求文档时,同时编写功能测试。事实上,从功能测试开始入手,可以最大限度地降低重复劳动和重写测试案例的工作。因此,在我看来,要先考虑功能测试。每个人都同意先编写功能测试这个观点,有人认为,功能测试在系统集成阶段(而不是在单元测试时)最有用。以下是整合功能测试和覆盖测试方

归纳嵌入式系统概论习题

第一题单项选择题 1、ADDS R0,R1,R2执行完成后,不会对CPSR中的哪一位产生影响( B)? A、N B、C C、V D、F 2、FD表示( B )。 A、满递增堆栈 B、满递减堆栈 C、空递增堆栈 D、空递减堆栈 3、已知R0=0xFFFFFC0F,则执行MVN R1,R0后,R1的值为(C )。 A、0xFFFFFFFF B、0xFFFFFFF0 C、0x3F0 D、0x3F 4、在Linux中使用ls命令显示当前目录的所有内容应使用(A)参数? A、-l B、-a C、-d D、-i 5、在EMBEST IDE开发环境中,程序的默认入口地址为( C )。 A、0x C000 B、0x 1C00 C、0x 8000 D、0x 0 6、已知R0=0x1000,R1=0x2000则执行CMP R0,R1后,R0的值为(B) A、0x2000 B、0x1000 C、0xFFFFF000 D、0xFFFFEFFF 7、已知R1=0x2F,则执行mov R0,R1,ASL #2后,R0的值为(D )。 A、0xBC B、0xBF C、0x2F0 D、0x2F 8、在Linux中查看文件前10行内容的命令是( D)。 A、less B、cat C、tail D、head 9、已知R0=0xFC,则执行BIC R0,#0x3C后,R0的值为( D )。 A、0x18 B、0x24 C、0xC0 D、0x30 10、已知R0*R1=0x1C2F3E4D5C6B,则执行SMULL R2,R3,R0,R1后,R2和R3的值分别为(D)。 A、R2=0x1C2F3E4D R3=0x5C6B B、R2=0x5C6B R3=0x1C2F3E4D C、R2=0x1C2F R3=0x3E4D5C6B D、R2=0x3E4D5C6B R3=0x1C2F 11、EMPU是( B )。 A、嵌入式微控制器 B、嵌入式微处理器 C、片上系统 D、嵌入式数字信号处理器 12、以下不属于CPSR的条件码标志位的是(A)。 A、F B、N C、Z D、C 13、S3C44B0X的内核工作电压是( B )。 A、3.0V B、2.5V C、3.5V D、 1.5V 14、Linux中删除目录的命令是(B)。 A、rm B、 rmdir C、mkdir D、del 15、能实现ARM处理器在两种工作状态之间进行切换的命令是( D )。 A、B B、 BL C、 BLX D、BX 16、若CPSR寄存器的低5位(4-0)的值为10010,则ARM处理器工作于(B) 模式。 A、FIQ B、IRQ C、USER D、SVC

嵌入式软件开发流程

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

相关文档