嵌入式系统复习参考

嵌入式系统复习参考
嵌入式系统复习参考

第一章嵌入式系统

指令系统从产生、发展到现在形成了五种风格,分别是复杂指令集(CISC)、精简指令集(RISC)、超长指令字(VLIW)、数据信号处理指令集(DSP)和专用指令集(ASIP)。这五种风格各有特点,不能笼统地说哪种好哪种坏,它们适合于不同的应用领域。

RISC有如下的特点:

指令条数和寻址方式少。

单一机器周期操作。在RISC机器中,绝大多数指令的执行只需要一个机器周期。取指令操作限制。

简单固定的指令结构。

指令流水线。

RISC具有高速度、搞可靠、低成本的特点。书73页

CISC概念的实质是将处理器的设计复杂化,从而将程序简化,继而使其所需存储器容量降至最低。而RISC的构思刚好与CISC相反,由于指令简单,它允许处理器在同一机器周期内执行一条以上指令,所以较CISC的复杂指令执行得更快。一般来说,执行同样的功能,一个RISC程序比一个CISC程序长30%。这使得RISC 处理器对编译器要求较高,优化编译器的设计师一项非常复杂且技术要求很高的工作,所以CISC的拥护者指出,虽然RISC简化了硬件设计,但是大大加重了软件的负担。

由于RISC架构中的多数指令是寄存器到寄存器的操作,因而减少了对内存的访问,加快了运行速度,但这同时也要求在处理器内部必须有足够多的通用寄存器来保存计算机中产生的中间结果。通常RISC处理器中至少采用32个通用寄存器,这么多的通用寄存器不就占据了芯片空间,而且使寻址时间增多。而CISC处理器在同等性能的情况下不需要这么多通用寄存器。

RISC技术不断发展和完善产生了许多优秀的产品

例如,ARM RISC CORE和MIPS RISC CORE都是非常受欢迎的RISC架构的嵌入式微处理器。

DSP单独作为一种指令集风格来介绍,是因为DSP面向特殊的应用,采用了独特的体系结构,因此相应地其指令集与其它类型嵌入式微处理器相比也有显著的特点。为了更清楚地介绍DSP的指令集,首先介绍一下DSP体系结构上的特点。

数字信号处理与早期的模拟信号处理相比有着巨大的优势。早期的模拟信号处理主要通过运算放大电路进行不同的电阻组配实现算术运算,通过电阻、电容的组配实现滤波处理等。其中有一个很明显的问题是不灵活、不稳定,参数修改困难,需要采用多种阻值、容值的电阻、电容,并通过电子开关选通才能修改处理参数;而且对周围环境变化的敏感性强,温度、电路噪声等都会造成处理结果的改变。而数字信号处理可通过软件修改处理参数,因此具有很大的灵活性。只要环境温度、电路噪声的变化不造成电路逻辑的翻转,数字电路可以不受影响地完成工作,因此具有很好的稳定性。

?DSP芯片采用改进的哈佛结构。TI公司的DSP芯片结构是基本哈佛结构的改进类型。改进之处是,在数据总线和程序总线之间进行局部的交叉连接。

第二,DSP指令系统是流水线操作。在流水线操作中,DSP处理器可同时处理2~4条指令,每条指令处于其执行过程中的不同状态。

第三,采用专用的硬件乘法器。在一般的计算机上,算术逻辑单元只能完成两个操作数的加、减及逻辑运算。而乘法则由加法和移位来实现。DSP都有硬件乘法器,使乘法运算可在一个指令周期内完成。在TMS320C6000系列中则有两个硬件乘法器。

第四,特殊的DSP指令。DSP芯片的另一个重要特征是有一套专门为数字信号处理而设计的指令系统。

第五,良好的多机并行运行特性。TMS320C4X系列还提供了专门用于多个DSP 并行运行的硬件通信接口。

第六,其中涉及的电压很低。芯片的集成度在数十到数百万门量级。为提高运行速度而采用多种并行的体系结构。

1.什么是嵌入式系统(嵌入式系统是计算机软件与计算机硬件集成在一起,并嵌入到应用对象内部的计算机系统)

?嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机

系统。

?它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。

