嵌入式-考试复习题
- 格式:doc
- 大小:436.00 KB
- 文档页数:14
嵌入式试题及答案一、单项选择题(每题2分,共20分)1. 嵌入式系统是指:A. 具有特定功能的计算机系统B. 只运行单一任务的计算机系统C. 可以运行多个操作系统的计算机系统D. 以上都不是2. 下列哪项不是嵌入式系统的典型特征?A. 实时性B. 可扩展性C. 资源受限D. 专用性3. 嵌入式系统中,通常使用哪种类型的处理器?A. 通用处理器B. 精简指令集处理器(RISC)C. 复杂指令集处理器(CISC)D. 以上都是4. 在嵌入式系统中,操作系统的作用是什么?A. 管理计算机硬件资源B. 提供用户界面C. 执行所有程序D. 以上都不是5. 以下哪个不是嵌入式操作系统?A. LinuxB. WindowsC. VxWorksD. QNX6. 嵌入式系统的硬件设计通常需要考虑哪些因素?A. 成本B. 功耗C. 尺寸D. 所有以上7. 以下哪个是嵌入式系统的通信接口?A. USBB. HDMIC. VGAD. 所有以上8. 嵌入式系统中的中断处理机制主要用于:A. 程序调试B. 系统启动C. 任务调度D. 错误检测9. 以下哪个不是嵌入式系统的应用领域?A. 工业控制B. 消费电子C. 桌面计算D. 汽车电子10. 嵌入式系统的开发流程通常包括哪些阶段?A. 需求分析B. 系统设计C. 编码与测试D. 所有以上答案:1. A2. B3. B4. A5. B6. D7. D8. C9. C10. D二、多项选择题(每题3分,共15分)11. 嵌入式系统设计时需要考虑的非功能性需求包括:A. 性能B. 可靠性C. 安全性D. 可维护性12. 以下哪些是嵌入式系统开发中的编程语言?A. CB. C++C. JavaD. Python13. 在嵌入式系统中,哪些因素会影响系统的功耗?A. 处理器的运行频率B. 内存的使用量C. 外设的使用D. 所有以上14. 嵌入式系统的软件架构通常包括:A. 硬件抽象层B. 操作系统内核C. 设备驱动程序D. 应用程序15. 以下哪些是嵌入式系统的调试工具?A. 逻辑分析仪B. 仿真器C. 调试器D. 编译器答案:11. ABCD12. ABC13. D14. ABCD15. ABC三、简答题(每题5分,共10分)16. 简述嵌入式系统的实时性要求。
嵌入式考试题
一、选择题
1. 下列哪种不是嵌入式系统的特点?
A. 实时性
B. 高可靠性
C. 批量生产
D. 低功耗
2. 嵌入式系统中常用的处理器是?
A. Intel i7
B. ARM Cortex
C. AMD Ryzen
D. NVIDIA GeForce
3. 下列哪种不是嵌入式系统常用的操作系统?
A. Linux
B. Android
C. Windows
D. FreeRTOS
4. 嵌入式系统中常用的编程语言是?
A. Java
B. C++
C. Python
D. HTML
5. 以下哪种外设不能算作嵌入式系统的外设?
A. LCD显示屏
B. 小键盘
C. 摄像头
D. 鼠标
二、简答题
1. 什么是嵌入式系统?举例说明。
2. 嵌入式系统的设计流程包括哪些步骤?简要描述。
3. 什么是实时系统?嵌入式系统中为什么需要实时性?
4. 解释嵌入式系统中的中断处理机制。
5. 介绍一种常用的嵌入式系统开发工具及其功能。
三、计算题
1. 假设嵌入式系统中有一个定时器中断,中断间隔为10ms,如果在中断服务程序中运行一个函数需要5ms,问系统能否满足实时性要求?
2. 假设一个嵌入式系统的主频为50MHz,要求其通过串口发送一个100字节的数据包,波特率为9600bps,计算发送该数据包需要多长时间?
3. 假设一个嵌入式系统的Flash存储器容量为512MB,每个数据包大小为1KB,存储器可擦写次数为10000次,计算该存储器的寿命能够支持多少次数据包的写入操作?
以上为嵌入式考试题,请根据题目要求完成题目。
嵌入式考试试卷嵌入式系统原理与应用考试时间:120分钟一、选择题(每题2分,共20分)1. 嵌入式系统通常是指:A. 具有嵌入式操作系统的计算机系统B. 一种只能运行单一程序的计算机系统C. 一种具有实时性的计算机系统D. 一种可以运行多种应用程序的计算机系统2. 下列哪个不是嵌入式系统的特点:A. 资源受限B. 实时性C. 可扩展性D. 专用性3. 嵌入式操作系统与通用操作系统的主要区别在于:A. 嵌入式操作系统更复杂B. 嵌入式操作系统通常需要更少的资源C. 嵌入式操作系统可以运行在任何计算机上D. 嵌入式操作系统不提供多任务处理4. 以下哪个不是嵌入式系统开发中常用的编程语言:A. CB. C++C. JavaD. Pascal5. 嵌入式系统中的中断处理机制主要用于:A. 节省CPU资源B. 实现多任务处理C. 提高系统的实时性D. 增强系统的安全性二、填空题(每空1分,共10分)1. 嵌入式系统是一种专用的计算机系统,它是为了满足______的应用需求而设计的。
2. 嵌入式系统的核心是______,它控制着整个系统的运行。
3. 嵌入式系统的I/O设备包括______、______、______等。
4. 嵌入式系统的开发流程通常包括需求分析、系统设计、______、______、系统集成和测试等阶段。
5. 嵌入式系统的调试工具通常包括______、______和仿真器。
三、简答题(每题10分,共20分)1. 简述嵌入式系统与通用计算机系统的区别。
2. 描述嵌入式系统开发中软件和硬件的协同设计的重要性。
四、计算题(每题15分,共30分)1. 假设一个嵌入式系统的任务调度采用固定优先级调度算法,有四个任务A、B、C、D,它们的执行时间分别为10ms、20ms、30ms和40ms,优先级分别为1、2、3、4。
计算在没有其他任务干扰的情况下,任务D的响应时间和CPU利用率。
2. 给定一个嵌入式系统的内存地址空间为0x0000到0xFFFF,计算该系统的最大内存容量,并说明如何计算。
嵌入式系统考试试题及答案一、选择题1、嵌入式系统是指哪些设备?A.智能手机B.平板电脑C.个人电脑D.所有电子设备答案:D.所有电子设备解释:嵌入式系统是指嵌入在其它设备中的小型计算机系统,它们通常具有特定的功能和用途,例如控制机械、电子设备等。
因此,所有电子设备都可以看作是嵌入式系统的一种。
2、嵌入式系统的主要特点是什么?A.体积小B.功耗低C.处理能力强D.以上都是答案:D.以上都是解释:嵌入式系统通常具有体积小、功耗低、处理能力强等特点,这些特点使得它们能够适应各种不同的应用场景。
3、下面哪个不是嵌入式系统的应用?A.手机语音助手B.智能家居控制C.汽车发动机控制D.超级计算机答案:D.超级计算机解释:超级计算机是一种大型计算机系统,主要用于科学计算、数据分析等高性能计算领域,与嵌入式系统的应用场景不同。
4、嵌入式系统开发需要哪些技能?A.硬件设计B.软件编程C.系统集成D.以上都是答案:D.以上都是解释:嵌入式系统开发需要具备硬件设计、软件编程和系统集成等技能,因为嵌入式系统需要与具体的硬件设备进行交互,同时需要进行软件编程来实现特定的功能。
5、下面哪个是嵌入式系统开发的主要语言?A. C语言B. C++语言C. Java语言D. Python语言答案:A. C语言解释:C语言是嵌入式系统开发的主要语言之一,因为它具有高效的性能和直接访问硬件的能力,适合用于编写嵌入式系统的底层代码。
嵌入式系统是现代电子技术中非常重要的一部分,它们广泛用于各种领域,如工业控制、智能家居、医疗设备等。
因此,学习嵌入式系统的知识对于电子工程专业的学生来说是非常重要的。
在这里,我们提供了一些嵌入式系统期末考试的题目和答案,以帮助学生们更好地理解嵌入式系统的基本概念和原理。
解释:嵌入式系统通常具有小型化、快速化和智能化的特点,而巨型化并不是嵌入式系统的特点。
解释:嵌入式系统通常使用低级编程语言,如C语言和汇编语言,而Python语言通常用于高级编程和脚本编写,并不是嵌入式系统常用的编程语言。
嵌入式考试题库及答案一、单项选择题(每题2分,共20分)1. 在嵌入式系统中,通常采用哪种类型的处理器?A. 通用处理器B. 精简指令集处理器(RISC)C. 复杂指令集处理器(CISC)D. 专用处理器答案:B2. 以下哪个不是嵌入式系统的典型特点?A. 实时性B. 可扩展性C. 资源受限D. 专用性答案:B3. 在嵌入式系统中,以下哪个不是常用的存储介质?A. ROMB. RAMC. 硬盘D. Flash答案:C4. 嵌入式操作系统与通用操作系统的主要区别是什么?A. 嵌入式操作系统更复杂B. 嵌入式操作系统更简单,资源占用少C. 嵌入式操作系统价格更高D. 嵌入式操作系统运行速度更快答案:B5. 以下哪个不是嵌入式系统的应用领域?A. 消费电子B. 工业控制C. 航空航天D. 办公自动化答案:D6. 在嵌入式系统中,通常使用哪种类型的编程语言?A. 汇编语言B. 高级语言C. 机器语言D. 以上都是答案:D7. 以下哪个不是嵌入式系统的开发工具?A. 编译器B. 调试器C. 项目管理软件D. 文字处理软件答案:D8. 在嵌入式系统中,以下哪个不是常用的通信协议?A. TCP/IPB. USARTC. I2CD. USB答案:D9. 嵌入式系统的功耗通常与什么因素有关?A. 处理器速度B. 存储容量C. 系统复杂度D. 以上都是答案:D10. 以下哪个不是嵌入式系统的开发流程?A. 需求分析B. 系统设计C. 编码实现D. 产品发布答案:D二、多项选择题(每题3分,共15分)1. 嵌入式系统的开发过程中,以下哪些是必须考虑的因素?A. 系统性能B. 成本控制C. 系统安全性D. 用户体验答案:ABCD2. 在嵌入式系统中,以下哪些是常见的输入设备?A. 触摸屏B. 键盘C. 鼠标D. 传感器答案:ABD3. 以下哪些是嵌入式系统开发中常用的软件工具?A. 集成开发环境(IDE)B. 版本控制系统C. 项目管理工具D. 数据库管理系统答案:ABC4. 在嵌入式系统中,以下哪些是常见的输出设备?A. 显示器B. 扬声器C. 打印机D. LED灯答案:ABD5. 嵌入式系统的测试通常包括哪些方面?A. 功能测试B. 性能测试C. 安全性测试D. 稳定性测试答案:ABCD三、填空题(每题2分,共20分)1. 嵌入式系统通常由、、和四个部分组成。
大学嵌入式试题及答案一、选择题(每题2分,共20分)1. 在嵌入式系统中,通常使用哪种类型的处理器?A. 通用处理器B. 专用处理器C. 微处理器D. 服务器处理器答案:C2. 下列哪个选项不是嵌入式系统的特点?A. 体积小B. 功能专一C. 价格昂贵D. 可靠性高答案:C3. 嵌入式操作系统与通用操作系统的主要区别是什么?A. 嵌入式操作系统体积更小B. 嵌入式操作系统功能更全C. 嵌入式操作系统价格更贵D. 嵌入式操作系统更复杂答案:A4. 在嵌入式系统中,以下哪个不是常用的编程语言?A. C语言B. C++C. JavaD. Assembly5. 嵌入式系统中的实时操作系统(RTOS)的主要功能是什么?A. 提供图形用户界面B. 提供网络服务C. 管理任务调度和时间D. 管理文件系统答案:C6. 以下哪个不是嵌入式系统的应用领域?A. 工业控制B. 消费电子C. 航空航天D. 传统PC答案:D7. 在嵌入式系统中,中断服务程序的作用是什么?A. 处理用户输入B. 处理系统错误C. 响应外部事件D. 执行任务调度答案:C8. 以下哪个不是嵌入式系统开发过程中的常用工具?A. 编译器B. 调试器C. 编辑器D. 虚拟机答案:D9. 在嵌入式系统中,以下哪个不是常用的存储介质?B. FlashC. 硬盘D. SRAM答案:C10. 嵌入式系统的功耗通常与以下哪个因素无关?A. 处理器的运行频率B. 系统的复杂度C. 存储介质的类型D. 软件的优化程度答案:B二、填空题(每题2分,共20分)1. 嵌入式系统的______是指系统能够按照预定的时间或顺序完成预定的功能。
答案:实时性2. 在嵌入式系统中,______是指系统在没有操作系统的情况下,直接运行应用程序。
答案:裸机运行3. 嵌入式系统的______是指系统在设计时就确定的,不可更改的特性。
答案:封闭性4. 嵌入式系统的______是指系统在特定环境下,能够稳定运行的能力。
1、在嵌入式系统中,以下哪个组件负责执行程序指令?
A. 内存
B. 中央处理器(CPU)
C. 输入/输出设备
D. 存储设备(答案:B)
2、以下哪种类型的存储器在掉电后会丢失数据?
A. SRAM
B. DRAM
C. Flash ROM
D. EEPROM(答案:B)
3、在嵌入式系统设计中,I2C总线主要用于什么类型的通信?
A. 高速数据传输
B. 低速串行通信
C. 并行数据传输
D. 高频信号处理(答案:B)
4、下列哪个协议是用于网络通信,特别是嵌入式设备与互联网之间的通信?
A. SPI
B. I2C
C. TCP/IP
D. UART(答案:C)
5、在嵌入式Linux系统中,Bootloader的主要作用是?
A. 加载并启动操作系统内核
B. 提供图形用户界面
C. 管理系统文件
D. 执行应用程序(答案:A)
6、以下哪种编程语言常用于嵌入式系统的底层开发?
A. Python
B. Java
C. C/C++
D. JavaScript(答案:C)
7、在嵌入式系统中,中断的作用是什么?
A. 提高系统处理速度
B. 使系统进入低功耗模式
C. 允许CPU在处理其他任务时响应外部事件
D. 增加系统内存(答案:C)
8、下列哪项技术不是用于降低嵌入式系统功耗的?
A. 睡眠模式
B. 动态电压和频率调整(DVFS)
C. 增加处理器核心数量
D. 定时唤醒机制(答案:C)。
嵌入式期末考试卷十套嵌入式系统期末考试卷一、选择题(每题2分,共20分)1. 嵌入式系统通常是指:A. 用于嵌入式应用的软件B. 运行在嵌入式设备上的操作系统C. 一种小型的计算机系统,用于控制或监视设备D. 一种大型的计算机系统,用于复杂的数据处理2. 下列哪项不是嵌入式系统的特点:A. 可扩展性B. 实时性C. 资源受限D. 专用性3. 嵌入式操作系统(RTOS)的主要功能不包括:A. 任务调度B. 内存管理C. 文件系统管理D. 网络通信4. 以下哪个不是嵌入式系统中的编程语言:A. CB. C++C. JavaD. Python5. 在嵌入式系统中,中断服务程序(ISR)的主要作用是:A. 执行系统初始化B. 处理系统异常C. 响应外部事件D. 执行定时任务6. 以下哪个不是嵌入式系统开发过程中的步骤:A. 需求分析B. 系统设计C. 硬件选型D. 软件测试7. 在嵌入式系统中,固件通常指的是:A. 硬件B. 软件C. 介于硬件和软件之间的程序D. 操作系统8. 以下哪个是嵌入式系统开发中常用的硬件描述语言:A. VHDLB. HTMLC. XMLD. SQL9. 在嵌入式系统中,看门狗定时器的主要作用是:A. 监控系统时间B. 监控系统温度C. 监控系统电源D. 监控系统运行状态,防止死锁10. 以下哪个是嵌入式系统中的存储设备:A. RAMB. ROMC. 硬盘D. 显示器二、填空题(每空1分,共10分)1. 嵌入式系统的核心是______,它负责协调和管理整个系统。
2. 嵌入式系统软件通常由______、应用程序和设备驱动程序组成。
3. 嵌入式系统中的中断优先级是指中断服务程序的______。
4. 嵌入式系统中,______是一种常见的通信协议,用于设备间的通信。
5. 在嵌入式系统中,______是一种用于存储程序和数据的非易失性存储器。
6. 嵌入式系统中的______是用于控制和管理硬件资源的软件。
嵌入式系统基础知识考试(答案见尾页)一、选择题1. 嵌入式系统的核心是什么?A. 中央处理器(CPU)B. 内存(RAM)C. 输入输出设备D. 操作系统和软件2. 嵌入式系统的显著特点包括:A. 低功耗B. 高性能C. 可定制性D. 上下文感知3. 在嵌入式系统中,通常使用哪种编程语言进行开发?A. 汇编语言B. C语言C. JavaD. Python4. 嵌入式系统通常用于哪些领域?A. 消费电子产品B. 工业控制系统C. 汽车电子D. 以上都是5. 下列哪个不是嵌入式系统的组成部分?A. 微控制器(MCU)B. 存储器C. 显示屏D. 键盘和鼠标6. 在嵌入式系统设计中,硬件和软件是如何相互作用的?A. 硬件负责数据处理和控制,软件负责程序执行和用户交互。
B. 软件负责硬件管理,硬件负责数据存储和处理。
C. 硬件和软件完全独立,互不干扰。
D. 硬件和软件相互依赖,共同工作。
7. 嵌入式系统中的实时性是指什么?A. 系统能够在预定时间内响应外部事件。
B. 系统能够处理大量数据。
C. 系统具有高度可扩展性。
D. 系统具有高可靠性。
8. 在嵌入式系统开发过程中,调试是一个重要环节。
常用的调试方法有哪些?A. 使用调试器B. 使用打印语句C. 使用模拟器D. 以上都是9. 嵌入式系统的低功耗设计通常涉及哪些方面?A. 选择低功耗的微处理器B. 优化代码以减少能耗C. 使用高效的电源管理模块D. 以上都是10. 在嵌入式系统应用中,如何确保系统的安全性和可靠性?A. 使用高质量的组件和材料B. 定期进行系统更新和维护C. 实施严格的安全措施,如防火墙和加密技术D. 以上都是11. 嵌入式系统的基本工作原理是什么?A. 单任务处理B. 多任务处理C. 实时处理D. 分布式处理12. 嵌入式系统的硬件通常包括哪些组件?A. CPU、内存、I/O设备B. CPU、内存、操作系统C. CPU、内存、软件D. CPU、内存、网络接口卡13. 下列哪个不是嵌入式系统的特点?A. 低功耗B. 高性能C. 紧凑的存储空间D. 可靠性高14. 在嵌入式系统中,常用的操作系统有哪些?A. Windows CEB. LinuxC. VxWorksD. all of the above15. 嵌入式系统中的软件通常分为哪几类?A. 系统软件和应用软件B. 驱动程序、中间件和应用软件C. 系统软件、中间件和应用软件D. 操作系统、驱动程序和应用软件16. 在嵌入式系统的开发过程中,常用的编程语言有哪几种?A. CB. C++C. JavaD. Python17. 嵌入式系统在智能家居中的应用有哪些?A. 智能家电控制B. 安全监控C. 能源管理D. 上述所有18. 在设计嵌入式系统时,需要考虑的主要因素有哪些?A. 性能、成本、可用性B. 成本、功耗、安全性C. 性能、功耗、安全性D. 性能、成本、安全性19. 嵌入式系统的特点是?A. 高度集成B. 高速运行C. 易于维护D. 以上都是20. 嵌入式系统中的“嵌入式”一词指的是什么?A. 系统可以嵌入其他系统中B. 系统可以独立运行C. 系统体积小,适合嵌入其他设备中D. 系统对外部环境敏感21. 在嵌入式系统中,哪种类型的存储器通常用于存储程序和数据?A. 随机存取存储器(RAM)B. 只读存储器(ROM)C. 闪存(Flash Memory)D. 硬盘驱动器(HDD)22. 嵌入式系统开发中常用的编程语言有哪几种?A. C语言B. C++C. JavaD. Python23. 在嵌入式系统设计中,硬件和软件的协同工作是非常重要的。
一、填空题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。
1、一般而言,嵌入式系统的构架可以分为4个部分:分别是(处理器)、存储器、输入/输出和软件,一般软件亦分为操作系统相关和(应用软件)两个主要部分。
2、根据嵌入式系统使用的微处理器,可以将嵌入式系统分为嵌入式微控制器, (嵌入式微处理器),(嵌入式DSP处理器)以及片上系统。
3、操作系统是联接硬件与应用程序的系统程序,其基本功能有(进程管理)、进程间通信、(内存管理)、I/O资源管理。
4、从嵌入式操作系统特点可以将嵌入式操作系统分为(实时操作系统)和分时操作系统,其中实时系统亦可分为(硬实时操作系统)和软实时系统。
5、内核负责管理各个任务,或者为每个任务分配CPU时间,并且负责任务之间的(通信),内核的基本服务是(任务切换)。
6、嵌入式开发一般采用(宿主机/目标机)方式,其中宿主机一般是指( PC机/台式机)。
7、哈佛体系结构数据空间和地址空间(分开),ARM7TDMI 采用(冯诺依曼体系)的内核架构。
二、选择题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。
1、要使CPU能够正常工作,下列哪个条件不是处理器必须满足的。
( D )(A) 处理器的编译器能够产生可重入代码(B)在程序中可以找开或者关闭中断(C) 处理器支持中断,并且能产生定时中断(D)有大量的存储空间 2、下面哪种操作系统最方便移植到嵌入式设备中。
( D )(A) DOS(B)UNIX(C) Windows xp (D)LINUX在CPU中,__(3)__可用于传送和暂存用户数据,为ALU 执行算术逻辑运算提供工作区。
(3)A. 程序计数器 B. 累加寄存器 C. 程序状态寄存器 D. 地址寄存器●关于在I/O 设备与主机间交换数据的叙述,“__(4)__”是错误的。
(4)A. 中断方式下,CPU 需要执行程序来实现数据传送任务 B. 中断方式和DMA 方式下,CPU 与I/O 设备都可同步工作C. 中断方式和DMA 方式中,快速I/O 设备更适合采用中断方式传递数据D. 若同时接到DMA 请求和中断请求, CPU 优先响应DMA 请求●关于校验方法,“__(5)__ ”是正确的。
第一章 嵌入式系统概述嵌入式系统组成嵌入式系统一般由硬件和软件两部分组成,硬件通常包含嵌入式微处理器、存储器和外围接口电路,软件通常由引导程序、操作系统和应用程序组成。
嵌入式微控制器MCU,又称单片机,将整个计算机系统集成到一块芯片中,以微处理器内核为核心,芯片内部集成ROM/EPROM 、RAM 、Flash 、总线、总线逻辑、定时/计数器、WatchDog 、I/O 、串行口、脉宽调制输出、A/D 、D/A 等各种必要的功能模块。
例如:8051系列;汉芯16位DSP 芯片嵌入式微处理器EMPU ,将微处理器装配在专门设计的电路板上,只保留与嵌入式应用有关的功能,在工作温度、抗电磁干扰、可靠性等方面表现优越。
嵌入式微处理器体积小、重量轻、成本低和可靠性高,电路板上必须包括ROM 、RAM 、总线接口和各种外设等器件。
嵌入式微处理器及其存储器、总线和外设等安装在一块电路板上,也被称为单板计算机。
例如:ARM 系列芯片SAMSUNGS2C440BOX系统引导程序(BootLoader )是系统上电后首先运行的第一段代码,它是嵌入式系统中的重要组成部分。
在嵌入式系统中,没有像BIOS 那样的器件,系统的启动由BootLoader 来完成。
BootLoader 在系统上电或复位时从地址0x00000000处开始执行,初始化硬件设备,建立内在空间映射,配置软硬件环境,将控制权交给操作系统,最后启动操作系统。
常用的嵌入式操作系统平台有:(1)Linux (2)Windows CE (3)μC/OS-Ⅱ (4)VxWorks软件系统硬件系统图1-1嵌入系统的组成第二章 ARM体系结构处理器工作状态和工作模式工作状态切换从ARM状态进入Thumb状态:(1)当操作数寄存器的状态位为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换至Thumb状态;(2)当处理器处于Thumb状态时发生异常,如IRQ、FIQ、UNDEF、ABORT、SWI等,则异常处理返回时,自动切换到Thumb状态;从Thumb状态进入ARM状态:(1)当操作数寄存器的状态位为0时,执行BX指令可以使微处理器从Thumb状态切换到ARM状态;(2)在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态;处理器工作模式ARM体系结构支持7种工作模式,分别是:Ø用户模式(usr)Ø快速中断模式(fiq)Ø外部中断模式(irq)Ø管理模式(svc)Ø数据访问终止模式(abt)Ø系统模式(sys)Ø未定义指令中止模式(und)ARM处理器的当前工作模式是在当前程序状态寄存器,也就是CPSR的低5位中定义的。
除用户模式外,其余的六种模式称为非用户模式或特权模式,除用户模式和系统模式外的五种又称为异常模式,常用于处理中断、异常、以及需要访问受保护的系统资源等。
ARM处理器异常:所谓异常就是说正在执行的程序突然发生短暂的停止,当前处理器状态已得到保护,异常处理完成后,当前的程序还可以继续执行。
处理器允许多个异常同时发生,它们将按固定的优先级进行处理。
异常发生过程异常的发生过程用简单的几句话概括就是:程序在运行时遇到了中断,则停下当前的程序去执行中断程序;当执行完中断程序时,自动返回到原来程序运行的过程。
当异常发生的时候会经历以下过程:(1)将下一条指令的地址存入相应的连接寄存器中(2)复制CPSR到相应的SPSR。
(3)根据异常类型,强制设置CPSR的运行模式位。
(4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
ARM处理器中共有37个32位寄存器R14也称作子程序连接寄存器或连接寄存器LR。
当执行子程序调用指令时,R14中存放返回地址R15(PC)的备份。
寄存器R15用作程序计数器ARM程序状态寄存器所有操作模式下均可以访问当前的程序状态寄存器CPSR(1)条件代码标志(了解)N、Z、C、V均为条件码标志位。
可根据算术或逻辑运算的结果改变,也可通过MSR和LDM指令进行设置,并且可用来作为一些指令是否运行的检测条件。
如果指令带S后缀,则会修改条件代码标志,也有一些指令总是改变条件标志。
N:N=1表示运算结果为负;N=0运算结果为正数或零;Z:Z=1表示运算结果为零;Z=0表示运算结果为非零;C:可以有几种方法设置C的值:加法运算,结果有进位时,C=1,否则C=0;减法运算,结果有借位C=1,否则C=0;移位操作指令,C为移出值的最后一位;V:溢出标志,加减运算指令,运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出;对于其他非加/减运算指令,V的值通常不改变。
(2)控制位(了解)CPSR的低8位称为控制位,发生异常时可以被改变,如果处理器运行特权模式,这些位也可以由程序修改。
I:中断禁止位,I=1表示禁止IRQ中断。
F:中断禁止位,F=1表示禁止FIQ中断。
T:反映处理器的运行状态,对于ARM体系结构v5及以上版本的T系列处理器,当该位为1时,处理器执行于Thumb状态,否则执行于ARM状态。
注意软件绝不能改变CPSR的T位状态。
数据类型与存储格式在大端格式中,地址为A的字单元包括字节单元A、A+1、A+2、A+3,其中字节单元有高位到低位字节顺序为A、A+1、A+2、A+3;地址为A的字单元包括半字单元A、A+2,其中半字单元有高位到低位字节顺序位A,A+2;地址为A的半字单元包括字节单元A、A+1,其中字节单元有高位到低位字节顺序为A、A+1。
在小端格式中,地址为A的字单元包括字节单元A、A+1、A+2、A+3,其中字节单元有高位到低位字节顺序为A+3、A+2、A+1、A;地址为A的字单元包括半字单元A、A+2,其中半字单元有高位到低位字节顺序位A+2、A;地址为A的半字单元包括字节单元A、A+1,其中字节单元有高位到低位字节顺序为A+1、A。
例:32位立即数0x87524861分别采用大端格式和小端格式存放在地址0x900100处,则其在内存中的分布情况如何?解:大端格式:小端格式:第三章 ARM指令系统ARM指令寻址方式1.立即数寻址立即数寻址也称为立即寻址,指令地址码就是操作数本身。
立即数在指令中要以“#”为前缀,十六进制表示的立即数,“#”后面跟“0x”或“&”;二进制表示的立即数,“#”后面加上“0b”;十进制表示的立即数,“#”后面加上“0d”或缺省。
例如: MOV R1,#0x01;2.寄存器寻址寄存器寻址方式,把寄存器中的数值作为操作数,指令执行时直接取出寄存器值进行操作。
该寻址方式是一种执行效率较高的寻址方式。
例如:MOV R1,R2 ;R1←R2ADD R0,R1,R2 ;R0 ←R1+R23.寄存器移位寻址寄存器移位寻址是操作数由寄存器的值做相应移位而得到,移位的方式在指令中以助记符的形式给出,而移位的位数可用立即数或寄存器寻址方式表示。
例如:ADD R0,R1,R2,LSL #1; R2的值向左移一位,所得的值与R1加,结果存入R0MOV R0,R1,LSL R3; 将R1中的值向左移位,移位次数由R3中的值决定,结果存入R0中。
移位操作在ARM 指令集中不作为单独的指令使用,ARM 指令集共有5种位移操作: LSL 逻辑左移,寄存器中字的低位空出位补0; LSR 逻辑右移,寄存器中字的高位空出位补0;ASR 算术右移,移位过程中保持符号位不变,即若源操作数为正数,则字的高位空出位补0,否则补1; ROR 循环右移,由字的低位移出位填入字的高位空出位;RRX 带扩展的循环右移,操作数右移一位高位空出位用原C 标志值填充;4.寄存器间接寻址寄存器间接寻址是指操作数放在存储单元中,地址又是通过寄存器给出的,即寄存器为操作数的地址指针。
ARM 的传送指令都是基于寄存器的间接寻址,即通过Load/Store 完成对数据的传送操作。
例如:LDR R0,[R4]; R0←[R4] 5.基址加偏移寻址基址加偏移寻址也称为变址寻址,将基址寄存器的值与指令中给出的偏移量相加,形成操作数的有效地址。
基址寻址用于访问基址附近的存储单元,常用于查表、数据操作及功能部件寄存器访问等。
变址寻址方式可分为前变址、自动变址和后变址寻址方式。
(1)前变址模式 LDR R1,[R2,#05] ; 基址寄存器R2的值+5后所指向的存储单元的值送到寄存器R1 (2)自动变址模式LDR R0,[R1,#4]! ;R0←mem32[R1+4],R1←R1+4叹号表示在完成数据传送后将更新基址寄存器的值,更新的方式是每执行完一次操作基址寄存器自动加上前变址的字节数。
(3)后变址模式LDR R0,[R1],#4 ;R0←mem32[R1] ,R1←R1+4不再需要叹号,因为立即数偏移量的唯一用途是作为基址寄存器的修复量。
(4)偏移地址LDR R0,[R1,R2] ;R0←mem32[R1+R2]6.多寄存器寻址一条指令可以完成多个寄存器值的传送,一次最多可传16个通用寄存器的值。
例:LDMIA R0!,{R1-R4} ;R1←[R0] R2←[R0+4] R3←[R0+8]、R4←[R0+12]指令中后缀IA表示在每次完成加载操作后,R0按字长度增加,因此可将连续存储单元的值传送到R1-R4。
7.堆栈寻址堆栈是一块用于保存数据的连续内存,是按后进先出的原则存取数据的存储区。
指向堆栈的地址寄存器称为堆栈指针SP,堆栈的访问是通过堆栈指针控制的,指针所指向单元是栈顶。
在ARM指令中,堆栈寻址通过Load/Store指令来实现。
例如:STMFD SP!,{R1-R7,LR};将R1~R7,LR入栈,满递减堆栈LDMFD SP!,{R1-R7,LR};数据出栈,放入R1~R7,LR寄存器在Thumb指令中,堆栈寻址通过PUSH/POP指令来实现。
例如:PUSH {R1-R7,LR} ;将R1~R7,LR入栈POP {R1-R7,PC} ;数据出栈,放入R1~R7,PC寄存器8.相对寻址相对寻址是基址寻址的一种变通方式,与基址寻址方式基本相似。
相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到的操作数的有效地址。
例如:BL NEXT ;跳转到子程序NEXT处执行…NEXT MOV R0,#1…MOV PC,LR ;从子程序返回…9.块复制寻址块复制寻址可实现连续地址数据从存储器的某一位置到另一位置。
例如:STMIA R0!,{R1~R7};将R1~R7的数据保存到存储器中。
存储指针在保存第一个值后增加,增加方向为向上增长STMIB R0!,{R1~R7};将R1~R7的数据保存到存储器中。