什么是嵌入式系统.docx

上传人:b****7 文档编号:10414060 上传时间:2023-02-11 格式:DOCX 页数:32 大小:350.06KB
下载 相关 举报
什么是嵌入式系统.docx_第1页
第1页 / 共32页
什么是嵌入式系统.docx_第2页
第2页 / 共32页
什么是嵌入式系统.docx_第3页
第3页 / 共32页
什么是嵌入式系统.docx_第4页
第4页 / 共32页
什么是嵌入式系统.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

什么是嵌入式系统.docx

《什么是嵌入式系统.docx》由会员分享,可在线阅读,更多相关《什么是嵌入式系统.docx(32页珍藏版)》请在冰豆网上搜索。

什么是嵌入式系统.docx

什么是嵌入式系统

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)正常用户模式(usr);

2)快速中断模式(fiq);

3)普通中断模式(irq);

4)操作系统保护模式(svc)或管理模式;

5)数据访问中止模式(abt);

6)处理未定义指令的未定义模式(und);

7)运行特权级的操作系统任务的系统模式(sys)。

9.寄存器R13,R14,R15的专用功能各是什么?

答:

1)寄存器R13保存堆栈指针SP;2)寄存器R14用作子程序链接寄存器,也称为LR,用以保存返回地址;3)R15(PC)用作程序计数器。

10.寄存器CPSR,SPSR的功能各是什么?

答:

1)CPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。

所有处理器模式下都可以访问当前的程序状态寄存器CPSR。

2)在每种异常模式下都有一个对应的物理寄存器——程序状态保存寄存器SPSR。

当异常出现时,SPSR用于保存

CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

11.ARM的异常有哪几种,各进入何种工作模式?

他们退出各采用什么指令?

答:

1)复位(Reset)异常(管理模式);

2)未定义指令(undefinedinstruction)异常(未定义模式);

3)软件中断(SWI)异常(管理模式);

4)指令预取中止(PrefechAbort)异常(中止模式);

5)数据访问中止(DataAbort)(中止模式);

6)快速中断请求(FIQ)(FIQ模式);

7)外部中断请求(IRQ)(IRQ模式)。

异常返回指令:

1)SWI,未定义的返回:

MOVSPC,R14;2)IRQ,FIQ,预取中止的返回:

SUBSPC,R14,#4;3)数据中止返回并重新存取:

SUBSPC,R14,#8

异常中断的优先级:

复位(最高优先级)-->数据异常中止--->FIQ-->IRQ--->预取指异常中止--->SWI---->未定义指令(包括缺协处理器)。

12.什么是小端和大端存储器组织?

答:

1)小端存储器组织是较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址(同同小)。

2)大端存储器组织是较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址(正反大)。

13.什么是数据的边界对齐?

答:

默认情况下,ADS编译器使用的是数据类型的自然边界对其方式。

数据的自然对其方式是指:

如果该数据类型是n个字节的,那么该数据类型就按n字节对齐。

14.ARM核现在有哪几种?

答:

ARM7、ARM9、ARM9E、ARM10E,、SecurCore、ARM11

15.ARM的寻址方式有哪些?

各写一条说明。

答:

1)立即寻址

(1)ADDR0,R0,#1/*R0←R0+1*/

(2)ADDR0,R0,#0x3f/*R0←R0+0x3f*/;

2)寄存器寻址(ADDR0,R1,R2/*R0←R1+R2*/);

3)寄存器间接寻址

(1)、LDRR0,[R1]/*R0←[R1]*/;

(2)STRR0,[R1]/*[R1]←R0*/;

4)基址加偏址寻址

(1)、LDRR0,[R1,#4];R0←[R1+4];

(2)、LDRR0,[R1,#4]!

;R0←[R1+4]、R1←R1+4;

(3)、LDRR0,[R1],#4;R0←[R1]、R1←R1+4

5)堆栈寻址

(1)、STMFDSP!

{R1-R7,LR};

(2)、LDMFDSP!

{R1-R7,LR};

6)块拷贝寻址

(1)、LDMIAR0!

{R2-R9};

(2)、STMIAR1,{R2,R9};

7)相对寻址