2.嵌入式系统分类(

按技术复杂度分类:无操作系统控制的嵌入式系统NOSES;

小型操作系统控制的嵌入式系统SOSES;

大型操作系统控制的嵌入式系统LOSES。

按用途分类:军用,工业用,民用。

系统级,板级,片级

?芯片级嵌入

含程序或算法的处理器

?模块级嵌入

系统中的某个核心模块板

?系统级嵌入

主计算机系统

3.嵌入式操作系统分类(

按照源代码分类:商用型和开源型;

按照实施性能分类:强实时性型和普通实时型;

按内核结构分类:单内核型和为内核型。

?按用途分类:军用/民用

?按载体分类:宇航/车载? ? ?

?按通信性质分类:无线/有线

?按网络性质分类:联网/单机

?按环境分类:普通/恶劣

?按功耗分类:低功耗/普通功耗

?主要分类方法

按硬件软件性质

?根据控制技术的复杂度可以把嵌入式系统分为三类:

?无操作系统控制的嵌入式系统

?NOSES,Non-OS control Embedded System;

?小型操作系统控制的嵌入式系统

?SOSES,Small OS control Embedded System;

?大型操作系统控制的嵌入式系统

?LOSES,Large OS control Embedded System。

4.嵌入式处理器特点,常见缩写

特点:1.对实施多任务有较强的支持能力,能完成多任务处理,并且中断响应速度快

2.处理器结构可扩展

3.内部集成了测试电路

4.低功耗

常见缩写:

?通用型嵌入式微处理器(简称:EMPU,或者MPU)

?微控制器(MCU)

?数字信号处理器(DSP)(嵌入式DSP处理器:EDSP)

?混合处理器和片上系统(SOC)

?嵌入式双核处理器,双核(dual core);多核处理器,多核DSP。

参考习题

P14 1,3

1-1.什么是嵌入式系统?举例说明嵌入式系统和嵌入式产品的区别。

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

我们日常所见的PDA、手机、机顶盒、数码相机、媒体播放器、微波炉等都属于嵌入式产品,是某一包含嵌入式系统的专用设备。

1-3.说明嵌入式系统和PC系统的主要差异体现在哪些方面。

嵌入式的处理器指令系统是双密度的;

PC系统可以随便安装到任何符合硬件要求的电脑上,比如DOS系统和windows系统等;嵌入式系统是固化在特定的设备里面的,不可以随意安装或卸载,需要使用专业的工具把系统代码写入到存储芯片上,比如,MP3 、手机里面的系统。

第三章嵌入式微处理器技术基础

1.嵌入式处理器中的I/O编址方式

?I/O地址空间有两种编址方式。

?独立编址:存储器地址空间和I/O端口地址空间分别编址。

?X 86处理器系列

?统一编址:将I/O地址空间与主存地址空间合在一起编址,处理器不

存在独立的I/O地址空间。

?8051系列和ARM系列处理器

按照存储单元寻址的寄存器命名为特殊功能寄存器(SFR)

2.嵌入式处理器体系结构与PC体系结构差异

(1)计算机存储器分为两个部分,一部分存放指令,另一部分存放数据,它们各自拥有自己的地址空间和访问指令,可以分别独立访问,那么这种计算机结构称为哈佛体系结构,称为哈佛结构。

(2)冯·诺依曼体系结构(普林斯顿结构):只有一个主存储器(内存储器),主存储器里存放的内容可以是数据也可是是指令。

冯·诺依曼体系结构中的数据总线在哈佛结构中被分为指令总线和数据总线,从而使哈佛结构处理器的数据吞吐率比冯·诺依曼结构处理器提高了大约一倍,因此哈佛结构的微处理器通常具有较高的执行效率。

3.桶型移位器功能

定义:在一个时钟周期内能够进行字宽限度之内任意位数移位或循环移位操作的硬件移位器,这种移位器称为桶型移位器。

?通常的移位器都是一个时钟脉冲左移或者右移1位。

?桶型移位器采用了开关矩阵电路,可以做到用1个时钟脉冲移位任意位。

?预先处理,使ARM处理器省去了通用计算机指令中的各移位指令。

4.正交指令集的概念

(正交指令集是用来描述特定处理器指令系统的操作码或者地址码的长度特征,以及操作码与各地址码的取值关联度特征。)

5.双密度指令集的意义和特点

(意义:指令密度是衡量一个指令系统的设计是否精巧,是否合理的重要标志。

特点:1.程序员事实上做到了可以使用所有ARM指令的对等指令

2.12个全新的指令改善了性能和代码尺寸

3.Thumb—2指令集执行C代码的运行速度达到了ARM指令集的98%

4.Thumb-2指令集的尺寸比Thumb-1指令集减小5%,但是速度提高了2~3%

5.就芯片的占位面积而言,Thumb-2指令集仅仅是等效的ARM指令集的74%)

6.看门狗及其功能(WDG)

?看门狗是一个用来引导嵌入式微处理器脱离死锁工作状态的部件,也是嵌入式处理

器中的一个特色硬件部分。

?看门狗是一个专用计数器,能够在一个指定的间隔时间后复位微控制器或者微处理

器。

7.嵌入式系统调试技术

?指令集模拟器(ISS)

?ROM仿真器

?实时在线仿真(ICE)

?片上调试技术(OCD)与背景调试模式(BDM)

?基于Angle的调试方案

?边界扫描测试技术和JTAG接口

?跟踪接口ETM

?Nexus调试标准

?半主机调试方式

参考习题

?与通用处理器相比嵌入式处理器的技术有哪些?

1.对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,

从而使内部的代码和实时内核的执行时间减少到最低限度。

2.具有功能很强的存储器保护功能,这是由于嵌入式系统的软件结构已模块化,

而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护

功能,同时也有利于软件诊断。

3.可拓展的处理器结构,以能最迅速地开展除满足应用的高性能的嵌入式微处理

器。

4.嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动计算和通信设

备中靠电池供电的嵌入式系统更是如此,如需要功耗只有mw甚至是uw级

以上是嵌入式处理器的特点,它与通用处理器的最大不同是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有耗能低,体积小,集成度高等特

点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部。

?简单说明RISC处理器与CISC处理器的主要区别有哪些?

(1)CISC指令系统丰富而RISC指令系统精简

(2)CISC指令长度不一而RISC指令长度相同

(3)CISC指令可以直接对存储器操作而RISC不能

(4)RISC可以提供直接支持高级语言的能力而CISC不能

?简要说明看门狗电路的作用和原理

作用:看门狗定时器是一个用来引导嵌入式微处理器脱离死锁工作状态的部件。能够在一个指定的间隔时间后复位微控制器或者微处理器。

原理:系统启动后,初始化程序想看门狗的计数寄存器写入计数初值,此后每经过一个预订的时间间隔看门狗执行一次技术(减1或加1)。如果软件与设备正常工作,那么看门狗的计数寄存器中设定的计数值满之时(即-1,也就是二进制的计数值为全1),系统程序就会重置看门狗寄存器的计数初值,让它继续计数,并且一直循环下去。

P80 17,19

3-17 试描述JTAG测试标准的基本原理

JTAG主要是用到了边界扫描技术,其思想是在靠近芯片的输入输出的管脚上增加一个移位寄存器单元。但芯片处于调试状态的时候,这些边界扫描寄存器可以将芯片和外围的输入输出隔离开来,通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。3-19就测试技术而言,嵌入式系统与PC机有什么不同?

PC及一般采用桌面操作系统,调试器与被调试的程序常常位于同一台机器上,调试器进程通过OS提供的调用接口来控制被调试进程。

嵌入式应用程序通常采用嵌入式操作系统运行在嵌入式系统上,开发机场采用PC及,开发机和目标机处于不同机器中,程序在开发机上开发,在目标机上运行和调试。

嵌入式硬件及接口(参考第8章)

(内容参考课件第03讲)

?DRAM与SRAM在数据操作上的区别是什么?

?对DRAM芯片来说,在读出数据之后还需重新写回数据,因而它的访问延迟和存储周期不同。SRAM的访问时间与存储周期则没有差别

?为防止信息丢失,DRAM需要定期刷新每个存储单元,SRAM却不需要

?DRAM设计强调容量,而对SRAM设计来说,容量和速度同样重要

?就可以比较的存储器设计技术而言,DRAM的容量大概为SRAM的16倍,而SRAM 的存储周期比DRAM的约快8~16倍

?与SDRAM相比,DDR技术为什么能够提高数据存取速度?

由于DRAM需要动态充电的特性使每次读数据后需要进行再次充电才能进行下次读,因此SDRAM采用了两个(或多个)Bank的方式进行交替数据操作,Bank0读数据时Bank1充电,下一周期Bank1读数据时Bank0充电,从而提高对外的数据交换能力。

SDRAM的操作改为由外部时钟上升沿同步控制方式,以实现突发数据传送能力。

突发数据传送可以实现接收一次列地址发送多个数据的能力。

DDR (Double Data Rate)SDRAM则采用了二倍预读取的技术,在每次得到一个地址时芯片内部读取两个数据,这两个数据分别在一个时钟的上升沿和下升沿传送出去,从而提高读/写速度。

?RS232与RS422/485通信距离的差异如何造成的?

RS422/485接口,为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,采用平衡发送和差分接收,具有抑制共模干扰的能力,加上总线收发器具有高灵敏度,能接收到低至200mv的电压,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时)。

?为什么异步传输只以字节为单位传送数据,而不是数据块?

异步传输将比特分成小组进行传送,小组可以是8位或1个字符或更长,发送方可以在任何时刻发送这些比特组,而接收方不知道它们会在什么时候到达。异步传输以字节为单位,发送每一个字符代码时,前面均加上一个“起”“信号”,其长度规定为一个码元,极性为“0”,即空号的极性;字符代码后面均加上一个“止”“信号”,其长度为1或2个码元,极性为“1”,即与信号极性相同,加上起、止信号的作用就能区分串行传输的字符,以实现串行传输收、发双方码组或字符的同步,在传输过程中也易于检测出错情况。

?常用的嵌入式输入设备和输出设备有哪些?各举两例

键盘,触摸屏,液晶显示器,音响。

第四章ARM处理器的体系结构和指令集

主要内容

1.ARM处理器主要特点

1、体积小、低功耗、低成本、高性能;

2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;

3、大量使用寄存器,指令执行速度更快;

4、大多数数据操作都在寄存器中完成;

5、寻址方式灵活简单,执行效率高;

6、指令长度固定。

2.RISC处理器主要特征

(1)使用等长指令,目前的典型长度是4个字节。

(2)寻址方式少且简单,一般为2—3种,最多不超过4种,绝不出现存储器间接寻址方

式。

(3)只有取数指令、存数指令访问存储器。指令中最多出现RS型指令,绝不出现SS型指

令。

(4)指令集中的指令数目一般少于100种,指令格式一般少于4种。

(5)指令功能简单,控制器多采用硬布线方式,以期更快的执行速度。

(6)平均而言,所有指令的执行时间为一个处理时钟周期。

(7)指令格式中用于指派整数寄存器的个数不少于32个,用于指派浮点数寄存器的个数

不少于16个

3.ARM处理器中寄存器的数量,名称等

ARM处理器总共有37个32位寄存器,其中有31个通用寄存器,6个状态寄存器(到目前为止只定义了12位)

通用寄存器:不分组寄存器R0~R7;分组寄存器R8~R14(写入寄存器R12,栈指针R13-sp,链接指针R14-LR,);程序计数器R15。

状态寄存器:CPSR。

4.ARM处理器的七种工作模式特点和区别

4.ARM处理器存储器的组织,内存管理单元(MMU)的功能

(MMU功能:虚拟存储空间到物理存储空间的映射;控制存储器访问权限;设置虚拟存储空间的缓冲特性。)

?ARM的存储器管理单元MMU部件的用途:

◇完成虚拟存储空间到物理存储空间的映射。

◇管理方式:页式虚拟存储器。

◇页的大小有两种:粗粒度和细粒度。

◇存储器访问权限的控制。

◇设置虚拟存储空间的缓冲特性。

?保护单元

?PU,Protection Unit。允许将ARM的4GB地址空间映射为8个区域。每一个

区域都有可编程的起始地址及大小、可编程属性和Cache属性。

?对于不需要MMU的嵌入式系统而言,PU简化了硬件和软件。

主要表现在不使用转换表,降低系统开销。

6.ARM指令系统与THUMB指令的区别

在ARM体系结构中,ARM指令集中的指令是32位的指令,其执行效率很高。对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令集。Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在处理器执行ARM程序时,称处理器处于ARM状态;当处理器执行Thumb程序时,称处理器处于Thumb状态。Thumb指令集并没有改变ARM体系地层的程序设计模型,只是在该模型上加上了一些限制条件。Thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位的。

7.常用的ARM指令功能

助记符指令功能描述

ADC 带进位加法指令

ADD 加法指令

AND 逻辑与指令

B 跳转指令

BIC 位清零指令

BL 带返回的跳转指令

BLX 带返回和状态切换的跳转指令

BX 带状态切换的跳转指令

CDP 协处理器数据操作指令

CMN 比较反值指令

CMP 比较指令

EOR 异或指令

LDC 存储器到协处理器的数据传输指令

LDM 加载多个寄存器指令

LDR 存储器到寄存器的数据传输指令

MCR 从ARM寄存器到协处理器寄存器的数据传输指令

MLA 乘加运算指令

MOV 数据传送指令

MRC 从协处理器寄存器到ARM寄存器的数据传输指令

MRS 传送CPSR或SPSR的内容到通用寄存器指令

MSR 传送通用寄存器到CPSR或SPSR的指令

MUL 32位乘法指令

MLA 32位乘加指令

MVN 数据取反传送指令

ORR 逻辑或指令

RSB 逆向减法指令

RSC 带借位的逆向减法指令

SBC 带借位减法指令

STC 协处理器寄存器写入存储器指令

STM 批量内存字写入指令

STR 寄存器到存储器的数据传输指令

SUB 减法指令

SWI 软件中断指令

SWP 交换指令

TEQ 相等测试指令

TST 位测试指令

8,指令的使用规则和参数规则

寄存器使用规则:子程序间通过寄存器r0 ~ r3 来传递参数,这时可以使用它们的别名a1 ~ a4 。被调用的子程序返回前无需恢复r0 ~ r3的内容。在子程序中,使用r4 ~ r11来保存局部变量,这时可以使用它们的别名v1 ~ v8,在THUMB程序中,通常只能使用寄存器r4 ~ r7来保存局部变量。

数据栈使用规则:ATPC S规定数据栈为FD类型,并且对数据栈的操作是8字节对齐的。使用stmdb / ldmia批量内存访问指令来操作FD数据栈。使用stmdb命令往数据栈中保存内容时,先递减sp指针,再保存数据,使用ldmia命令从数据栈中恢复数据时,先获得数据,再递增sp指针,sp指针总是指向栈顶元素,这刚好是FD栈的定义。

参数传递规则:一般地,当参数个数不超过 4 个时,使用r0 ~ r3 这4个寄存器来传递参数;如果参数个数超过4 个,剩余的参数通过数据栈来传递。对于一般的返回结果,通常使用r0 ~ r3 来传递.

?参考习题

P136 9,21

4-9什么是ARM影子寄存器?

ARM影子寄存器是为外处理器的不同工作模式配备的专用物理寄存器,在异常模式下他们将替代用户系统模式下使用的部分寄存器。

4-21 试说明ARM指令和Thumb指令的主要差别。

在ARM体系结构中,ARM指令集中的指令是32位的指令,其执行效率很高。对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令集。Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在处理器执行ARM程序时,称处理器处于ARM状态;当处理器执行Thumb程序时,称处理器处于Thumb状态。Thumb指令集并没有改变ARM体系地层的程序设计模型,只是在该模型上加上了一些限制条件。Thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位的。

?ARM处理器中的指令指针PC、堆栈指针SP、返回地址指针LR,分别是哪一个寄存

器?

PC-R15 SP-R13 LR-R14

?ARM的中断向量表与X86中断向量表有何区别?

第五章ARM汇编语言程序设计

1.ARM汇编语言程序编写格式要求

?ARM汇编语言程序源代码中允许有空行,可以在汇编程序中加上一个空白行,来

增加程序的可阅读性。此外需要注意的是:指令,指示符,伪指令前必须加空格或者Tab制表符,这就是说指令,指示符,伪指令不可以从行的最左边开始书写,即不能顶格书写。

?在ARM汇编语言程序中,所有标号必须在一行的最左边的位置开始书写,

标号的后面不要加“:”。指令,指示符,寄存器名可以用小写字母也可以用大写字母来表示,但不能大小写字母相杂。

?当一行写不下时,可以用反斜线‘\’作为这一行最后的符号,然后另起一行

接下去写,这样汇编器会将这两行代码看作一行代码。需要注意的是,如果在被引号括住的字符串中使用反斜线‘\’,则反斜线‘\’不能起到续行的作用。每行的长度限制一般在128~255个字符串之间。

?分号‘;’除非在字符串常量中出现,否则它的出现就表示着注释的开始,

此注释直至行尾结束。可以将注释单独列为一行。所有注释被汇编器忽略

2.ARM汇编语言指示符的功能

AREA指示符用于定义一个代码段或者数据段。

?语法格式

?AREA sectionname{,attr}{,attr}....

ENTRY指示符指定程序的入口点

?语法格式

?ENTRY

?使用说明

?一个程序(可以包含多个源文件)中至少要有一个ENTRY(可

以有多个ENTRY),但一个源文件中最多只能有一个ENTRY(可以没有

ENTRY)。

?示例

AREA example, CODE, READONLY

ENTRY ;应用程序的入口点

CODE16指示符告诉汇编编译器后面的指令序列为16位的Thumb指令。

CODE32指示符告诉汇编编译器后面的指令序列为32位的ARM指令。

?语法格式CODE16/CODE32

?使用说明

当汇编源程序中同时包含ARM指令和Thumb指令时,使用CODE16指示符告诉汇编编译器后面的指令序列为16位的Thumb指令;使用

CODE32指示符告诉汇编编译器后面的指令序列为32位的ARM指令。但

是,CODE16指示符和CODE32指示符只是告诉编译器后面指令的类型,

该指示符本身并不进行程序状态的切换。

EQU指示符为数字常量、基于寄存器的值和程序中的标号(基于PC的值)定义一个字符名称。

?*是EQU的同义词。

?语法格式

?name EQU expr{, type}

?其中:

?expr为基于寄存器的地址值、程序中的标号、32位的地址

常量或者32位的常量。

?name为EQU指示符为expr定义的字符名称。

?type 当expr为32位常量时,可以使用type指示expr表

示的数据的类型。

ROUT指示符用于标记局部标号使用范围的边界。用法如下:

?{NAME} ROUT

?使用说明:NAME是指定作用范围的名称

使用ROUT指示符用于规定局部标号的使用范围。避免无意之中用错局部标号导致的越界。

如:SUB1 ROUT

……

SUB1 ROUT

END指示符告诉编译器已经到了源程序结尾。

?语法格式:

?END

?使用说明:

每一个汇编源程序都包含END指示符,以告诉本源程序的结束。

?示例:

AREA example CODE,READONLY

………

………

END

………

ALIGN指示符通过添加补丁字节使当前位置满足一定的对齐方式。

?语法格式

?ALIGN {expr{,offset}}

?其中,expr为数字表达式,用于指定对齐方式。可能的取值为2的次

幂,如1、2、4、8等。如果指示符中没有指定expr,则当前位置对齐到下

一个字边界处。

?offset为数字表达式。表示当前位置到下一个地址之间按照:

offset+n*expr的方式进行对齐

DCB用于在内存中分配一个字节单元或者一组字节单元,并用指定的EXPR对其进行初始化

语法格式:{label}DCB{u}expr{,expr}

{label}是可选项,expr为-128~255的值或字符串。

例:

AREA DCB_EXAMPLE ,CODE

DCB 1

ALIGN 4,2

DCB 1

MAP用于将一个结构化内存的首地址映射到一个指定地址。^是MAP的同义词

语法格式:MAP expr {,base-register}

当只有expr时,expr表示此内存首地址的值。

当包括base-register时内存首地址值为

base-register+expr

MAP 0x00 ,r9 ;表示结构化内存首地址为r9+0

timer FIELD 4 ;表示一个数据域timer长度4字节

FIELD用于定义一个结构化内存区域中的数据域。常与MAP联合使用,#是FIELD

的同义词。

?语法格式:{label}FIELD expr

label是当前数据域的一个标号,expr是当前数据域的长度

例:YEAR FIELD 4 ;数据域YEAR 4字节

MONTH FIELD 2 ;数据域MONTH 2字节

DAY FIELD 2 ;数据FIELD 2字节

SPACE用于分配一个全0的内存区域。%是SPACE的同义词。

?语法格式:{label}SPACE expr

?{label}是该内存域的标识,expr表示本内存空间的大小(以字节为单位)。

例:data_timer SPACE 0x1000

;定义一个4K字节的内存空间,初值为0

ALIGN ;恢复字对齐

3.汇编语言程序设计基本程序

4.汇编,C,C++混合编程问题

1.采用内嵌汇编,即在C/C++源程序中嵌入一块汇编代码,让这块汇编代码来完成

特定的操作;

2.将必须使用汇编代码的部分独立编写成在一个文件中,形成一个子程序,C/C++

程序可以调用这些汇编程序来完成特定的操作。

?参考例题

P156 5-13,5-19,5-26,5-28

5-13条件执行

While(a!=b){

If(a>b) a - =b ;

else b -=a;

}

使用条件执行指令表示只有以下4句代码:

gcd

cmp r1,r2

subgt r1,r1,r2

sublt r2,r2,r1

bne gcd

5-19 高效率程序分支

Int c_switch(int i){

switch(i){

case 0:return method0();

case 1:return method1();

case 2:return method2();

case 3:return method3();

case 4:return method4();

default: return methodD();

}

}

5-28 C语言调用汇编程序

#include

extern int s_program(int arg1,int arg2)

int product1;

int main(){

product1 = s_program(i , j );

return (0);

}

;******汇编语言程序c_call_s.s ***

AREA c_call_s .s ,CODE ,PEADONLY

EXPORT s_program

s_program MUL R0,R1,R1

MOV rc,1r

END

可以使用下面的ARM汇编代码表示上述C结构:Arm_switch

CMP r0 , #5

ADDLT pc, pc , r0 , LSL #2

B methodD

B method0

B method1

B method2

B method3

B method4

5-26字符串复制

#include

Void ex_strcpy(char *src,const char * dst){

Int ch;

_arm{

Loop;

LDRB ch,[src],#1

STRB ch ,[dst],#1

CMP ch,#0

BNE loop

}

}

Int main(void){

const char * a = “this is a C program” ;

char b[30];

_arm{

MOV R1,A

MOV R1,b

BL ex_strcpy,{ R0,R1 }

}

printf(“Original string: % s \n ”,a);

printf(“Copied string :%s \n”,b);

return 0;

}

参考习题

P177 1

5-1 编写一个ARM数据拷贝汇编子程。假设R0存放的是源数据的首地址,R1存放的是目标数据地址,R2 存放数据块的总长度

?由于ARM处理器的流水线结构,每一条指令执行时,其后指令已经被预读取,因此

在执行保存PC的指令时其PC值已经是当前指令PC值+8。

?在ARM程序设计中,程序调用时默认的参数通过什么方式传递?如果超过4个时又

如何传递?返回参数呢?

第六章ARM开发工具

?主要内容

1.什么是可执行映像文件

映像文件(image)是一个计算机上的可执行文件,在执行之前被加载到计算机的存储器中。通常,一个映像文件中包含多个线程。

2.映像文件中的基本段结构

ARM的ELF文件有三种段结构:Text,Data,BSS。Text段包含可执行的代码,Data 段包含经过初始化的可读可写的可执行数据,BSS段通常是指用来存放程序中未初始化的全局变量的一块内存区域。

3.主要的两种ARM开发工具有是什么

?Windows操作系统

ARM ADS/SDT + 调试器

GNU + Cygwin + 调试器

ARM SDT + 简易电缆

?Linux操作系统

GNU + GDB

?ARM开发工具链接后生成的.axf文件和.bin文件有什么区别

.axf文件和.bin文件的区别之处在于前者包含有调试信息和注释信息,后者没有。

编译器输出的ARM映像文件以.axf文件为主。通过fromelf工具,可以把AXF文件转换成.bin文件。实际下载到系统板的映像文件多数是.bin格式文件。

?ARM程序开发工具包含的主要部件有哪些?

(编译器,汇编器,连接器,调试器,嵌入式实时操作系统,函数库,评估板,JTAG 仿真器,在线仿真器等)

ADS命令行开发工具

?ARM C(C++)编译器

?ARM汇编器(armasm)

?ARM链接器(armlink)

?符号调试器(armsd)

第七章ARM中断控制

1.ARM中断类型

a)普通中断请求—IRQ

