嵌入式系统设计与开发(章坚武)ZXM0909练习题目
部分习题答案-嵌入式系统设计与应用(第2版)-王剑-清华大学出版社

第二章7. 若内存按字节编址,用存储容量为8K*8比特的存储器芯片构成地址编号A0000H~DFFFFH的内存空间,则至少需要多少片。
本题考查内存容量的计算。
给定起、止地址码的内存容量=终止地址–起始地址+1。
将终止地址加1等于E0000H,再减去起始地址,即E0000H–A0000H=40000H。
十六进制的(40000)16=218。
组成内存储器的芯片数量=内存储器的容量/单个芯片的容量。
218/(8*210)=218/213=258. 下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码。
__interrupt double xyz (double r){double xyz= PI * r * r;printf("\nArea = %f", xyz);return xyz;}ISR 不能返回一个值。
ISR 不能传递参数。
在ISR中做浮点运算是不明智的。
printf()经常有重入和性能上的问题9. 在某工程中,要求设置一绝对地址为0x987a的整型变量的值为0x3434。
编译器是一个纯粹的ANSI编译器。
写代码去完成这一任务。
•i nt *ptr;ptr = (int *)0x987a;*ptr = 0x3434;第五章1.在一个单CPU的计算机系统中,采用可剥夺式(也称抢占式)优先级的进程调度方案,且所有任务可以并行使用I/O设备。
下表列出了三个任务T1、T2、T3的优先级和独立运行时占用CPU与I/O设备的时间。
如果操作系统的开销忽略不计,这三个任务从同时启动到全部结束的总时间为多少ms,CPU的空闲时间共有多少ms。
本题考查的是操作系统进程调度方面的知识。
可以按照如下的推理步骤进行分析,如:根据题意可知,三个任务的优先级T1>T2>T3,进程调度过程如下所示,分析如下。
t0时刻:进程调度程序选任务T1投入运行,运行12ms,任务T1占用I/O。
嵌入式系统设计师练习题及答案解析

嵌入式系统设计师练习题及答案第一套 (1)嵌入式系统设计师练习题及答案第二套 (5)嵌入式系统设计师练习题及答案第三套 (16)嵌入式系统设计师练习题及答案解析第四套 (27)嵌入式系统设计师练习题及答案解析第五套 (45)嵌入式系统设计师练习题及答案解析第六套 (59)嵌入式系统设计师练习题及答案解析第七套 (66)嵌入式系统设计师练习题及答案解析第八套 (75)嵌入式系统设计师练习题及答案解析第九套 (81)嵌入式系统设计师练习题及答案解析第十套 (90)嵌入式系统设计师练习题及答案解析第十一套 (99)嵌入式系统设计师练习题及答案解析第十二套 (106)嵌入式系统设计师练习题及答案解析第十三套 (115)嵌入式系统设计师练习题及答案解析第十四套 (126)嵌入式系统设计师练习题及答案解析第十五套 (138)嵌入式系统设计师练习题及答案解析第十六套 (153)嵌入式系统设计师练习题及答案解析第十七套 (159)嵌入式系统设计师练习题及答案解析第十八套 (167)嵌入式系统设计师练习题及答案解析第十九套 (176)嵌入式系统设计师练习题及答案解析第二十套 (188)嵌入式系统设计师练习题及答案解析第二十一套 (197)嵌入式系统设计师练习题及答案解析第二十二套 (211)嵌入式系统设计师练习题及答案第一套1、以下关于CPU的叙述中,错误的是A.CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制B.程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果C.CPU中的控制器决定计算机运行过程的自动化D.指令译码器是CPU控制器中的部件2、以下关于Cache的叙述中,正确的是A.在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素B.Cache的设计思想是在合理成本下提高命中率C.Cache的设计目标是容量尽可能与主存容量相等D.CPU中的Cache容量应大于cPu之外的Cache容量3、风险预测从两个方面评估风险,即风险发生的可能性以及A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果4、许多程序设计语言规定,程序中的数据都必须具有类型,其作用不包括A.便于为数据合理分配存储单元B.便于对参与表达式计算的数据对象进行检查C.便于定义动态数据结构D.使于规定数据对象的取值范围及能够进行的运算5、在计算机系统中,对程序员是透明的。
《嵌入式系统开发》习题答案