16.在ARM的立即寻址方式下其立即数如何在指令编码中表示?

答:

在ARM数据处理指令中,当参与操作的第二操作数为立即数型时,每个立即数都是采用一个8位的常数循环右移偶数位而间接得到。

其中循环右移的位数由一个4位二进制的两倍表示,如果立即数记作,8位常数记作immed_8,4位的循环右移值记作rotate_imm,有效的立即数是由一个8位的立即数循环右移偶数位得到。

因此有效立即数immediate可以表示成:

=immed_8循环右移(2×rotate_imm)

17.指令ADR,ADRL、LDR、NOP是如何处理地址值读入到寄存器中的?

答:

ADR是将基于PC或者寄存器的地址值读入到寄存器的,ADR伪指令通常被替换成一条ADD指令或SUB指令来实现该ADR指令的功能。

而ADRL伪指令与ADR指令的最大不同之处是,它可以读取更大范围内的地址,而且被编译器替换成2条数据处理指令。

LDR将一个32位的立即数或者一个地址值读取到寄存器中。

大范围的地址读取。

NOP在汇编时将被替换成ARM中的空操作。

18.指令LDRR1,=0xFFF是如何将立即数0xfff读入到R1的?

答:

由于需要读取的寄存器的数据超过了MOV及MVN指令可操作的范围,编译器将该常数放在数据缓冲区中,同时用一条基于PC的LDR指令读取该常数。

LDRR1,[PC,offset_to_LPOOL].

............

LTORG;声明数据缓冲池

LPOOLDCDOxFFF;OxFFF放在数据缓冲池中。

19.如何在c语言程序中内嵌汇编?

答:

内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直接引用C的变量定义,数据交换必须通过ATPCS进行。

嵌入式汇编在形式上表现为独立定义的函数体。

20.如何在汇编语言程序访问C语言的全局变量?

答:

汇编程序可以通过地址间接访问在C语言程序中声明的全局变量。

通过使用IMPORT关键词引人全局变量,并利用LDR和STR指令根据全局变量的地址可以访问它们。

对于不同类型的变量,需要采用不同选项的LDR和STR指令,如下所示:

1)unsignedchar——LDRB/STRB;

2)unsignedshort——LDRH/STRH;

3)unsignedint——LDR/STR;

4)char——LDRSB/STRSB;

5)Short——LDRSH/STRSH

21.在C语言程序如何调用汇编语言程序?

答:

为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。

在汇编程序中需要使用EXPORT伪操作来声明,使得本程序可以被其它程序调用。

同时,在C程序调用该汇编程序之前需要在C语言程序中使用extern关键词来声明该汇编程序。

22.汇编语言程序调用C语言程序?

答:

为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。

在C程序中不需要使用任何关键字来声明将被汇编语言调用的C程序,但是在汇编程序调用该C程序之前需要在汇编语言程序中使用IMPORT伪操作来声明该C程序。

在汇编程序中通过BL指令来调用子程序。

23.在嵌入式C语言程序设计中为提高程序效率的相关设计技巧。

答:

1)变量定义;2)参数传递;3)循环条件;4)以空间换时间;5)数学方法解决问题;6)使用位操作;7)嵌入汇编。

24.Linux操作系统的内核、文件系统、编程接口等。

P192P201

答:

Linux的内核也有很多种,例如普通的Linux内核、uClinux内核、RTLinux内核等

25.嵌入式Linux操作系统的特点。

答:

广泛的硬件支持、内核高效稳定、开放源码,软件丰富、优秀的开发工具、完善的网络通信和文件管理机制,

26.WindowsCE操作系统及其特点。

答:

WindowsCE是一个32位、多任务、多线程的操作系统,其开放式的设计结构适用于各种各样的设备,其主要特点:

一、CE是一种压缩并可升级的软件系统,即使在小内存条件下,也能提供较高的性能。

二、CE具有便于携带的优点,可以运行于多种微处理器上

三、CE拥有很好的电源管理系统,能延长移动设备的电池寿命

四、CE支持标准的通讯系统,可以非常方便地访问Internet,发送和接受电子邮件,浏览万维网。

 

