预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共59页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

5对本部分的要求1、ARM异常与中断ARM异常(中断)ARM响应中断(异常)时的两次跳转ARM异常向量表普通中断(IRQ)与快中断(FIQ)ARM异常处理流程N3)将寄存器LR_mode(例如LR_irq)设置成返回地址,并立即对LR进行一个自动的更新动作:LR=LR-0x4。 4)将程序计数值PC设置成该异常的异常向量地址,从而跳转到相应的异常处理程序处执行。voidFIQ_Exception(void) {{FIQ中断处理} while((EXTINT&0x01)!=0) {EXTINT=0x01;} }异常入口/出口汇总程序A中断处理函数在异常处理结束后,异常处理程序完成以下动作:2、中断源中断源列表中断源列表中断源列表对多个可屏蔽中断源进行管理,使CPU核心能和更多的中断资源相联系。 能够对中断进行排队: 避免中断信号的丢失 对不同的中断进行优先级配置,使高优先级中断能够抢占低优先级中断。LPC2000中断管理的3个层次三种中断类型如何初始化某个中断源为三类中断中的一类选择产生中断的类型VIC最多支持16个向量IRQ中断,这些中断被分为16个优先级,并且为每个优先级指定一个服务程序入口地址(由VICVectAddrx设置)。 在发生向量IRQ中断后,相应优先级的服务程序入口地址被装入向量地址寄存器VICVectAddr中,通过一条ARM指令即可跳转到相应的服务程序入口处,所以向量IRQ中断具有较快的中断响应。任何中断源都可以设置为非向量IRQ中断。它与向量IRQ中断的区别在于前者不能为每个非向量IRQ中断源设置服务程序地址,而是所有的非向量IRQ中断都共用一个相同的服务程序入口地址(由VICDefVectAddr设置)。 当有多个中断源被设置为非向量IRQ中断时,需要在用户程序中识别中断源(通过读取),并分别作出处理。所以非向量IRQ中断响应延时相对较长。设定向量IRQ中断优先级向量地址寄存器(VICVectAddr0~15):非向量IRQ地址寄存器(VICDefVectAddr):允许中断源产生中断IRQ状态寄存器(VICIRQStatus):软件中断寄存器中断处理过程IRQ中断IRQ中断的设计实例0x000000000x00000000使用VIC的注意要点VIC相关启动代码分析CODE32 AREAvectors,CODE,READONLY ENTRY Reset LDRPC,ResetAddr LDRPC,UndefinedAddr ... DCD0xb9205f80 LDRPC,[PC,#-0xff0] LDRPC,FIQ_Addr ResetAddrDCDResetInit UndefinedAddrDCDUndefined ... NouseDCD0 IRQ_AddrDCD0 FIQ_AddrDCDFIQ_Handler4、外部中断管脚 连接控制外部中断相关寄存器外部中断相关寄存器当EXTPOLARx设置为1时EINTx引脚输入信号高电平或上升沿有效。 当EXTPOLARx设置为0时EINTx引脚输入信号低电平或下降沿有效。外部中断相关寄存器当EXTMODEx设置为0时输入信号为电平触发有效。 当EXTMODEx设置为1时输入信号为边沿触发有效。外部中断相关寄存器外部中断相关寄存器外部中断相关寄存器注意:在电平触发方式下,清除中断标志只有在引脚处于无效状态时才可实现。比如设置为低电平中断,则只有在中断引脚恢复为高电平后才能清除中断标志。外部中断示例外部中断示例使用外部中断注意要点谢谢!