《嵌入式系统开发》习题习题11.什么是嵌入式系统?有何特点?答:嵌入式系统的概念有很多种,在嵌入式系统领域中比较认同的嵌入式系统的概念是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
嵌入式系统的特点:⑴嵌入式系统是将先进的计算机技术、半导体技术以及电子技术与各个行业的具体应用相结合的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
⑵系统内核小。
由于嵌入式系统一般是应用于小型电子装置中,系统资源相对有限,所以内核较之传统的操作系统要小得多。
⑶专用性强。
⑷系统精简。
⑸系统软件(OS)要求具有高实时性。
⑹嵌入式软件开发要走向标准化,需要使用多任务的操作系统。
⑺嵌入式系统本身并不具备在其上进行进一步开发的能力。
2.嵌入式系统可以分为几层?每一层各完成哪些功能?答:嵌入式系统由硬件层、中间层、软件层和功能层组成。
硬件层:以嵌入式微处理器为核心,存储器用以存储数据和执行代码,相关的设备接口和I/O接口,这些组成了一个嵌入式系统的基础,实现逻辑运算,算术运算等。
中间层:将系统上层软件和底层硬件进行分离,封装成标准的接口,在上层软件开发人员无需知道底层硬件的具体情况,完成的任务是底层硬件的初始化、数据的输入/输出操作、硬件的配置等功能。
软件层:主要由RTOS、文件系统、图形用户接口、网络系统和通用的组件模块组成,是软件开发的基础。
功能层:用来完成被控对象的控制功能。
3.嵌入式系统中硬件抽象层有什么特点?答:硬件抽象层是介于硬件层与软件层之间的中间层,它将系统上层软件与底层硬件分离开来,具有以下两个特点:⑴硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,硬件抽象层需要为操作系统提供操作和控制具体硬件的方法。
⑵操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。
嵌入式系统设计与开发(章坚武)ZXM0909第6章

第6章 嵌入式Linux系统的Boot Loader设计
通过集成开发环境可以将Boot Loader定位在复位地址开始 的存储空间内。如图6-2所示,用ADS集成开发工具中的ARM Linker设置选项定义RO Base为0x30200000,它的意思就是定 义了Boot Loader的入口地址,即ENTRY地址。因此,Boot Loader在系统加电后,操作系统内核或应用程序运行之前,首
必须有一个软件用来提供TFTP服务。
在讨论了Boot Loader的上述概念后,下面我们来具体看看 Boot Loader应该完成哪些任务。
11
第6章 嵌入式Linux系统的Boot Loader设计
6.2 基于S3C2410开发板的Boot Loader 的具体实现
6.2.1 系统启动流程的设计 系统加电复位后,所有的CPU都从复位地址上取指令。比 如,基于ARM920T或ARM7TDMI内核的CPU在复位时通常都 从地址0x00000000处取它的第一条指令。而以微处理器为核心 的嵌入式系统通常都有某种类型的固态存储设备(比如 EEPROM、Flash等)被映射到这个预先设置好的地址上,因此 在系统加电复位后,处理器将首先执行存放在复位地址处的程 序。
6
第6章 嵌入式Linux系统的Boot Loader设计
6.1.4 Boot Loader的启动过程 通常多阶段的Boot Loader能提供更为复杂的功能,以及更 好的可移植性。从固态存储设备上启动的Boot Loader大多都是 2阶段的启动过程,也即启动过程可以分为Stage 1和Stage 2两 部分。有关在Stage 1和Stage 2中具体完成哪些任务将在下面讨
置。也就是说,对于两块不同的嵌入式板而言,即使它们是基
嵌入式系统开发流程与实践试卷