b)快速中断请求—FIQ

2.什么是中断向量表

中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址称为中断向量,将中断向量集中放在一起,就形成中断向量表.

?简要说明ARM中断发生后如何进入相应中断处理程序的过程?

?ARM中断向量表与X86中断向量表有什么不同?

ARM中断向量表与x86处理器实模式中断向量表不同的是ARM处理器的中断向量表中存放的是转移指令,而不是转移目标的逻辑地址。

第九章嵌入式操作系统概论

?主要内容

1.什么是实时系统

对外来事件能在限定的响应时间内做出预定质量处理的计算机系统。

2.嵌入式操作系统

组成:操作系统可以粗略地分为内核(kernel)、设备驱动与外壳(shell)三大部分特点:可移植性;强调实时性能;内核精简,所占空间小;抢占式内核;使用可重入函数;可配置;可裁剪;高可靠性

3.RTOS调度算法

采用优先级的调度算法

静态实时调度

速率单调调度(RMS算法)

截止时间单调调度(DMS算法)

动态实时调度(最早截止时间优先EDF,最小空闲时间优先LSF)

时钟驱动调度算法

基于比例共享的调度算法

非周期任务的调度

4.uC/OS-II介绍

?实时系统与非实时系统的主要区别

实时系统要求及时响应外部发生的随机任务请求

