1 / 4
文档名称:

嵌入式期末论文.docx

格式:docx   大小:86KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式期末论文.docx

上传人:63229029 2017/6/2 文件大小:86 KB

下载得到文件列表

嵌入式期末论文.docx

文档介绍

文档介绍:班级: 姓名: 学号: 一、有以下函数 func 用于处理长整形变量 V。请详细分析程序,解释算法的计算过程和程序的功能,并给出在 ARM 系统中实现相同功能对应的汇编程序。 unsigned long func(unsigned long v) {unsigned long t;(1) t=v^((v <<16) |(v>>16)); (2) t&=~0xff0000; (3) v=(v<<24) |(v>>8);(4) return v^(t>>8);(5) }程序分析及计算过程: 在ARM 系统中,为了具有普遍性,设本函数实参 v为ABCD( 每个字母为一个字节) (1) 定义了一个无符号长整型变量 t。(2) 首先(v<<16) |(v>>16) ,变量 v左移 16位的结果 CD00 和变量 v右移 16的结果 00AB 相或得到 CDAB 。然后变量 v和CDAB 相与,即 t=ABCD^ CDAB (3) ~0xff000 0的结果为f0ff( 以字节为单位)。则t的结果为f0ff& (ABCD^ CDAB ), 得t=C0AB^A0CD 。(4) (v<<24) |(v>>8),变量 v左移 24位的结果 D000 和变量 v右移 8位的结果 0ABC 相或得到 v=DABC 。(5) 变量 t右移 8位得到 0A0C^0C0A ,返回结果 v=DABC^0A0C^0C0A=DCBA 。功能: 此函数的功能为把无符号长整型数按字节倒序输出。 ARM 汇编实现此功能的代码: EOR r1, r0, r0, ROR #16 BIC r1, r1, #0xff0000 MOV r0, r0, ROR #8 EOR r0, r0, r1, LSR #8 外来中断处理过程的研究摘要:本文围绕 ARM 计算机系统,结合 ARM 内核的体系架构,深入研究关于外来中断 FIQ 和IRQ 的处理过程及相关中断服务程序的编写。关键词: FIQ IRQ 中断服务程序通过这学期的学****我们知道 ARM 有两级外部中断 FIQ 和 IRQ 。 ARM 提供的 FIQ 和 IRQ 异常中断用于外部设备向 CPU 请求中断服务。这两个异常中断的引脚都是低电平有效的。当前程序状态寄存器 CPSR 的1 控制位可以屏蔽这两个异常中断请求;当程序状态寄存器 CPSR 由1 控制位位 0时, CPU 正常响应 FIQ 和 IRQ 异常中断请求。 FIQ 异常中断为快速异常中断,它比 IRQ 异常中断优先级高,这主要表现在下面的两个方面: FIQ 和 IRQ 异常中断同时产生时, CPU 先处理 FIQ 异常中断。 FIQ 异常中断处理程序中 IRQ 异常中断被禁止。 FIQ 异常中断的中断向量为 0x1c, 位于中断向量表的最后。这样 FIQ 异常中断处理程序可以直接放在地址 0x1c 开始的存储单元, 这种安排省掉了中断向量表的跳转指令,从而也就节省了中断响应时间。除此之外, 与其他的异常模式相比, FIQ 异常中断还有额外的 5 个物理寄存器, 这样在进入 FIQ 处理程序时可以保存这 5 个寄存器, 从而也提高了 FIQ 异常中断的执行速度。 IRQ , IRQ 一览 IRQ 处理过程: 1. 压堆栈--- 保存可能被破坏的寄存器的值。 2. 确定