嵌入式系统开发流程与实践试卷(答案见尾页)一、选择题1. 嵌入式系统的定义是什么?A. 一种专门用于特定任务的计算机系统B. 一种高度集成的计算机系统,具有实时性C. 一种可以独立运行的计算机系统D. 一种基于微处理器的计算机系统2. 嵌入式系统开发的主要步骤包括哪些?A. 系统需求分析B. 硬件平台设计C. 软件开发与调试D. 系统集成与测试E. 性能优化与评估3. 下列哪个不是嵌入式系统的特点?A. 实时性B. 可定制性C. 高度集成D. 易于维护4. 嵌入式系统的性能优化主要包括哪些方面?A. 代码优化B. 硬件优化C. 电源管理D. 系统调度E. 扩展性5. 在嵌入式系统开发中,实时性的重要性体现在哪些方面?A. 提高系统响应速度B. 降低系统功耗C. 增强系统稳定性D. 便于系统升级E. 提高系统兼容性6. 嵌入式系统设计师在开发过程中需要具备哪些技能?A. 编程语言能力(如C/C++)B. 计算机组成原理知识C. 嵌入式系统软硬件平台知识D. 系统集成与测试经验E. 项目管理能力7. 嵌入式系统的概念是什么?A. 一种专用计算设备,用于执行特定任务B. 一种通用计算机系统,适用于各种任务C. 一种高度集成的计算机系统,包含中央处理单元(CPU)、内存、外设等组件D. 一种基于微处理器的计算机系统8. 在嵌入式系统设计中,需求分析的目的是什么?A. 确定系统的功能和性能要求B. 编写代码C. 设计硬件和软件架构D. 测试系统9. 在嵌入式系统开发中,通常使用哪种编程语言?A. 汇编语言B. C语言C. JavaD. Python10. 嵌入式系统开发流程通常包括哪些阶段?A. 规划和需求分析B. 设计和编码C. 测试和调试D. 部署和维护11. 在嵌入式系统设计中,硬件设计的主要任务是?A. 实现软件功能B. 定义系统结构和组成部件C. 编写固件程序D. 连接和调试硬件组件12. 下列哪个不是嵌入式系统中常用的操作系统?A. LinuxB. Windows CEC. VxWorksD. μC/OS-II13. 在嵌入式系统测试中,常用的测试方法有哪些?A. 单元测试B. 集成测试C. 系统测试D. 性能测试14. 在嵌入式系统开发中,如何确保系统的可靠性和稳定性?A. 使用高质量的组件B. 优化代码和资源占用C. 进行充分的测试和验证D. 提供用户培训和支持15. 在嵌入式系统开发中,如何处理实时性和性能之间的权衡?A. 降低实时性要求以提高性能B. 提高实时性要求以适应应用需求C. 平衡实时性和性能,根据具体需求调整D. 无法确定16. 嵌入式系统设计的基本步骤包括哪些?A. 系统需求分析B. 硬件平台选择C. 软件开发与编程D. 系统集成与测试E. 性能优化与调试17. 在嵌入式系统开发中,硬件平台的选择应考虑哪些因素?A. 性能需求B. 功耗限制C. 可扩展性D. 成本预算E. 开发周期18. 下列哪项不是嵌入式系统开发中的关键环节?A. 系统架构设计B. 应用软件开发C. 硬件原型制作D. 产品生产与销售E. 测试与验证19. 在嵌入式系统开发过程中,软件开发与编程通常遵循哪种编程范式?A. 面向过程B. 面向对象C. 函数式编程D. 混合式编程E. 事件驱动20. 如何确定嵌入式系统的实时性?A. 根据任务截止时间判断B. 根据系统响应时间判断C. 根据处理速度判断D. 根据资源利用率判断E. 根据开发周期判断21. 在嵌入式系统测试与验证阶段,主要关注哪些方面?A. 功能测试B. 性能测试C. 兼容性测试D. 安全性测试E. 可靠性测试22. 嵌入式系统的可靠性评估通常涉及哪些指标?A. 平均无故障时间(MTBF)B. 故障率C. 可靠性开销D. 可维护性E. 可扩展性23. 在嵌入式系统开发中,如何有效地进行代码优化?A. 选择高效的算法和数据结构B. 减少循环次数和递归深度C. 使用编译器优化选项D. 采用并行处理技术E. 避免不必要的资源消耗24. 嵌入式系统开发团队通常包括哪些角色?A. 系统架构师B. 嵌入式软件工程师C. 硬件工程师D. 测试工程师E. 市场分析师25. 在嵌入式系统开发项目中,如何平衡功能性与成本效益?A. 优先考虑功能需求,忽略成本B. 优先考虑成本效益,忽略功能需求C. 平衡功能性和成本效益,根据项目需求进行权衡D. 由客户决定项目目标和优先级E. 由开发团队自行决定项目目标和优先级26. 在嵌入式系统设计中,硬件平台的选择应考虑哪些因素?A. 性能B. 功耗C. 成本D. 可扩展性E. 兼容性27. 下列哪项不是嵌入式系统软件开发中常用的编程语言?A. C语言B. JavaC. 汇编语言D. PythonE. JavaScript28. 在嵌入式系统的开发过程中,软件调试通常采用的方法有哪几种?A. 代码审查B. 单元测试C. 集成测试D. 调试器E. 虚拟仿真29. 关于嵌入式系统的测试,以下哪项描述是不正确的?A. 测试是为了发现软件中的错误B. 测试应该覆盖所有功能C. 测试可以在非生产环境中进行D. 测试应该尽可能模拟实际使用环境E. 测试结束后应立即修复所有发现的错误30. 在嵌入式系统开发中,如何确定硬件与软件的接口?A. 使用硬件描述语言(HDL)B. 编写硬件抽象层(HAL)C. 利用硬件接口标准D. 进行原型设计E. 依赖经验判断31. 嵌入式系统的可靠性设计主要关注哪些方面?A. 故障率B. 平均无故障时间(MTBF)C. 可靠性测试D. 系统恢复能力E. 扩展性32. 在嵌入式系统开发中,常使用的开发工具包括哪些?A. 集成开发环境(IDE)B. 仿真器C. 调试器D. 版本控制系统E. 系统集成工具33. 下列哪种设备不属于嵌入式系统中的输入设备?A. 键盘B. 显示器C. 麦克风D. 打印机E. 触摸屏34. 在嵌入式系统开发项目中,团队协作的关键因素包括哪些?A. 明确的沟通渠道B. 有效的任务分配C. 领导力D. 团队士气E. 技术培训35. 在嵌入式系统设计中,以下哪个不是必要的步骤?A. 系统需求分析B. 硬件设计D. 系统测试E. 用户界面设计36. 嵌入式系统通常用于哪些领域?A. 消费电子产品B. 工业控制系统C. 汽车电子D. 医疗设备E. 以上都是37. 在嵌入式系统开发中,硬件设计的主要任务包括哪些?A. 硬件平台选择B. 硬件电路设计C. 硬件组件选型D. 硬件调试E. 硬件编程38. 在嵌入式系统测试过程中,以下哪个不是常见的测试方法?A. 功能测试B. 性能测试C. 兼容性测试D. 易用性测试E. 安全性测试39. 在嵌入式系统设计中,如何确定硬件与软件的接口?A. 使用硬件描述语言(HDL)B. 利用硬件抽象层(HAL)C. 编写设备驱动程序D. 配置系统总线E. 以上都是40. 嵌入式系统开发中,软件调试通常采用什么工具?B. 集成开发环境(IDE)C. 仿真器D. 版本控制系统E. 以上都是41. 在嵌入式系统设计中,如何确保系统的可靠性和稳定性?A. 选择高质量的组件B. 进行严格的测试C. 设计时考虑故障容错D. 优化代码以减少资源消耗E. 以上都是42. 嵌入式系统开发中,如何有效地进行项目管理和时间规划?A. 使用项目管理软件B. 制定详细的项目计划C. 分配任务并设定截止日期D. 定期检查进度并调整计划E. 以上都是二、问答题1. 什么是嵌入式系统?请简述其特点。
2009嵌入式试卷带答案