程序解释

AREACOPYBS,CODE,READONLY;定义一个代码段

ENTRY;程序入口

LDRRO,=SRC;取得原数据表的表头

LDRR1,=DST;取得目标数据表的表头

MOVR2,#20;R4作为循环控制

BCOPYMOVSR3,R2,LSR,#3;R3=R2<<3逻辑右移3位

BEQCWORD;若Z=1,跳转到CWORD

OCOPYLDMIAR0!

{R4-R11};加载R0指向的地址上的多字数据,保存到R4~R11中,R0值更新

STMIAR1!

{R4-R11};将R4-R11的数据存储到R1指向的地址上,R1值更新

SUBSR3,R3,#1;R3=R3-1

BNEOCOPY;若Z=0,跳转到OCOPY

CWORDANDR2,R2,#7;R2=R2&7

BEQSTOP;若Z=1,跳转到STOP

WCOPYLDRR3,{R0},#4;将R3中的字数据读入以R0为地址的存储器中,并将新地址R0+4写入R1

STRR3,{R1},#4;将R3中的字数据写入以R1为地址的存储器中,并将新地址R1+4写入R1

SUBSR2,R2,#1;R2=R2-1

BNEWCOPY;若Z=0,跳转到WCOPY

STOP……

……

 

在程序中常常需要根据一定的参数选择执行不同的子程序。

跳转表中存放的是各子函数的地址,选择不同的子程序的参数是该子程序在跳转表中的偏移量。

在本例中R3寄存器中存放的是跳转表的基地址(首选地址,其中存放的是第一个子程序的地址)。

R0寄存器的值用于选择不同的子程序;当R0为0时,选择的是子程序DoAdd;当R0为1时,选择的是子程序DoSub。

在ADS编译环境程序如下:

AREAJump,CODE,READONLY;设置本程序的名称及属性

NUMEQU2;跳转表中的子程序个数

ENTRY;程序执行的入口点

StartMOVR0,#0;设置3个参数,R0选择调用哪个子程序

MOVR1,#3;R1为子程序要用的参数

MOVR2,#2;R2为子程序要用的参数

BLFunc;调用子程序Func,进行算术运算

StopMOVR0,#0x18;本条与下条指令的作用是参数传递

LDRR1,=&20026

SWI0x123456;将CPU的控制权交给调试器

FuncCMPR0,#NUM;判断R0是否在有效范围之内

MOVHSPC,LR;如果超出范围则程序返回

ADRR3,JTable;读取跳转表的基地址

LDRPC,【R3,R0,LSL#2】;根据参数R0的值跳转到相应的子程序

JTableDCDDoAdd;当参数R0为0时上面的代码将选择DoAdd

DCDDoSub;当参数R0为1时上面的代码将选择DoSub

DoAddADDR0,R1,R2;子程序DoAdd执行加法操作

MOVPC,LR;子程序返回

DoSubSUBR0,R1,R2;子程序DoSub执行减法操作

MOVPC,LR;子程序返回

END;结束汇编

嵌入式系统基础复习题

一、简答题

1、什么是嵌入式系统?

嵌入到对象体系中的专用计算机应用系统。

2、嵌入式系统的3个基本特点?

嵌入性、专用性、计算机

3、什么是嵌入式处理器,嵌入式处理器可以分为几大类?

嵌入式处理器是为了完成特殊的应用而设计的特殊目的的处理器。

分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统(SOC)。

4、广泛使用的三种类型的操作系统?

多道批处理操作系统、分时操作系统以及实时操作系统。

5、常见的4种嵌入式操作系统?

嵌入式Linux、WinCE、VxWorks、μC/OS-II

6、ARM是什么样的公司?

它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC处理器。

特点是只设计芯片,而不生产。

它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。

7、什么是RISC?

什么是CISC?

RISC是精简指令集计算机的缩写。

CISC是复杂指令集计算机的缩写。

8、举出2个ARM公司当前应用比较多的ARM处理器核?

ARM7系列、ARM9系列、ARM10系列、ARM11系列、intel的Xscale系列和MPCore系列。

9、ARM7TDMI中的T、D、S、I分别表示什么含义?