在规定的时间内完成任务

?硬实时系统和软件实时系统如何区分

硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。

超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。

软实时系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,仅仅是轻微的降低了系统的吞吐量。

?常用的RTOS调度算法有哪些?

采用优先级的调度算法

静态实时调度

速率单调调度(RMS算法)

截止时间单调调度(DMS算法)

动态实时调度(最早截止时间优先EDF,最小空闲时间优先LSF)

时钟驱动调度算法

基于比例共享的调度算法

非周期任务的调度

?uC/OS-II的基本层次结构如何?

四层:最上层是应用软件层,应用程序员负责开发该层软件;接着是应用程序的接口层(API层);在下面是它的内核层;最后一层为设备驱动程,包含FLASH驱动,LCD驱动等;

FLESH的分类:NOR Flash,DINOR Flash,NAND Flash,UltraNAND Flash,AND Flash

触摸屏主要分为三大类:电阻式触摸屏,表面声波触摸屏和电容式触摸屏。

考试题型及例题

?选择题

1.某些嵌入式处理器使用与PC机不同的体系结构是( )

A.哈佛结构

B.冯·诺伊曼结构

C.多级流水线结构

D.指令CACHE

2. 以下指令中正确的是( )

A.MOV R0,[0X1234h]

B.MOV R0,#0XF1239

C.LDR R1,[R0],#4

D.LDR R1,[0X1234]

3.在嵌入式系统开发过程中进行软件调试最快方法是( )

A.指令集模拟

B.在线仿真

C.ROM仿真

D.片上调试

?填空题

1.在ELF文件中用于存放代码的段是TEXT段,初始化后的数据和未初始化数据分别放在段和段。

2.在嵌入式系统中使用的实时操作系统可以分为两类:一类对系统响应时间要求严格,称为操作系统,另一类对系统响应时间要求并不严格,称为操作系统。

3.常用的ARM集成开发工具有两类,一类是由ARM公司提供的

集成开发环境,另一类是的开发环境

?简答题

1.什么是影子寄存器?

ARM影子寄存器是为外处理器的不同工作模式配备的专用物理寄存器,在异常模式下他们将替代用户系统模式下使用的部分寄存器。

2.在ARM指令中,第二个数为常数时以下哪些数合法,哪些数不合法?0X0F,0X10089FF,0X10010000,0X10100000

?读程序题

1.请说明以下ARM程序的功能

gcd

cmp r1, r2

subgt r1, r1, r2

sublt r2, r2, r1

bne gcd

?写程序题

1.用汇编编写一段进行数据拷贝的程序

通用嵌入式系统测试平台的实现与功能划分

通用嵌入式系统测试平台 (ESITest 3.2) 一、平台概述 通用嵌入式系统测试平台(Embeded System Interface Test Studio V3.2,简称:ESITest3.2)是针对于嵌入式系统进行实时-闭环-非侵入式黑盒测试的自动化测试平台,适用于嵌入式系统在设计、仿真、测试、集成验证和维护等各阶段配置项级别和系统级别的动态测试与验证。 平台主要功能: ?是一款针对嵌入式系统测试的自动化测试平台; ?可实现对嵌入式系统的黑盒动态测试; ?支持自动化测试和回归测试; ?可实现对嵌入式系统进行实时-闭环-非侵入式的系统级测试; ?支持多种测试类型:功能测试、接口测试、边界测试、强度测试、安全 性测试等; ?支持基于硬件、软件以及仿真的故障注入测试; ?可对嵌入式系统各组成模块分割开进行单独测试; ?替代测试工装(陪测设备、测试台); ?实现基于实装难以完成的测试任务; ?提供了支持测试设计与开发、测试执行与管理的整套解决方案。 平台由软件和硬件两部分组成。软件部分主要包括测试设计软件、测试执行软件、客户端软件、实时数据监控软件、数据查看及分析软件、各类接口设备辅助调试软件及辅助测试软件等。 目前该平台提供PXI模式(ESITest-PXI)与分布式模式(ESITest-LAN)两种架构产品。 二、ESITest-PXI产品 1、产品简介 PXI总线架构产品的硬件部分由PXI机箱、PXI控制器、PXI接口模块组成,其中PXI接口模块包括了RS232、RS422、RS485、CAN、MIL-STD-1553B、AD采集、DA转换、DI/DO以及示波器、函数发生仪等模块。