A.GDB程序在宿主机上运行 B. 需要使用远程调试模式 C.需要交叉编译GDBServer D. 被调试程序在宿主机上运行 10. 下列属于常见的嵌入式GUI的有: A. Windows B. QT C. GNOME D. MiniGUI 11. Linux将设备分成三类,不是这三类的是: A.网络设备 B. 字符设备 C. 块设备 D. 杂项设备 12. 关于二阶段BootLoader说法错误的是: A. BootLoader的第一阶段代码全部由汇编语言构成; B. BootLoader的第一阶段代码在Flash中运行; C. BootLoader中可以使用glib库中的函数; D. BootLoader第二阶段代码大部分由C语言写成,所以需要使用 栈。 13. 关于Linux存储管理,错误的是: A.使用页式的虚拟内存管理 B. 每个进程都有4GB内存 C.最低1G是内核空间 D. 使用三级页表 14. 嵌入式系统一般由嵌入式微处理器,系统外部电路, ,和特 定应用程序4个部分组成。 A.嵌入式操作系统 B. 硬件驱动程序 C. BootLoader D. 文 件系统 15. 向无任何程序的目标机中写入BootLoader程序,一般使用下面那 种接口: A.串口 B. JTAG C. Ethernet D. USB 16. 关于ARM7系列微处理器的操作模式,不对的是: A.一共有7种操作模式 B. 除了用户模式,其他都为特权模式 C.不同模式下使用的寄存器可能会不相同 D. 通过改变SPSR中的低 5位来切换模式 17. 关于BusyBox,下列说法错误的是: A.它常用来构建嵌入式Linux的根文件系统 B. 支持的shell命令可以进 行配置 C. 支持的命令完全和Linux命令相同 D. 作为嵌入式Linux根文件系统 时需要交叉编译 18. Linux网络设备驱动中用于在Linux网络子系统中的各层之间传递 数据的数据结构为: A.net_device B. sk_buff C. net_dev D. skb 19. 在Linux2.6中,关于中断下列说法错误的是: A.中断处理分为顶半部和底半部 B. 中断处理中可能没有底半部 C. 底半部支持Tasklet,工作队列,软中断三种机制 D. Tasklet方法可
嵌入式系统设计实战演练试卷

