网上有关“fiq是什么文件”话题很是火热,小编也是针对fiq是什么文件寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
快速中断请求(Fast Interrupt Request,FIQ)
在ARM中,FIQ模式是特权模式中的一种,同时也属于异常模式一类。用于高速数据传输或通道处理,在触发快速中断请求(FIQ)时进入。
FIQ和IRQ(外部中断模式)之间有很大的区别。FIQ模式必须尽快处理,处理结束后离开这个模式;IRQ模式可以被FIQ模式中断,但IRQ不能中断FIQ模式;为使FIQ模式相应更快,FIQ模式具有更多的影子(Shadow)寄存器。FIQ模式必须禁用中断;如果一个中断例程必须重新启用中断,应使用IRQ模式而不是FIQ模式。
求ARM嵌入式基础教程(第二版)周立功主编 课后习题
所谓快速中断请求FIQ能设置多少个,我认为关键不在快速中断,而在于中断控制器的选择。
中断控制器的任务是当多个中断发生时,选择其中一个中断通过fiq(快速中断)或irq(外部中断)向CPU发送中断请求。 所以,不论快速中断同时发生几个,CPU只能先处理一个。 FIQ中断不可以同时设置多个中断源。linux arm嵌入式开发中的 MSR指令什么意思?
自己写的……
第1章 嵌入式系统概述
(1)举出3个本书中未提到的嵌入式系统的例子。
答:键盘、鼠标、扫描仪。
(2)什么叫嵌入式系统?
答:嵌入到对象体系中的专用计算机应用系统。
(3)什么叫嵌入式处理器?嵌入式处理器分为哪几类?
答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。分为3类:1.注重尺寸、能耗和价格;2.关注性能;3.关注全部4个需求——性能、尺寸、能耗和价格。
(4)什么是嵌入式操作系统?为何要使用嵌入式操作系统?
答:嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上加入符合嵌入式系统要求的元素发展而来的。原因:1.提高了系统的可靠性;2.提高了开发效率,缩短了开发周期。3.充分发挥了32位CPU的多任务潜力。
第2章 ARM7体系结构
1.基础知识
(1)ARM7TDMI中的T、D、M、I的含义是什么?
答:T:高密度16位Thumb指令集扩展;D:支持片上调试;M:64位乘法指令;I:Embedded ICE硬件仿真功能模块。
(2)ARM7TDMI采用几级流水线?使用何种存储器编址方式?
答:3级;冯·诺依曼结构。
(3)ARM处理器模式和ARM处理器状态有何区别?
答:ARM处理器模式体现在不同寄存器的使用上;ARM处理器状态体现在不同指令的使用上。
(4)分别列举ARM的处理器模式和状态?
答:ARM的处理器模式:用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速模式;ARM的处理器状态:ARM状态、Thumb状态。
(5)PC和LR分别使用哪个寄存器?
答:PC:R15;LR:R14。
(6)R13寄存器的通用功能是什么?
答:堆栈指针SP。
(7)CPSR寄存器中哪些位用来定义处理器状态?
答:位31~28:N、Z、C、V,条件代码标志位;27~8:保留位;7~0:I、F、T、M4~0,控制标志位。
(8)描述一下如何禁止IRQ和FIQ的中断。
答:当控制位I置位时,IRQ中断被禁止,否则允许IRQ中断使能;当控制位F置位时,FIQ中断被禁止,否则允许FIQ中断使能。
2.存储器格式
答:无论是大端格式还是小端格式,R2的值与R1一致;地址0x4000单元的字节:大端:0x12、小端:0x78。
3.处理器异常
请描述一下ARM7TDMI产生异常的条件是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么?
答:
异常 模式 返回指令
复位 管理 无
未定义指令 未定义 MOVS PC,R14
软件中断 管理 MOVS PC,R14
预取指中止 中止 SUBS PC,R14,#4
数据中止 中止 SUBS PC,R14,#8
IRQ 中断 SUBS PC,R14,#4
FIQ 快速中断 SUBS PC,R14,#4
进入异常时,内核自动做:PC→LR、CPSR→相应异常模式下的SPSR、设置CPSR为相应的异常模式、相应异常处理程序的中断入口向量地址→PC。
第3章 ARM7TDMI(-S)指令系统
1.基础知识
(1)ARM7TDMI(-S)有几种寻址方式?“LDR R1,[R0,#0x08]”属于哪种寻址方式?
答:有8种寻址方式:1.寄存器寻址 2.立即寻址 3.寄存器移位寻址 4.寄存器间接寻址 5.基址寻址 6.多寄存器寻址 7.堆栈寻址 8.相对寻址;“LDR R1,[R0,#0x08]”属于基址寻址。
(2)ARM指令的条件码有多少个?默认条件码是什么?
答:16个;AL。
(3)ARM指令中的第2个操作数有哪几种形式?列举5个8位图立即数。
答:1.常数表达式(8位图) 2.寄存器方式 3.寄存器移位方式;0x3FC、0、0xF0000000、200、0xF0000001。
(4)LDR/STR指令的偏移形式有哪4种?LDRB指令和LDRSB指令有何区别?
答:1.零偏移 2.前索引偏移 3.程序相对偏移 4.后索引偏移;LDRB:加载无符号字节数据,LDRSB加载有符号字节数据
(5)请指出MOV指令与LDR加载指令的区别及用途?
答:MOV指令的源操作数是常数或(带偏移量的)寄存器,用于寄存器之间的数据传送;LDR指令的源操作数是地址,用于存储器到寄存器的数据传送。
(6)CMP指令是如何执行的?写一程序,判断R1的值是否大于0x30,是则将R1减去0x30。
答:CMP指令将Rn-operand2,根据结果更新CPSR中的相应条件标志位。
CMP R1,0x30
SUBHI R1,0x30
(7)调用子程序是用B指令还是用BL指令?请写出返回子程序的指令。
答:用BL;MOV PC,R14。
(8)请指出LDR伪指令的用法。指令格式与LDR加载指令的区别是什么?
答:用法:LDR{cond} Rd,=立即数/标号+立即数;LDR伪指令的源操作数是代表一个常数,LDR加载指令的源操作数代表一个地址。
(9)ARM状态与Thumb状态的切换指令是什么?请举例说明。
答:BX;
;从ARM状态切换到Thumb状态
CODE32
LDR R0,=Lable+1
BX R0
CODE16
Lable MOV R1,#12
;从Thumb状态切换到ARM状态
CODE16
LDR R0,=Lable
BX R0
CODE32
Lable MOV R1,#10
(10)Thumb状态与ARM状态的寄存器有区别吗?Thumb指令对哪些寄存器的访问受到一定限制?
答:有区别;R8~R15。
(11)Thumb指令集的堆栈入栈、出栈指令是哪两条?
答:PUSH、POP。
(12)Thumb指令集的BL指令转移范围为何能达到±4MB?其指令编码是怎样的?
答:BL指令事实上是两条指令,其编码为:11110{地址偏移高11位}、11111{地址偏移低11位},地址编码22位,再左移一位(半字对齐),23位地址寻址8MB,即±4MB。
2.有符号和无符号加法
答:
(1)
0xFFFF000F (A)
+0x0000FFF1 (B)
——————
(0x00000000)
NZCV=0110
如果两个操作数是有符号数,A是负数,B是正数,和是0,没有溢出,所以V=0。
如果两个操作数是无符号数,和是0,有进位,所以C=1。
(2)
0x7FFFFFFF (A)
+0x02345678 (B)
——————
(0x82345677)
NZCV=1001
如果两个操作数是有符号数,A是正数,B是正数,和是负数,有溢出,所以V=1。
如果两个操作数是无符号数,没有进位,所以C=0。
(3)
67654321 (A)
+ 23110000 (B)
——————
(0x0568F421)
NZCV=0000
如果两个操作数是有符号数,A是正数,B是正数,和是正数,没有溢出,所以V=0。
如果两个操作数是无符号数,没有进位,所以C=0。
简述当一个异常导致模式切换时,内核会进行哪些操作
在ARM处理器中,只有MSR指令可以对状态寄存器CPSR和SPSR进行写操作。与MRS配合使用,可以实现对CPSR或SPSR寄存器的读-修改-写操作,可以切换处理器模式、或者允许/禁止IRQ/FIQ中断等。
由于xPSR寄存器代表了CPU的状态,其每个位有特殊意义,在执行对xPSR状态寄存器写入时(读取时不存在该用法),为了防止误操作和方便记忆,将xPSR里32位分成四个区域,每个区域用小写字母表示:
c 控制域屏蔽 psr[7..0]
x 扩展域屏蔽 psr[15..8]
s 状态域屏蔽 psr[23..16]
f 标志域屏蔽 psr[31..24]
注意:区域名必须为小写字母
向对应区域进行执行写入时,使用xPSR_x可以指定写入区域,而不影响状态寄存器其它位,如:
使能IRQ中断:
ENABLE_IRQ
MRS R0, CPSR ; 将CPSR寄存器内容读出到R0
BIC R0, R0,#0x80 ; 清掉CPSR中的I控制位
MSR CPSR_c,R0 ; 将修改后的值写回 CPSR寄存器的对应控制域
MOV PC,LR ; 返回上一层函数
禁用IRQ中断:
DISABLE_IRQ
MRS R0 CPSR ; 将CPSR寄存器内容读出到R0
ORR R0, R0,#0x80 ; 设置CPSR中的I控制位
MSR CPSR_c,R0 ; 将修改后的值写回 CPSR寄存器的对应控制域
MOV PC,LR ; 返回上一层函数
因为内核级线程是由内核来管理,所以每次线程创建、切换都要执行一个模式切换例程,所以内核级线程效率比较低,而且内核级线程的调度是由操作系统的设计者来决定的,所以缺乏灵活性。
异常和中断ARM处理器复位后,处理器硬件将进行如下操作:(1)强制进入管理模式;(2)强制进入到ARM状态;(3)跳转到绝对地址PC=0x00000000出执行;(4)禁止IRQ中断和FIQ中断。
异常和中断简介中断一般由硬件(如外设和外部输入引脚)产生的事件,它会引起程序流偏离正常的流程(如给外设提供服务)。当外设或硬件需要处理器的服务时,一般会出现下面的流程:①外设确认到处理器的中断请求。
关于“fiq是什么文件”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[listenwind]投稿,不代表问答号立场,如若转载,请注明出处:http://listenwind.com.cn/zhishi/202501-1820.html
评论列表(4条)
我是问答号的签约作者“listenwind”!
希望本篇文章《fiq是什么文件》能对你有所帮助!
本站[问答号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育
本文概览:网上有关“fiq是什么文件”话题很是火热,小编也是针对fiq是什么文件寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。快速中断请求(Fa...