嵌入式系统设计大作业

嵌入式系统设计大作业 学号:14020520009 姓名:罗翔 1、叙述JTAG接口在嵌入式开发中的作用。 答: (1)用于烧写FLASH 烧写FLASH的软件有很多种包括jatg.exe fluted flashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所以利用并口来传递信息给目标板的jtag接口。所以就需要并口转jtag接口的电路。 (2)用于调试程序 同时应该注意到jtag接口还可以用来调试程序。而调试程序(如ARM开发组件中的AXD)为了通过jtag接口去调试目标板上的程序,同样是使用pc的并口转jtag接口来实现与目标板的通信。这样,并口转jtag接口的电路就有了两种作用。 (3)仿真器 根据(1)和(2)的总结,并口转jtag接口的电路是两种应用的关键,而这种电路在嵌入式开发中就叫仿真器。并口转jtag接口的电路有很多种,有简单有复杂的,常见的仿真器有Wigger,EasyJTAG,Multi-ICE等。这些所谓的仿真器的内部电路都是并口转jtag接口,区别只是电路不同或使用的技术不同而已。 2、叙述嵌入式平台的搭建过程,以linux为例。 答: 1) 一:建立宿主机开发环境 建立交叉编译的环境即在宿主机上安装与开发板相应的编译器及库函数,以便能够在宿主机上应用开发工具编译在目标板上运行的Linux引导程序,内核,文件系统和应用程序 交叉编译:在特殊的环境下,把嵌入式程序代码编译成不同的CPU所对应的机器代码。

开发时使用宿主机上的交叉编译,汇编及链接工具形成可执行的二进制代码(该代码只能在开发板上执行),然后下载到开发板上运行 2) 下载和安装arm-Linux-gcc编译工具链下载最新的arm-Linux-gcc并解压至当前目录下 在系统配置文件profile中设置环境变量方法:直接在profile文件中加入搜索路径立即使新的环境变量生效:运行source命令,检查是否将路径加入到path,测试是否安装成功, 编译程序,测试交叉工具链 3) 配置超级终端minicom minicom是宿主机与目标板进行通信的终端:在宿主机Linux终端中输入:minicom-s或输入minicom然后按ctrl+A+O对超级终端minicom进行配置,再选择串口并配置串口,最后保存即可 4) 建立数据共享服务:NFS服务是Linux系统中经常使用的数据文件共享服务 5) 编译嵌入式系统内核:内核配置,建立依存关系,建立内核 6) 制作文件系统 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? S3C2410X基于ARM的Sumsang; XscalePXA255/PXA270基于ARM的Intel; 摩托罗拉MC基于68k; Power 601基于Power PC; MIPS32Kc基于MIPS 4、现今较流行的嵌入式操作系统有哪些? 答: (1) VxWorks (2)wince (3)linux (4)android

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

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

arm嵌入式系统基础教程课后答案.doc

arm 嵌入式系统基础教程课后答案【篇一:arm 嵌入式系统基础教程习题答案周立功】 /p> 1 、举出3 个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的 专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(embedded microprocessor unit, empu) 嵌入式微控制器(microcontroller unit, mcu) 嵌入式dsp 处理器(embedded digital signal processor, edsp) 嵌入式片上系统(system on chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实 时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了 开发周期。再次,嵌入式实时操作系统充分发挥了32 位cpu 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务 是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结 束项目 4 个阶段。识别需求阶段的主要任务是确认需求,分析投资 收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定 期监控进展,分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系 统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行 的初期,在客户和开发团队都还未投入大量资源之前,风险的评估

嵌入式系统的测试和可靠性评估

嵌入式系统的测试和可靠性评估 摘要:引入多种嵌入式系统测试方法;根据ISO 9000国际质量标准,提出一种切实可行的可靠性评估方案,并使它们应用于嵌入式产品测试中,测试效果良好。最后,通过测试实例说明嵌入式系统的系统测试过程和分析。 关键词:嵌入式系统;系统测试;测试方法;可靠性评估 随着嵌入式系统硬件体系结构的变化,嵌入式系统的发展趋势向嵌入式系统高端,即嵌入式软件系统转移,具体体现在嵌入式操作系统趋于多样和应用软件日渐复杂。由于嵌入式系统软硬件功能界限模糊,研究如何进行系统测试和进行质量评估来保证嵌入式系统的产品质量具有重要意义。 首先,这里明确嵌入式系统的系统测试定义,是将开发的软件系统(包括嵌入式操作系统和嵌入式应用软件)、硬件系统和其它相关因素(如人员的操作、数据的获取等)综合起来,对整个产品进行的全面测试。嵌入式系统的系统测试比PC 系统软件测试要困难得多,主要体现如下:①测试软件功能依赖不需编码的硬件功能,快速定位软硬件错误困难;②强壮性测试、可知性测试很难编码实现;③交叉测试平台的测试用例、测试结果上载困难;④基于消息系统测试的复杂性,包括线程、任务、子系统之间的交互,并发、容错和对时间的要求;⑤性能测试、确定性能瓶颈困难;⑥实施测试自动化技术困难。 1测试方法 根据Goodenough和Gerhart提出的软件测试充分性准则可知,软件测试具有非复合性的特点,也就是说,即使以软件所有成分都进行了充分的测试,也并不意味着整个软件的测试已经充分。所以,即使通过了需求测试、设计测试、编码测试,并不意味着已经完全了充分的测试,还要进行软硬件全面测试,即系统测试。正确的系统测试方法能设计出良好的测试用例,而良好的测试用例是测试成功的关键。测试用例质量特性主要有以下几点。 ①检验性:检测软件缺陷的有效性,是否能发现缺陷或至少可能发现缺陷。②可仿效性:可以支持测试多项内容,减少测试用例的数量。③开销:测试用例的执行、分析和调试是否经济。④修改性:每次软件修改后对测试用例的维护成本。测试方法不仅要保证测试用例具有发现缺陷的高可移植性,而且还要保证测试用例设计的经济有效。因此,在实际测试工作中,将嵌入式系统的测试方法分类如下:根据测试是否动态运行被测程序分为静态测试方法和动态测试方法;根据测试阶

大作业设计报告书(嵌入式系统原理与开发)

大作业设计报告书 题目:嵌入式系统原理与开发 院(系):物联网工程学院 专业: 班级: 姓名: 指导老师: 设计时间: 10-11 学年 2 学期 20XX年5月

目录 1.目的和要求 (3) 2.题目内容 (3) 3.设计原理 (4) 4.设计步骤 (5) 4.1 交通指示灯设计 (5) 4.2 S3C44B0X I/O 控制寄存器 (6) 4.3 红绿灯过渡代码: (8) 4.4 电源电路设计 (10) 4.5 系统复位电路设计 (11) 4.6 系统时钟电路设计 (11) 4.7 JTAG 接口电路设计 (12) 4.8串口电路设计 (12) 5.引脚分类图 (13) 6.参考文献 (13)

1.目的和要求 ARM技术是目前嵌入式应用产业中应用十分广泛的先进技术,课程开设的目的在于使学生在了解嵌入式系统基础理论的前提下能够掌握ARM处理器的汇编语言和c语言的程序设计方法,掌握S3C44B0X芯片的基本硬件结构特点和接口设计方法,同时熟悉ARM开发环境,学习ARM的硬件设计和软件编程的基本方法,为今后从事相关的应用与研究打下基础。通过大作业要达到如下目的: 一、掌握ARM的开发工具使用和软件设计方法。 二、掌握ARM处理器S3C44B0X的原理和GPIO接口设计原理。 三、掌握C语言与的ARM汇编语言的混合编程方法; 四、培养学生选用参考,查阅手册及文献资料的能力。培养独立思考,深入研 究,分析问题、解决问题的能力。 五、通过课程设计,培养学生严肃认真的工作作风。 2.题目内容 题目:交通指示灯系统设计 功能描述: 1.用S3C44B0X的GPIO设计相关电路; 2.设计相关的软件并注释; 3.实现十字路口2组红、黄、绿交通灯交替显示。 编程提示: 1.交通灯可用发光二极管代替; 2.电路可部分参照实验电路; 3.时间控制可以使用软件循环编程解决。

嵌入式系统测试方法

GSM手机测试基础知识 测试手机的主要参数有: 1)发射功率等级TX power level(5~19) 2)频率误差frequency FER 3)相位误差Phase PER 4)射频频谱RF Spectrum 5)开关谱SwitchSpectrum 6)接受灵敏度RX Sensitivity 7)调制谱Modulation Spectrum 测试系统需要的主要设备: 1)模拟基站的综合测试仪如德国罗德-史瓦茨公司的CMU200 2)通信专用电源如2304A双通道移动通讯高速电源,该电源在脉冲负载变化时展现了他显著的电压稳定性,同时能够测量负载电流。对于测试需电池供电的无线通讯设备(例如便捷式电话),在非常短的时间间隔内经历真实的负载变化而言,这种电源是最优化的。 3)手机夹具等 4)测试开发软件labview或VB等labview快速方便 测试过程 实际测量系统的工作过程是首先手机开机,寻找与模拟基站CMU之间的频率同步;然后对PS(电源)与CMU进行初始化;初始化正确完成后在MSC上注册手机IMSI号;建立MS对BS(基站)的呼叫;当呼叫成功时,开始测量手机GSM900参数;首先测量信道1三个功率等级(Lv5,Lv10,Lv15)的发射功率;若符合标准,进入信道1的FER(频率误差)与PER(相位误差)测量;按同样的步骤测量信道62、123的发射功率、FER与PER;测量GSM900的Modulation Spectrum(调制谱)、SwitchSpectrum(开关谱);从GSM900切换到DCS1800;测量信道512,69 8,885的各发射功率,FER,PER,ModulationSpectrum和SwitchSpectrum;在测量过程中如果任何参数不符合标准,立即显示FAIL并生成报告退出,全部测试完毕显示PASS并生成报告退出。