嵌入式系统设计实战演练试卷(答案见尾页)一、选择题1. 嵌入式系统的核心是什么?A. CPUB. 内存C. 输入输出设备D. 操作系统2. 在嵌入式系统中,通常使用哪种编程语言进行开发?A. CB. C++C. JavaD. Python3. 嵌入式系统设计中,选择合适的处理器平台主要考虑哪些因素?A. 性能B. 价格C. 功耗D. 可扩展性4. 以下哪个不是嵌入式系统常用的操作系统?A. Windows CEB. LinuxC. VxWorksD. iOS5. 在嵌入式系统设计中,硬件描述语言主要用于:A. 系统调试B. 硬件逻辑设计C. 软件开发6. 嵌入式系统应用程序开发通常分为几个阶段?A. 系统定义B. 硬件设计C. 软件开发D. 系统集成与测试7. 在嵌入式系统设计中,如何降低功耗?A. 使用低功耗的处理器B. 减少CPU时钟频率C. 优化软件算法D. 增加散热片8. 嵌入式系统中的数据存储通常使用哪种介质?A. RAMB. 硬盘C. 闪存(如FLASH)D. 磁带9. 在嵌入式系统设计中,如何确保系统的实时性?A. 选择高性能的处理器B. 优化软件代码C. 使用实时操作系统D. 增加硬件冗余10. 在嵌入式系统开发过程中,如何进行有效的团队协作?A. 分工明确,各司其职B. 使用项目管理工具C. 定期召开项目会议D. 鼓励团队成员之间的知识共享11. 在嵌入式系统设计中,通常会使用哪种编程语言?B. C语言C. JavaD. Python12. 嵌入式系统设计中,经常需要处理哪种类型的数据?A. 高速缓存数据B. 文本数据C. 图像数据D. 音频数据13. 在嵌入式系统开发过程中,以下哪个步骤不是必要的?A. 系统需求分析B. 硬件平台选择C. 软件开发D. 系统测试14. 嵌入式系统设计中,选择合适的嵌入式操作系统(RTOS)应该考虑哪些因素?A. 性能B. 可移植性C. 成本D. 易用性15. 嵌入式系统设计中,常见的输入输出设备不包括以下哪种?A. 触摸屏B. 键盘C. 打印机D. 显示器16. 在嵌入式系统设计中,如何进行系统调试?A. 使用逻辑分析仪B. 使用示波器C. 使用网络通信D. 使用IDE集成开发环境17. 嵌入式系统设计中,如何保护系统的安全性和稳定性?A. 使用防火墙和入侵检测系统B. 定期更新系统和软件补丁C. 实施严格的访问控制策略D. 进行定期的系统备份和恢复测试18. 在嵌入式系统设计中,如何优化系统的功耗?A. 降低处理器的时钟频率B. 减少内存容量C. 关闭不必要的硬件设备D. 使用高效率的电源管理技术19. 嵌入式系统的核心特点是什么?A. 高度集成B. 可编程性C. 低功耗D. 易于扩展20. 在嵌入式系统设计中,通常会考虑哪些因素来优化性能?A. 存储器容量B. 处理速度C. 电源电压D. 系统功耗21. 下列哪种类型的处理器适用于嵌入式系统?A. 大型机处理器B. 移动处理器C. 微型计算机处理器D. 核心处理器22. 嵌入式系统设计中,常用于实现设备间通信的接口标准有哪些?A. USBB. HDMIC. SPID. I2C23. 在嵌入式系统开发过程中,以下哪个阶段是用来验证系统功能的?A. 编码阶段B. 调试阶段C. 设计阶段D. 测试阶段24. 嵌入式系统应用程序开发中,常用的编程语言有(多选)?A. C语言B. C++C. JavaD. Python25. 嵌入式系统往往需要具备哪些特定功能?(多选)A. 实时性B. 安全性C. 可靠性D. 易用性26. 在进行嵌入式系统硬件设计时,需要考虑哪些因素?A. 成本B. 功耗C. 扩展性D. 可维护性27. 下面哪个不是嵌入式系统常用的操作系统?A. LinuxB. Windows CEC. VxWorksD. μC/OS-II28. 在嵌入式系统调试过程中,常用的工具和技术有(多选)?A. 远程调试B. 调试器C. 触发器D. 仿真器29. 嵌入式系统设计中,硬件和软件的协同工作非常重要。
嵌入式系统设计与开发(章坚武)ZXM0909第8章