T:

支持高密度16位的Thumb指令集

D:

支持片上调试

S:

ARM7TDMI的可综合(synthesizable)版本(软核)

I:

支持EmbededICE观察硬件

M:

支持64位乘法

10、ARM7TDMI处理器采用什么样的体系结构,其可寻址地址空间多大?

ARM处理器使用冯.诺依曼结构

使用单个平面的232个8位字节地址空间。

地址空间可以看作是包含230个32位字,或231个16位半字。

11、ARM7TDMI处理器采用几级流水线处理,使用何种存储器编址方式?

ARM7TDMI处理器采用三级流水线。

ARM处理器将存储器看做是一个从0开始的线性递增的字节集合。

12、ARM处理器模式和ARM处理器状态有什么区别?

ARM处理器模式指用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。

ARM处理器状态指ARM状态和Thumb状态

ARM两种处理器状态下均有上述7种模式。

13、ARM7TDMI内部寄存器特点?

分别为31个通用32位寄存器和6个状态寄存器。

它们不能在同一使劲同时被访问,对其的访问取决于处理器状态和处理器模式。

14、ARM7TDMI有几种寻址方式?

寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、相对寻址。

15、ARM7的内部寄存器R13、R14、R15的主要功能和作用?

R13:

堆栈指针,用于保存堆栈的出入口处地址、保存待使用寄存器的内容

R14:

连接寄存器,当使用BL指令调用子程序时,返回地址将自动存入14中;当发生异常时,将R14对应的异常模式版本设置为异常返回地址;其他时候作为通用寄存器。

R15:

程序寄存器,总是指向正在“取指”的指令

16、请说明MOV指令与LDR加载指令的区别和用途?

LDR的操作数既可以来源于寄存器也可以来源于存储器,MOV的操作数能来源于寄存器。

LDR指令从内存中读取数据放入寄存器,用于对内存变量和数据的访问、查表、程序的跳转、外围部件的控制操作等;MOV指令将8位立即数或寄存器传送到目标寄存器(Rd),可用于移位运算等操作。

17、LPC2000系列器件有几种常见的封装形式和其封装特点?

常见的封装有64脚封装,144脚封装

功耗低,有多个32位定时器,多达9个外部中断,16K字节静态RAM,1/128/256k字节片Flash存储器,128为宽度接口加速器,4路10位ADC或8路10位ADC(64脚和144脚封装),46或76~112个GPIO(64脚和144脚封装)。

18、简要说明一下LPC2000系列器件片内存储器的特点?

片内存储器分为片内Flash和片内静态RAM。

片内Flash通过128位宽度的总线与ARM内核相连,具有很高的速度,特有的存储器加速功能,可以将程序直接放在Flash上运行。

SRAM支持8位、16位和32位的读写访问。

19、为什么要进行存储器重映射?

存储器重映射是为了实现引导块和异常向量表地址的固定。

重映射引导块,有利于用户调用其中的某些程序,增加代码的可移植性;

异常向量表重映射为了能让ARM内核通过访问0x0000~0x003F地址访问到其他存储区域的向量表。

20、LPC2000系列ARM7微控制器对向量表有什么要求(向量表中的保留字)?

向量表中有一个空隙以确保软件能与不同的ARM结构兼容;表中异常入口地址处放置的是跳转指令,已转向中断子程序。

FIQ地址要放在向量表的最后;

21、ARM7微控制器内FLASH是多少位宽度的接口?

它是通过哪个功能模块来提高FLASH的访问速度?

FLASH是128位宽度的接口,通过存储器加速模块提高其访问速度。

22、FIQ、IRQ有什么不同?

向量IRQ和非向量IRQ有什么不同?

FIQ是快速中断,具有最高优先级,中断处理转入FIQ模式;IRQ是普通中断,优先级低于FIQ,中断处理转入IRQ模式。

向量IRQ支持16个向量IRQ中断,16个优先级,能为每个中断源设置服务程序地址;非向量IRQ支持一个非向量IRQ中断,所有中断都共用一个相同的服务程序入口地址。

23、LPC2000系列芯片共有几个外接中断输入?