ARM嵌入式系统基础教程复习

《嵌入式系统基础教程》复习 1.什么是嵌入式系统?其特点有些什么? 答:嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。” 特点:1)是专用的计算机系统,用于特定的任务; 2)资源较少,可以裁减; 3) 功耗低,体积小,集成度高,成本低; 4)使用实时操作系统; 5) 可靠性要求更高,具有系统测试和可靠性评估体系; 6)运行环境差异大 7)大部分程序固化在ROM中; 8) 较长的生命周期; 9)嵌入式微处理器通常包含专用调试电路 2.嵌入式系统的BooTLoader的功能是什么? 答:BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。(对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。) 3.目前嵌入式操作系统有哪些? 答:1)μC/OS-II 嵌入式操作系统内核;2)VxWorks嵌入式实时操作系统;3)WinCE操作系统;4)Linux操作系统;5)Symbian操作系统 4.构造嵌入式开发环境有哪几种形式? 答:1)交叉开发环境;2)软件模拟环境;3)评估电路板 5.嵌入式系统开发的基本流程? 答:1)系统定义与需求分析; 2)系统设计方案的初步确立; 3)初步设计方案性价比评估与方案评审论证; 4)完善初步方案、初步方案实施; 5)软硬件集成测试; 6)系统功能性能测试及可靠性测试。 6.什么是可编程片上系统? 答:用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPC。它是一种特殊的嵌入式系统,首先它是SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。 7.有时要使用Thumb技术的原因 答:(Thumb指令集是把32位的ARM指令集的一个子集重新编码后形成的一个特殊的16位指令集。)在性能和代码大小之间取得平衡,在需要较低的存储代码时采用Thumb指令系统用Thumb指令编写最小代码量的程序(能够很好的解决代码长度的问题),却取得以ARM代码执行的最好性能,可以带来低功耗,小体积,低成本。 8.ARM处理器的工作模式有哪几种? 答:1)正常用户模式(user); 2)快速中断模式(fiq); 3)普通中断模式(irq); 4)操作系统保护模式(svc)或管理模式; 5)数据访问中止模式(abt); 6)处理未定义指令的未定义模式(und); 7)运行特权级的操作系统任务的系统模式(sys)。 9.寄存器R13,R14,R15的专用功能各是什么? 答:1)寄存器R13保存堆栈指针SP;

2016年下学期嵌入式系统设计大作业

嵌入式系统设计大作业 1、叙述嵌入式系统开发过程中所要解决的两个问题。 2、叙述嵌入式平台的搭建过程,以linux为例。 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? 4、现今较流行的嵌入式操作系统有哪些? 5、PXA270嵌入式开发板的接口有哪些? 6、请写出Nor Flash和Nand Flash的区别。 7、冯。诺依曼架构与哈佛架构的区别。 8、单周期3级流水的情况下,第10个指令周期时,第几条指令执行结束? 9、下面是linux下的一个简单的设备驱动程序,写出linux设备驱动常用的数据结构,同时阅读下面代码,请给出测试程序中的每条语句加以注释。 设备驱动程序Keypad.c的源代码: #include #include #include #include #include #include #include #include #include #include #include #define LEDnKEY_MAJOR 251 #define KEYPAD_NAME "X-Hyper250 Keypad" #define KEYPAD_VERSION "Version 0.1" #define EXT_KEY_CS EXT_PORT2 #define EXT_LED_CS EXT_PORT3 #define LED_SHOW 10 /*EXT_KEY_CS 为向外部LED进行数值设定,它定义在其它头文件里*/ void led_off_on() /**/ { int i; EXT_LED_CS = 0xff; for(i =0 ; i<8;++i) { EXT_LED_CS = ~((1 << i) & 0xff); udelay(30000); } EXT_LED_CS = 0xff; }

《嵌入式系统与开发》测试题 - 答案

测试题0及参考答案 (1)ARM汇编程序由指令、指令和指令构成。 (2)ARM C____(A.0X12 B.0X34 C.0X56 D.0X78)(采用小端模式进行存储) (4)一般情况下,ARM微处理器异常处理模式共有___7___种,机器启动后第一条指令执行的是__A___(A.复位异常处理函数指令 B.中断异常处理指令 C.IRQ 异常处理指令 D.指令预取终止异常)。 (5)调用函数FUN(X,Y,Z),则实参值分别通过__r0__、_r1___、_r2__寄存器来进行传递,如果参数超过4个,则参数传递规则为____通过栈进行传递________。 (6)举例列出一款ARM7TDMI微内核的嵌入式微处理器_S3C44B0X_,ARM920T微内核的嵌入式微处理器_S3C2410_,ARM11内核的嵌入式微处理器__S3C6410____,并列举2款64位ARM微内核_Cortex-A53 __、__Cortex-A57________。 (7)利用汇编和C混合编程,设计代码完成求a,b,c中最大值功能,要求写出汇编启动代码和C代码。 (略)此知识点不需要掌握 测试题1及参考答案 1.嵌入式Linux操作系统包括 bootloader 、内核、文件系统三部分组成。 2.在PC机上Linux系统编译使用的编译器名为 gcc ,ARM处理器嵌入式编译器名为 arm-linux-gcc 。 3.bootloader的功能:①引导操作系统内核启动②提供辅助命令工具。 4.列出最常用的bootloader:、、、、、。 5.在uboot中,打印开发板上环境变量值的命令为 printenv setenv ,假如嵌入式内核名为vmlinux,通过tftp加载内核的命令为

孟祥莲嵌入式系统原理及应用教程部分习题答案

习题1 1. 嵌入式系统的概念的是什么?答:嵌入式系统是以应用为中心,以计算机技 术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。(嵌入式系统是嵌入式到对象体系中的,用于执行独立功能的专用计算机系统。) 2. 嵌入式系统的特点是什么? 答:系统内核小;专用性强;运行环境差异大;可靠性要求高;系统精简和高实时性操作系统;具有固化在非易失性存储器中的代码嵌入式系统开发和工作环境 4. 嵌入式系统的功能是什么?答:提供强大的网络服务小型化,低成本,低 功能;人性化的人机界面;完善的开发平台 5. 嵌入式系统的硬件平台由哪些部分组成?答:嵌入式系统的硬件是以嵌入式处理器为核心,由存储器I/O 单元电路,通信模块,外部设备必要的辅助接口组成的。 7. 嵌入式操作系统的主要特点是什么?答:体积小;实时性;特殊的开发调试环境。 8. 叙述嵌入式系统的分类。答:按嵌入式微处理器的位数分类可以分为4 位、 8 位、16 位、32 位和64 位等;按软件实时性需求分类可以分为非实时系统(如PDA), 软实时系统(如消费类产品)和硬实时系统(如工业实时控制系统)按嵌入式系统的复杂程度分类可以分为小型嵌入式系统,中型嵌入式系统和复杂嵌入式系统。 习题2 处理器和工作状态有哪些?