4
第8章 嵌入式Linux系统的驱动开发
8.1.2 驱动设备的分类 Linux系统将设备分成三种基本的类型:字符设备、块设 备和网络设备。 (1) 字符设备(character device)是指存取时没有缓存,只能 顺序读/写的设备,由字符设备程序来实现这种特征。字符设 备驱动程序通常至少实现open、close、read和write系统调用。 字符设备可以通过文件系统节点来访问,比如 /dev/tty1和 /dev/lp0等。这些设备文件和普通文件的差别在于对普通文件
同,网络没有对应地映射到文件统的设备节点。在Linux中,
网络设备访问采用Socket机制实现。
6
第8章 嵌入式Linux系统的驱动开发
8.1.3 设备文件 在Linux系统中,字符设备和块设备是通过文件节点访问 的。在Linux的文件系统中,可以找到(或者使用mknod创建)设 备对应的文件名,称这种文件为设备文件。对于设备文件的输 入/输出(I/O)操作,系统会调用对应的设备驱动程序。习惯上, 这些设备文件存在于系统的/dev目录下。因为系统不是靠路径 去关联设备文件和对应的驱动程序的,所以也可通过mknod命 令把设备文件创建在其他位置,不过很少有人这么做。通过如
的file_operations结构定义。该结构定义的操作大致上可分为三
大类:设备的打开和释放操作、读/写操作和控制操作。例如:
15
第8章 嵌入式Linux系统的驱动开发
struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char _ _user *, size_t, loff_t *); ssize_t (*write) (struct file *, const char _ _user *, size_t, loff_t *); ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, struct poll_table_struct *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *, fl_owner_t id); int (*release) (struct inode *, struct file *);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、编写一程序,查找存储器从0x500000开始的200个字中为5的数目,将其结果存到0x600000中。
(10分)
2、注释下面各条指令,并指出这段程序的功能
MOV R2,#100
MOV R1,#0
LOOP
ADD R1,R1,R2
SUBS R2,R2,#1
BNE LOOP
HERE B HERE
3、编写程序,将存储器从0x400000开始的200个字数据,传送到0x400600开始的区域。
4.用ARM汇编指令写出实现64位加法和64位减法的代码段,使用的寄存器请自行分配。
假定低32位数存放在r0和r1里面,高32位数存放在r2和r3里面。
5.指出下面各条指令的寻址方式。
SUB R0,R1,R2 ;寻址方式为:
SUBS R0,R0,#1 ;寻址方式为:
MOV R0,R2,LSL #3 ;寻址方式为:
SWP R1,R1,[R2] ;寻址方式为:
LDR R2,[R3,#0x0C] ;寻址方式为:
6.分别写出语句a)与b)中LDR的作用
a) LDR r0,[r1,#6]
b) LDR r0,=0x999
7.假设R0的内容为0x104,寄存器R1、R2的内容分别为0x01与0x10,存储器所有单元初始内容为0。
连续执行下述指令后,说明存储器及寄存器的内容如何变化?
STMIB R0!,{R1,R2}
LDMIA R0!,{R1,R2}
8.分析下面的程序,正确填写下面的空格。
; 功能:
AREA Example1,CODE ,READONLY ; 此语句是声明代码段Example1
ENTRY ;此语句功能是标识程序入口
CODE32 ; 声明32位ARM指令START MOV R0,#0 ; R0 = 0
MOV R1,#10 ; R1 =
LOOP BL ADD_SUB ; 调用子程序 ADD_SUB
B LOOP ; 跳转到LOOP
ADD_SUB
ADDS R0,R0,R1 ; 此语句作用是完成
MOV PC, ; 子程序返回
END ; 此语句作用是声明
9.用汇编语言调用C语言实现n个数相加,n为C函数的参数,
由汇编语言传递,结果存放在R5寄存器中。
10.用汇编语言编写程序读取存储器0x40003100地址上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。
11写一条 ARM 指令,完成操作r1 = r2 * 3
12初始值R1=23H,R2=0FH执行指令BIC R0, R1,R2,LSL #1后,寄存器R0,R1的值分别是多少?
13、说明指令STMIA r12!, {r0-r11}的操作功能。
14.将R0-R11十二个寄存器中的32位数据,存储到R12地址指针为起始地址的内存中,地址的操作方式是先操作、后增加,并更新地址。
15、写一段 ARM汇编程序:循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中。
程序框架如下,补充代码完成上述功能。
16、这是一个由源程序strtest.c和scopy.s组成的混合程序项目,通过调用strcopy完成字符串复制,程序代码如下。
要求阅读程序,
在程序中的注释符“//”后,说明该句程序的作用,并说明extern 和EXPORT伪指令的在程序中的作用。