它们是FIQ,还是IRQ?

共有4个外接中断输入,它们既可以是IFQ也可以是IRQ。

24、LPC2000系列芯片常用的开发工具?

ADS、IAR、JATG、ISP

25、什么是嵌入式处理器的最小系统?

最小系统是指提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成的系统。

26、嵌入式处理器的最小系统包含那些基本电路?

最小系统包含时钟系统、供电系统、复位及其配置系统、存储器系统(可选)、调试测试系统(可选)。

基本电路包括:

末级电源电路、前级电源电路、时钟电路、复位电路、程序存储器(可选)、调试接口电路(可选)。

二、问答题

1、ARM7TDMI支持哪几种指令集,各有什么特点?

支持ARM指令集和Thumb指令集两种。

ARM指令集:

指令32位,效率高,代码密度低,所有ARM指令都是可以有条件执行的。

Thumb指令集:

指令16位,代码密度较高,Thumb指令仅有一条指令具备条件执行功能。

保持ARM的大多数性能上的优势,是ARM指令集的子集。

2、ARM7TDMI有几种处理器模式,简单介绍该几种模式的工作特点?

ARM7TDMI有7种处理器模式。

用户模式:

正常程序运行的工作模式,不能直接从用户模式切换到其它模式

系统模式:

用于支持操作系统的特权任务等,可以直接切换到其它模式

快中断模式:

用于快速中断处理,支持高速数据传输及通道处理,只有在FIQ异常响应时,才进入此模式。

中断模式:

用于通用中断处理,只有在IRQ异常响应时,才进入此模式。

管理模式:

供操作系统使用的一种保护模式,只有在系统复位和软件中断响应时,才进入此模式。

中止模式:

用于虚拟内存和/或存储器保护。

未定义模式:

支持软件仿真的硬件协处理器,只有在未定义指令异常响应时,才进入此模式。

3、什么是引导程序?

什么是启动程序?

两者有什么区别?

引导程序是ARM微处理器在上电或复位后首先运行BootBlock中的一段代码;启动程序是在运行引导程序后,正式运行用户main函数之前,还需要运行一段代码

引导程序由芯片厂商固化在芯片中,功能包括:

判断运行哪个存储器上的程序、检查用户代码是否有效、判断芯片是否被加密、芯片的在应用编程(IAP)以及在系统编程功能(ISP)。

启动程序由用户添加,功能包括:

向量表定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外围初始化,地址重映射等操作。

4、简要描述LPC2000系列芯片内部GPIO的功能特点?

(1)可以独立控制每个GPIO口的方向;

(2)可以独立设置每个GPIO的输出状态;

(3)所有GPIO口在复位后默认位输入状态。

5、试说明LPC2000系列芯片的引脚设置寄存器PINSEL0、PINSEL1、PINSEL2的具体功能?

PINSEL0控制引脚P0.0~P0.15的连接状态,每两位控制一个引脚。

PINSEL1控制引脚P0.16~P0.31的连接状态,每两位控制一个引脚。

PINSEL2控制P1端口和P2端口。

6、试说明LPC2000系列芯片的存储器映射的结构特点?

(看图回答问题4)

(1)0GB向上为128KB或256KB的片内非易失性存储器;

(2)1GB向上为16KB片内静态RAM;

(3)2GB向下为BootBlock重映射;

(4)3.5GB向上为VPB外设;

(5)4GB向下为AHB外设。

7、试说明LPC2000系列芯片内部向量中断控制器(VIC)的功能特点?

(看图回答问题5)

(1)可以管理最多32个中断请求,可将其编程为FIQ、向量IRQ或非向量IRQ;

(2)有16个向量IRQ中断;

(3)16个优先级,可动态分配优先级;

(4)可产生软件中断。

8、试说明LPC2000系列芯片的向量中断和非向量中断的功能特点?

向量中断支持16个向量IRQ中断;16个优先级;每个优先级指定一个服务程序入口地址。

非向量中断支持1个非向量IRQ中断;所有非向量IRQ的入口地址都相同。

9、试说明LPC2000系列芯片内部定时器的功能特点?

(看图回答问题6)

(1)各含有

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1