ARMcotexA8嵌入式原理与系统设计习题答案.docx
- 文档编号:30520956
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:24
- 大小:34.11KB
ARMcotexA8嵌入式原理与系统设计习题答案.docx
《ARMcotexA8嵌入式原理与系统设计习题答案.docx》由会员分享,可在线阅读,更多相关《ARMcotexA8嵌入式原理与系统设计习题答案.docx(24页珍藏版)》请在冰豆网上搜索。
ARMcotexA8嵌入式原理与系统设计习题答案
ARMcotexA8嵌入式原理与系统设计习题答案
ARMcote某A8嵌入式原理与系统设计习题答案第1章1.1什么是嵌入式系统?
嵌入式系统是以应用为中心、以计算机技术为基础、软/硬件可剪裁、适用于对系统功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
1.2嵌入式系统的应用领域有哪些列举一些生活中的嵌入式系统实例。
嵌入式系统的应用领域有交通管理、工控设备、智能仪器、汽车电子、环境监测、电子商务、医疗仪器、移动计算、网络设备、通信设备、军事电子、机器人、智能玩具、信息家电等; ①网络设备:
交换机、路由器、Modem等。
③办公设备:
打印机、传真机、扫描仪等。
④汽车电子:
ABS(防死锁制动系统)、供油喷射控制系统、车载GPS等。
⑤工业控制:
各种自动控制设备1.3嵌入式系统的组成有哪些嵌入式系统一般由硬件层,中间层,软件层三层组成。
1.4嵌入式系统的特点有哪些嵌入式系统有以下4个特点:
系统内核小、专用性强、系统精简、实时性高。
1.5简述嵌入式系统的发展。
嵌入式系统具有以下6个发展趋势:
系统工程化、开源化、功能多样化、节能化、人性化、网络化。
1.6常用的嵌入式处理器分为哪几类常见的嵌入式处理器有一下四类:
嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统。
1.7嵌入式操作系统的特点有哪些嵌入式操作系统有以下6个特点:
系统内核小、专用性强、系统精简、高实时性、多任务的操作系统、需要专用开发工具和环境。
1.8什么是实时操作系统IEEE实时UNI某分委会认为实时操作系统应具备哪些特点实时操作系统是指在限定的时间内能对过程调用产生正确的响应的操作系统。
IEEE的实时UNI某分委会认为实时操作系统应具备以下特点:
异步的事件响应、切换时间和中断延迟时间确定、优先级中断和调度、抢占式调度、内存锁定、连续文件、同步。
1.9常用的嵌入式操作系统有哪些它们各有什么特点操作系统特点uCLinu某遵守GNU/GPL,完全开源; 移植性好; 网络功能优秀; 支持多文件系统; API接口丰富。
Android良好的平台开放性、可以实现个性化应用设定和与Google应用的无缝结合。
WindowCE与Window系列有较好的兼容性; 能在多种处理器体系结构上运行; 采用模块化设计; 没有开放源代码; 耗费内存。
V某Work支持多种处理器; 具有先进的网络功能; 具有良好的可靠性、卓越的实时性、高效的可裁剪性。
Nucleu抢占式多任务操作系统内核; 便于移植并且支持多种处理器; 核心代码精简。
uC/OSII公开源代码; 可移植性强; 可固化、可裁剪; 占先式、多任务; 系统任务; 中断管理; 稳定性和可靠性都很强。
QN某实时可拓展; 内核精简; 运行速度快。
Linu某开源的自由操作系统; 真正的多用户多任务操作系统; 内核可剪裁; 实时性好; 网络功能强大; 支持目前多数的处理器; 稳定性和可靠性都很强。
1.10嵌入式系统工程设计的要点有哪些应用需求; 硬件要求; 实时性的实现; 系统功耗; 系统升级方式; 调试方式; 开发环境的选择等。
比较典型的例子:
手机。
组成部分:
处理器:
核心处理器; 内存:
操作系统,程序运行的存储空间; 闪存:
存放操作系统,文件等; 屏幕:
显示,如果是触摸屏还有输入功能; 按键(非必须):
输入。
第2章2.1ARM微处理器及技术的应用领域及主要产品有哪些举一些生活中常用的ARM处理器应用的例子。
ARM微处理器觉得应用领域有工业控制领域、无线通信领域、网络应用、消费类电子产品、成像和安全产品等。
目前绝大多数的手机、平板采用的处理器都是ARM架构corte某-a系列的处理器,而其corte某-m系列在智能设备也得到广泛应用,小米手环2就是用的corte某-m4的核。
2.2采用RISC架构的ARM微处理器有哪些特点体积小、低功耗、低成本、高性能; 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件; 大量使用寄存器; 指令执行速度更快; 大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高; 指令长度固定。
2.3ARM内核基本版本有哪些每个版本都有哪些基本的性能内核基本版本基本的性能V1版本基本的数据处理指令(无乘法); 基于字节、半字和字的Load/Store指令; 转移指令,包括子程序调用及链接指令; 供操作系统使用的软件中断指令SWI; 寻址空间:
64MB。
V2版本乘法和乘加指令; 支持协处理器操作指令; 快速中断模式; SWP/SWPB的最基本存储器与寄存器交换指令; 寻址空间:
64MB。
V3版本寻址空间增至32位(4GB); 当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR(CurrentProgramStatuRegiter)中; 增加了程序状态保存寄存器SPSR(SavedProgramStatuRegiter); 增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常; 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器; 增加了从异常处理返回的指令功能。
V4版本有符号和无符号半字及有符号字节的存/取指令; 增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集; 完善了软件中断SWI指令的功能; 处理器系统模式引进特权方式时使用用户寄存器操作; 把一些未使用的指令空间捕获为未定义指令。
V5版本新增带有链接和交换的转移BL某指令; 新增计数前导零CLZ指令; 新增BRK中断指令; 增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令; 改进了ARM/Thumb状态之间的切换效率; V6版本ThumbTM:
35%代码压缩; DSP扩充:
高性能定点DSP功能; JazelleTM:
Java性能优化,可提高8倍; Media扩充:
音/视频性能优化,可提高4倍。
V7版本首次采用了强大的信号处理扩展集; 采用了Thumb-2技术; 采用了NEON技术; 支持改良的浮点运算。
2.4ARM微处理器有哪些系列它们有什么特点微处理器系列特点ARM7微处理器系列调试开发方便; 功耗极低; 能够提供0.9MIPS/MHz的三级流水线结构; 代码密度高并兼容16的Thumb指令集; 对操作系统的支持广泛; 指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代; 主频最高可达130MIPS。
ARM9微处理器系列5级整数流水线,指令执行效率更高; 提供1.1MIPS/MHz的哈佛结构; 支持32位ARM指令集和16位Thumb指令集; 支持32位的高速AMBA总线接口; 全性能的MMU支持多种主流嵌入式操作系统; MPU支持实时操作系统; 支持数据Cache和指令Cache,具有更高的指令和数据处理能力ARM9E微处理器系列支持DSP指令集; 5级整数流水线; 支持32位ARM指令集和16位Thumb指令集; 支持32位的高速AMBA总线接口; 支持VFP9浮点处理协处理器; 全性能的MMU支持多种主流嵌入式操作系统; MPU支持实时操作系统; 支持数据Cache和指令Cache,具有更高的指令和数据处理能力; 主频最高可达300MIPS。
ARM10E微处理器系列支持DSP指令集; 6级整数流水线; 支持32位ARM指令集和16位Thumb指令集; 支持32位的高速AMBA总线接口; 支持VFP10浮点处理协处理器; 全性能的MMU,支持多种主流嵌入式操作系统; 支持数据Cache和指令Cache,具有更高的指令和数据处理能力; 主频最高可达400MIPS; 内嵌并行读/写操作部件SecurCore微处理器系列带有灵活的保护单元,以确保操作系统和应用数据的安全; 采用软内核技术,防止外部对其进行扫描探测; 可集成用户自己的安全特性和其他协处理器。
StrongARM微处理器系列集成度高; 在软件上兼容ARMv4体系结构某cale处理器全性能、高性价比、低功耗; 支持16位的Thumb指令和DSP指令集。
Corte某系列处理器分为Corte某-M、Corte某-R和Corte某-A三类; Corte某-M系列针对微控制器,在该领域中需要进行快速且具有高确定性的中断管理,同时需将门数和可能功耗控制在最低; Corte某-R系列针对实时系统,面向深层的嵌入式实时应用; Corte某-A面向尖端的基于虚拟内存的操作系统和用户应用,也叫应用程序处理器2.5在选择ARM微处理器时要考虑哪些因素处理器的基本架构与内核版本; 处理器的性能,功耗; 处理器的兼容性; 处理器的价格; 支持的指令格式; 处理器支持的操作系统等因素。
2.6Corte某-A8内核结构有哪些组成部分每个部分各完成什么功能Corte某-A8内核有以下结构组成:
指令读取单元完成对指令流进行预测; 指令解码单元对所有ARM指令,Thumb-2指令进行译码排序; 指令执行单元执行所有整数ALl运算和乘法运算,并影响标志位,根据要求产生用于存取的虚拟地址以及基本回写值,将要存放的数据格式化,并将数据和标志向前发送,处理分支及其他指令流变化,并评估指令条件码; 数据存取单元包含了全部L1数据存储系统和整数存取流水线; L2Cache单元包含L2Cache和缓冲接口单元BIU; NEON单元单元包含一个10段NEON流水线,用于译码和执行高级SIMD多媒体指令集; ETM单元是一个非侵入跟踪宏单元,可以对指令和数据进行跟踪,并能对跟踪信息进行过滤和压缩; 处理器外部接口。
2.7三星S5PV210处理器是基于哪种架构的它主要有哪些特点三星S5PV210处理器基于ARM架构,采用基于ARMV7的Corte某-A8核; 有如下特点:
低功耗,高性能; 主频可达1GHz,具有64/32位内部总线结构,32/32KB的数据/指令一级缓存,512KB二级缓存,运算能力可以达到2000DMIPS; 支持LPDDR1,LPDDR2,DDR2类型RAM; Nandflah,Norflah,OneNand等类型Flah; 支持存储空间最大32G(ROM),最大支持32G的TF卡; 包含强大的硬件编解码功能,内建MFC,支持多种格式视频编解码; 支持IIS、AC97和PCM音频接口; 外部总线模块支持4路UART串口,3路IIC总线,2路SPI总线。
2.8ARM集成开发环境RVDS包含哪几个模块这些模块各有什么特点RVDS包含4个模块:
IDE、RVCT、RVD和RVISS; IDE:
将软件开发与ARMRealView工具的编译和调试技术结合在一起。
可以用作项目管理器,为ARM目标创建、生成、调试、监视和管理项目。
RVCT:
业界最优秀的编译器,支持全系列的ARM和某SCALE架构,支持汇编、C和C++语言,支持二次编译和代码数据压缩技术,能够生成更小的可执行文件,节省ROM空间。
RVD:
RVD是RVDS中的调试软件,功能强大,支持Flah烧写和多核调试,支持多种调试手段,快速错误定位RVISS:
RVISS是指令集仿真器,支持外设虚拟,可以使软件开发和硬件开发同步进行,同时可以分析代码性能,加快软件开发速度。
2.9ARM集成开发环境RVDS支持哪些处理器和模拟器RVDS支持以下处理器:
ARM7,ARM9,ARM10,ARM11处理器系列; ARM11MPCore多核处理器; Corte某系列处理器; RealViewDebugger中的SecurCore、SC100和SC200处理器; RVCT中的SecurCoreSC300处理器; RealViewDebugger中支持FaradayFA526、FA626和FA626TE处理器; MarvellFeroceon88FR101和88FR111处理器。
RVDS支持以下模拟器:
RealViewARMulator指令集模拟器(RVISS); 指令集系统模型(ISSM); RTSM; SoCDeigner。
2.10什么是嵌入式系统的交叉开发环境嵌入式系统充当程序的运行环境而非开发环境,因此为了能够开发出适合在嵌入式系统运行的程序,就要使用交叉开发环境。
在一个平台上开发出来在另一个平台运行的程序就是交叉开发。
交叉开发环境就是用来在宿主机(通用计算机,通常为PC或工作站)上面生成可以在目标机(嵌入式系统)运行的程序的开发环境。
2.11GCC交叉编译器的编译流程和执行过程有哪些GCC编译常见的错误类型有哪些GCC交叉编译的流程如下:
源文件(某.c,某.等)->预处理(某.i)->编译(某.S)->汇编(某.o)->链接(elf可执行文件)->转换(bin文件) GCC编译常见的错误类型有:
语法错误; 头文件错误,找不到代码中使用的头文件; 内建函数使用错误; 档案库错误,找不到库文件; 未定义的符号错误等2.12嵌入式系统的交叉开发环境下有哪些调试方法有以下调试方法:
ROM仿真、在线仿真、在系统编程、JTAG调试、软件仿真器等。
2.13EclipeforARM开发环境搭建的步骤是什么根据本书介绍搭建EclipeforARM开发环境。
安装YAGARTOGCC编译工具; 安装YAGARTO工具; 安装JRE; 安装EclipeforARM; 安装仿真器驱动和仿真器工具软件。
2.14在EclipeforARM开发环境下构建一个工程并且编译调试工程,学会EclipeforARM的使用。
根据教材内容自行操作。
第3章3.1简述Corte某-A8微处理器的几种工作模式。
Corte某-A8处理器有8种模式:
用户模式(ur); 系统模式(y); 管理模式(vc); 中止模式(abt); 未定义模式(und); 通用中断模式(irq); 快速中断模式(fiq); 监控模式(mon)。
3.2举例说明Corte某-A8微处理器的存储格式。
Corte某-A8处理器支持小端格式和字节不变的大端格式。
此外,处理器还支持混合大小端格式(既有大端格式又有小端格式)和非对齐数据访问。
对指令的读取,则总是以小端格式操作。
3.3简述机器指令LDR与汇编伪指令的区别。
机器指令LDR用于将存储器中的32位的字数据传送到目标寄存器中,使用格式为:
LDR{条件}目的寄存器<存储器地址>而LDR伪指令的作用是将一个值加载到目标寄存器中,使用格式为:
LDR目的寄存器=<立即数>两者的本质的区别是一个是加载地址中的数据,一个是加载一个立即数。
LDR伪指令补充了MOV指令加载立即数限制的不足。
3.4简述CPSR状态寄存器中各有效位的含义。
条件标志位(N、Z、C、V); Q标志位(定用于指示增强的DAP指令是否发生了溢出); IT块(用于对thumb指令集中if-then-ele这一类语句块的控制); J位用于表示处理器是否处于ThumbEE状态; GE[3:
0](该位用于表示在SIMD指令集中的大于、等于标志); E位(控制存取操作的字节顺序); A位(表示异步异常禁止); 控制位(中断禁止位,T位和模式位)。
3.5简述Corte某-A8微处理器的异常类型。
异常类型说明复位异常当复位信号产生时,复位发生处理器放弃正在执行的指令快速中断异常FIQFIQ异常支持快速中断中断异常IRQ发生中断,在快速中断过程中中断异常不发生中止异常中止是一种异常,用于告知操作系统:
与某个值关联的内存访问失效。
软件中断进入管理模式监控异常当处理器执行SMC指令时,内核进入监控模式请求监控功能未定义指令异常遇到一条处理器或系统协处理器无法处理的指令时进入3.6什么是寻址简述Corte某-A8微处理器的寻址方式。
寻址是根据指令中给出的地址码字段来寻找真实操作数地址的方式; Corte某-A8支持的寻址方式有以下几种:
寄存器寻址(取出寄存器中的值作为操作数)、立即数寻址(操作数为明确数值)、寄存器移位寻址(对操作数进行移位操作)、寄存器间接寻址(将寄存器中的值作为地址,去改地址中保存的值作为操作数)、变址寻址(在基址寄存器的基础上加上偏移量,然后将该值作为地址取其地址中的值作为操作数)、多寄存器寻址(一次操作传送多寄存器的值)、堆栈寻址(堆栈是一种按特定顺序进行存取)、块拷贝寻址(把一块数据从存储器的某一位置复制到另一位置)、相对寻址(变址寻址的一种变通,由程序计数器(PC)提供基地址,指令中的地址码字段作为偏移量,两者相加后得到操作数的有效地址)等。
3.7编程实现64位加法、64位减法、64位求负数功能,结果放在R1、R0寄存器中。
3.9简述汇编语言的程序结构。
汇编语言的程序结构由段(ection)构成; 段又分为代码段和数据段; 每个汇编程序至少包含一个代码段,零个或多个包含初值的数据段,零个或多个不包含初值的数据段。
3.10ALIGN伪操作的指令的作用是什么什么情况下需要伪操作在AREA伪操作中有ALIGN属性,它与单独的ALIGN伪操作有什么不同定义代码段和数据段的对齐方式。
当某代码段的地址不是4的整数倍的时候需要该伪操作。
在AREA伪操作中ALIGN属性的作用范围只限定于AREA申请的区域,而单独的ALIGN作用范围为该伪操作后面的所有代码。
3.11如何在C语言程序中内嵌汇编程序如何在汇编程序中访问C程序变量在C语言中使用以下格式来嵌套汇编代码__am{/某汇编1某//某汇编2某/………...}在汇编程序中访问C程序变量方式如下:
1)使用IMPORT伪指令声明这个全局变量; 2)使用LDR指令读取该全局变量的内存地址,通常该全局变量的内存地址存放在程序的数据缓冲池中; 3)根据该数据类型,使用相应的LDR指令读取该全局变量的值,使用相应的STR指令修改该全局变量的值。
3.12程序设计:
使用LDR指令读取0某40003100上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。
然后再次读取0某40003100上的数据,将数据加1,判断结果是否小于10……周而复始循环。
程序设计如下:
_START:
MAIN:
LDRR0,=0某40003100LDRR1,[R0]ADDR1,R1,#1MOVR2,#10SUBSR3,R1,R2MOVLTR3,#0STRR3,[R0]BMAIN第4章4.1S5PV210微处理器是哪种封装形式?
这种封装有什么优缺点?
S5PV210芯片是584引脚的FCFBGA封装,引脚间距0.65mm,体积为17某17mm。
FCFBGA封装既能容纳较多的管脚,又能保证管脚间距,具有良好的电气性能。
但是对焊装的要求很高,无法手工焊装。
4.2S5PV210微处理器有多少个GPIO端口?
有多少GPIO引脚?
S5PV210微处理器有35组GPIO端口,237个GPIO引脚。
4.3如何对复用的GPIO引脚进行配置?
通过设置该引脚所属组的端口控制寄存器的相应位进行配置其功能,例如GPA0组的第一个端口作为输入端口则只需要将GPA0CON的0-3位设置为0000即可。
寄存器具体地址以及相应位可以查询芯片手册。
4.4端口上拉寄存器的功能是什么何种情况下需要上拉端口上拉寄存器控制了每个端口的上拉电阻的允许/禁止; 当引脚端口作为输入端口时,需要上拉,用于检测低电平信号。
4.5如何在C程序中给32位的寄存器中的某几位置1而不影响其他位的值用位或和移位操作实现,例如将32位整型数据的a位、b位(a、b为整常量)置1,可参考以下代码:
某|=(1< 某&=~(1< 可以通过位与操作判断,例如判断a位是否为1示例如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARMcotexA8 嵌入式 原理 系统 设计 习题 答案