答:ARM犬态:此时处理器执行32位的的字对齐的ARS旨令。 Thumb犬态:此时处理器执行16位的,半字对齐的Thumb旨令 2.叙述ARM9内部寄存器结构,并分别说明R13 R14 R15寄存器的 作用。 答:共有37个内部寄存器,被分为若干个组(BANK,这些寄存器包括31个通用寄存器,包括程序计数器(PC指针)6个状态寄存器。R13用作堆栈指针,R14称为子程序链接寄存器,R15用作程序计数器。处理器的工作模式有哪些? 答:用户模式:ARM处理器正常的程序执行状态。 快速中断模式:用于高速数据传输或通道处理 外部中断模式:用于通用中断处理管理模式:操作系统使用的保护模式数据访问终止模式:当数据或指令预期终止时进入该模式,可用于虚拟存储器及存储保护 系统模式:运行具有特权的操作系统任务 未定义指令终止模式:当未定义的指令执行时进入该模式,可用 于支持硬件协处理器的软件仿真。 微处理器支持的数据类型有哪些? 答:ARM微处理器中支持字节(8位)、半字(16位),字(32 位)

嵌入式软件测试(参考答案)

一、填空题:(10题,每题2分,共20分)1、嵌入式系统是计算机技术、通信技术、半导体技术、微电子技术、语音图像数据传输技术,甚至传感器等先进技术和具体应用对象相结合后的更新换代产品。 2、ARM 处理器当前主要有6个系列产品:ARM7、ARM9、ARM9E、 ARM10E SecurCore及最新的ARM11 系列。 3 、实时是嵌入式系统的主要特征, 根据截止时间的要求,可将实时分为硬实时和软实时。 4、嵌入式应用软件典型的开发方式是宿主机/ 目标机方式。 5、MISRA C已经被越来越多的企业接受,成为用于嵌入式系统的C语言标准, 特别是对安全性要求极高的嵌入式系统,其软件应完全符合MISRA标准。 6、插桩也称为打点,是在程序中插入额外的代码来获得程序在执行时有关行为信息的一种重要手段,属于动态测试的一种常用技术。 7、等价类划分的目的就是为了在有限的测试资源的情况下,用少量有代表性 的数据得到比较好的测试效果。 8、测试报告是把测试的过程和结果写成文档,并对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。 9、TEmb作为一种全新的嵌入式软件结构化测试方法,覆盖了测试过程中的一些关键步骤,回答了“做什么、什么时候做、如何做、用什么方法做和谁去做”的问题。10、嵌入式软件测试自动化就是希望能够通过嵌入式软件测试自动化工具或其他的实现手段,按照测试人员预订的计划进行自动地嵌入式软件测试工 作。 二、选择题:(10题,每题2分,共20分) 1、嵌入式系统是集软硬件于一体的可独立工作的“器件”主,要包括 ___ A___、__ B___、__C _ 、___D___。 A 嵌入式微处理器

嵌入式的测试浅谈

黑盒测试(Black box testing) ── 不考虑内部设计和代码,根据需求和功能进行测试。 白盒测试(White box testing) ── 根据应用软件的代码的内部逻辑,按照代码的语句、分支、路径和条件进行测试。 部件测试(Unit testing) ── 最小范围的测试,针对特定的函数和代码模块进行测试。因为需要了解程序的设计和代码的细节才能进行,所以 部件测试一般是由程序员,而不是由测试人员来做。除非应用软件的结构设计良好,而且代码也写得清楚,否则部件测试并非易事。也许需要开发测试驱动模块或测试工具。 递增的综合测试(incremental integration testing) ── 不断进行的测试过程,每增加一个新的功能模块,都进行测试。这要求一个应用软件在最终完成之前,各功能模块要相对独立,或者已根据需要开发出测试驱动软件。这种测试可由程序员或测试人员进行。 综合测试(integration testing) ── 对应用软件的各个部件进行组合测试,来检查各功能模块在一起工作是否正常。“部件”可以是代码模块、独立的应用程序、也可以是网络中的客户/服务器应用软件。这种测试特别适用于客户/服务器环境和分布式系统。 功能测试(functional testing) ── 对一个应用软件的功能模块进行黑盒测试。这种测试应当由测试人员进行。但这并不意味着程序员在推出软件之前不进行代码检查。(这一原则适用于所有的测试阶段。) 系统测试── 针对全部需求说明进行黑盒测试,包括系统中所有的部件。 端到端测试(end-to-end testing) ── 类似于系统测试,但测试范围更“宏观”一些。模仿实际应用环境,对整个应用软件进行使用测试。例如与数据库进行交互作业、使用网络通信、与其他硬件、应用程序和系统之间的相互作用是否满足要求。 健全测试(sanity testing) ── 是一种典型的初始测试。判断一个新的软件版本的运行是否正常,是否值得对它作进一步的测试。例如,如果一个新的软件每 5 分钟就破坏系统、大大降低系统的运行速度、或者破坏数据库,那么这样的软件就算不上是“健全”的,不值得在目前状态下进行进一步的测试。 回归测试(regression testing) ── 每当软件经过了整理、修改、或者其环境发生变化,都重复进行测试。很难说需要进行多少次回归测试,特别是是到了开发周期的最后阶段。进行此种测试,特别适于使用自动测试工具。 认同测试(acceptance testing) ── 基于说明书的、由最终用户或顾客来进行的测试。或者由最终用户/顾客来进行一段有限时间的使用。 负荷试验(load testing) ── 在大负荷条件下对应用软件进行测试。例如测试一个网站在不同负荷情况下的状况,以确定在什么情况下系统响应速度下降或是出现故障。

周立功-ARM嵌入式系统基础教程课后习题答案11

第一章 思考与练习 1、举出3个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP) 嵌入式片上系统(System On Chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。 其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。 识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展, 分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。 需求风险;时间风险;资金风险;项目管理风险 3、何谓系统规范?制定系统规范的目的是什么? 规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。 4、何谓系统规划?为何要做系统规划 系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。 5、为什么在项目结束前需要进行项目讨论? 项目的讨论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录 下来,也就是说,这是一个撰写项目历史的过程。 第三章 1、ARM7TDMI中的T、D、M、I的含义是什么? 64 位乘法指令(带M 后缀的)、支持片上调试(带D 后缀的)、高密度16 位的Thumb 指令机扩展(带T 后缀的)和EmbededICE 观察点硬件(带I 后缀的) 2、ARM7TDMI采用几级流水线?使用何种存储器编址方式? 三级流水线(取指译码执行);使用了冯·诺依曼(V on Neumann )结构,指令和数据共用一条 32 位总线。 3、ARM处理器模式和ARM处理器状态有何区别? 处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。 4、分别列举ARM的处理器模式和状态。 状态: ARM 状态32 位,这种状态下执行的是字方式的ARM 指令

嵌入式系统基础作业

一、简要说明嵌入式系统产品的基本组成、嵌入式系统特点、嵌入式系统开发流程; 答:基本组成:可分为硬件和软件两个组成部分。其中硬件组成结构以嵌入式微处理机为中心,配置存储器I/O设备、通信模块以及电源等必要的辅助借口;软件组成结构包括应用层、OS层、BSP等。 特点:“专用”计算机系统;运行环境差异大;比通用PC系统资源少;功耗低、体积小、集成度高、成本低;具有完整的系统测试和可靠性评估体系;具有较长的生命周期;需要专用开发工具和方法进行设计;包含专用调试电路;多科学知识集成系统。 开发流程:(1)系统定义与需求分析阶段。(2)方案设计阶段。(3)详细设计阶段。(4)软硬件集成测试阶段。(5)系统功能性及可靠性测试阶段。 二、写出教材图1-1嵌入式系统的组成结构中各英文缩写的中文释义; 答:.OS:操作系统 API:应用程序接口 BSP:板级支持包 Boot:启用装载 HAL:硬件抽象层 SoC/SoPC:片上系统/片上可编程系统 GPIO:控制处理器输出接口 USB:通用串行总线 LCD:液晶显示器 ADC/DAC:模数转换和数模转换 FPGA/CPLD:现场可编程门阵列/复杂可编程逻辑器件 UART/IrDA:通用异步收发传输器/红外线接口 DMA:直接内存访问 CAN:控制器局域网络 Timer/RTC:定时器/实时时钟 MMU/Cache:内存管理单元/高速缓冲存储器

三、比较说明FLASH存储器中NOR型和NAND型FLASH的主要区别;比较说明RAM 存储器中SRAM和SDRAM的主要区别; 答:NORFlash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NORFLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NANDFlash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。SRAM是靠双稳态触发器来记忆信息的;SDRAM是靠MOS电路中的栅极电容来记忆信息的。由于电容上的电荷会泄漏,需要定时给与补充,所以动态RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以主内存通常采用SDRAM,而高速缓冲存储器(Cache)则使用SRAM,在存取速度上,SRAM>SDRAM。 四、说明嵌入式系统常见硬件平台种类、典型处理器型号; 答:典型的型号有MIPS处理器、PowerPC处理器、Sparc处理器、ARM处理器、Xtensa系列可配置处理器。 五、嵌入式系统中常用的接口或通信方式有RS232、RS485、BlueTooth、CAN、IrDA、GPRS、SPI、GSM、802.11、SPI、IIC、Ethernet、JTAG等,请根据通信介质是否无线或有线对其进行分类;请根据通信距离从近至远依次排序;请根据通信速度从慢至快依次排序; 答:无线:RS485、BlueTooth、CAN、IrDA、GPRS、GSM、802.11、Ethernet 有线:RS232、SPI、IIC、JTAG 传输距离:RS232、SPI、IIC、JTAG、BlueTooTh、IrDA、RS485、CAN、802.11、GSM、GPRS、Ethernet 传输速度:GSM、GPRS、Blueteeth、IrDA、802.11、CAN、RS232、RS485、Ethernet、IIC、SPI、JTAG 六、列举常见嵌入式操作系统及其特点; 答:源代码公开并且遵循GPL协议 有大量的免费的优秀的开发工具,且都遵从GPL,是开放源代码的。

《ARM嵌入式系统基础教程》试题及答案

《ARM嵌入式系统基础教程》试题及答案 一、选择题 1、以下说法不正确的是(B )。 A、任务可以有类型说明 B、任务可以返回一个数值 C、任务可以有形参变量 D、任务是一个无限循环 2下列描述不属于RISC计算机的特点的是(C)。 A.流水线每周期前进一步。B.更多通用寄存器。 C.指令长度不固定,执行需要多个周期。 D.独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。 3 存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则2000H存储单元的内容 为(D)。 A、0x21 B、0x68 C、0x65 D、0x02 4 μCOS-II中对关键代码段由于希望在执行的过程中不被中断干扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是(D) A.先CLI、执行关键代码、再STI B. 先STI、执行关键代码、再CLI C. 先POPF、CLI、执行关键代码、再PUSHF D. 先PUSHF、CLI、执行关键代码、再POPF。 5 RS232-C串口通信中,表示逻辑1的电平是(D )。 A、0v B、3.3v C、+5v~+15v D、-5v~-15v 6 ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是(A)。 A.R0 = R2 + (R3 << 1) B. R0 =( R2<< 1) + R3 C. R3= R0+ (R2 << 1) D. (R3 << 1)= R0+ R2 7 IRQ中断的入口地址是(C)。FIQ的入口地址为0x0000001C A、0x00000000 B、0x00000008 C、0x00000018 D、0x00000014 8 S3C2420X I/O口常用的控制器是(D)。 A.端口控制寄存器(GPACON-GPHCON)。 B.端口数据寄存器(GPADAT-GPHDA T)。 C.外部中断控制寄存器(EXTINTN)。 D.以上都是。 9 实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来信息,或建立某个条件后再向前执行,这种制约性合作关系被成为(A)。 A. 同步 B. 互斥 C. 调度 D. 执行 10 和PC系统机相比嵌入式系统不具备以下哪个特点(C)。 A、系统内核小 B、专用性强 C、可执行多任务 D、系统精简 11 、ADD R0,R1,#3属于(A)寻址方式。 A. 立即寻址 B. 多寄存器寻址 C. 寄存器直接寻址 D. 相对寻址 12、GET伪指令的含义是(A) A. 包含一个外部文件 B. 定义程序的入口 C. 定义一个宏 D. 声明一个变量 13、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存 储,则2000H存储单元的内容为(C)。 A、0x00 B、0x87 C、0x65 D、0x61 14、μCOS-II操作系统不属于(C)。 A、RTOS B、占先式实时操作系统 C、非占先式实时操作系统 D、嵌入式实时操作系统 15、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,[R1,#8]!后R0的值为(D )。 A. 0x2000 B. 0x86 C. 0x2008 D. 0x39 16、寄存器R13除了可以做通用寄存器外,还可以做(C )。 A、程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器 17、FIQ中断的入口地址是(A)。

嵌入式系统大作业

嵌入式系统大作业-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

基于嵌入式系统的车载GPS导航系统的设计 1 设计目的与功能 1.1 设计目的 随着人们经济基础增强,安全意识增强的基础上,很多人都会选择车载GPS 导航设备,所以制造功能强大,价格低廉的车载GPS导航设备是有很大市场和发展前景的。由于导航仪投入小,外壳模块、芯片等材料市场供应量大,这也是我选择设计车载GPS导航设备的理由。为了满足不同用户的不同需求,我想设计一款内置四维地图系统。 1.2设计功能 1提供准确无误的全3D实景导航; 2附带全国沿途咨询; 3具有视频、音乐播放等娱乐功能。 2.需求分析调研 2.1 产品的硬件组成(型号、类型、电气特性、选择的理由等) (1)处理器:S3C2440A 400MHz,S3C2440A 是三星公司生产推出的基于ARM920T的32位RISC嵌入式微处理器,S3C2440A采用了ARM920T的内核,0.13um的CMOS标准宏单元和存储器单元。 采用ARM920T CPU内核支持ARM调试体系结构。 (2)储存模块:SDRAM , K4M561633-75 , 64MByte Nand FLASH, K9F1208G 64MByte同步动态随机存储器,工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;存储阵列需要不断的刷新来保证数据不丢失;数据不是线性依次存储,而是自由指定地址进行数据读写。 (3)音频模块:PHILIPS公司的UDA1341TS是一块功能强大的专用语音处理芯片。本设计使用的AT91RM9200处理器具有一个IIS音频接口,此接口

嵌入式系统测试方法

目前嵌入式系统的应用领域越来越广泛,与人们的生活也越来越密切。随着嵌入式产品更新换代的加快,软件规模急速膨胀,软件的开发周期却越来越短。硬件发展日益稳定,而软件故障却日益突出,这些故障不仅会造成重大经济损失,甚至危及人的生命安全。软件的重要性逐渐引起人们的重视,提高嵌入式软件的测试质量势在必行。 为什么嵌入式产品发布后,还残留了许多软件缺陷?原因可能很多,我们试列举以下几种: ①嵌入式软件本身特点,如实时性,与硬件结合紧密等导致软件测试难度大。 ②在代码规模巨大、开发周期短等客观条件下,软件测试不足。 ③在测试阶段,要动态覆盖所有条件、所有状况的测试几乎是不可能的。 ④嵌入式软件开发主要使用C语言,而C语言非常灵活,容易造成编码错误。 ⑤项目团队未有效建立/遵守编码规范,留用有缺陷代码等导致可移植性、可维护性方面存在缺陷。 ⑥项目团队的惯性思维,不良编码/测试习惯等因素的影响等。 软件测试的分类方法有很多种,如静态测试、动态测试;单元测试、集成测试、系统测试、确认测试;模拟测试、实机测试等。各种测试方法其对测试阶段、测试环境等要求也各具特点,本文就软件代码检查这种静态测试方法进行探讨。 1.什么是代码检查 代码检查团队以第三方的角度,运用工具/人工的方式对代码进行静态检查。 软件开发团队根据代码检查团队的检查报告,进行缺陷原因分析、影响范围调查、缺陷修改、修改后验证、缺陷预防措施实施及效果确认活动。 2.代码检查种类 ①代码规范(MISRA等C、C++规范)符合性检查 使用MISRA、QAC等代码规范检查工具,对代码规范的符合性进行检查,然后人工对工具输出的警告进行确认。 ②代码逻辑检查 针对代码规范检查工具不能检查的项目,如公用变量的初始化、函数返回值的使用等方面进行人工检查。 ③中断冲突检查。 对因中断或多任务共同访问全局变量而引起的冲突进行人工检查。 ④功能符合性检查。 对看门狗、AD/DA转换等与硬件相关部分的代码进行人工检查。 3.代码检查的特点 ①可在编码~产品发布这一期间内的任何阶段进行。在项目前期通过代码检查可尽可能多地发现缺陷,从而可削减开发成本,提高产品质量。 ②利用第三方的经验、看问题的角度,可以找出自己开发团队因惯性思维、不良编码/测试习惯等因素造成的而自己难于发现的缺陷。 ③不受测试环境、测试设备等客观因素的制约,费用较低。 4.从事代码检查业务的要求 ①拥有一套检查理论、方法和流程。 ②需要一些辅助工具的配合,以提高检查质量和效率。 ③代码检查人员应熟练掌握C/C++编码规则,熟悉编译器原理。对于功能性检查还应熟悉

相关文档
最新文档