ARM中断分析一

ARM中断分析一

ID:38049991

大小:33.50 KB

页数:4页

时间:2019-05-24

ARM中断分析一_第1页
ARM中断分析一_第2页
ARM中断分析一_第3页
ARM中断分析一_第4页
资源描述:

《ARM中断分析一》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ARM中断分析一     首先ARM芯片要中断设置要是能中断向量,然后当有IRQ中断来之后,CPU自动的到0x18地址处取指。0x18处的指令呢是CPU根据中断源算好的(比如:中断EINT4567来了,那么0x18处的指令就是跳转到地址0x30处)。然后就执行“ldr pc,=HandlerEINT4567”这条指令。这条指令的执行结果就是跳转到“HandlerEINT4567HANDLERHandleEINT4567”处执行。这条是宏指令,你可以看一下宏定义。执行结果就是跳转到HandleEINT4567处执行。       那么HandleEINT4567

2、处又是什么指令呢?这就要联系44b.h文件的#definepISR_EINT4567 (*(unsigned *)(_ISR_STARTADDRESS+0x74))定义看了。      HandleEINT4567处的地址就是“_ISR_STARTADDRESS+0x74”。到此还不知道这个地址对应的指令是什么。这时候就要去看Target.c文件的中断初始化了,其中pISR_EINT4567=(unsigned)OSEINT4567ISR;这条语句就解释了中断去向何处。 OSEINT4567ISR就是在OS_CPU_A.s里面定义的中断处理程序了。一、关于44

3、B0中断系统  44B0中断系统中有两张中断转移表,经过二重转移才跳到中断处理程序。第一张中断向量表由硬件决定,所在区域为ROM(flash),地址空间从0X00开始,其中0X00-0X1C为异常向量入口地址,0X20-0XC0为中断向量入口地址。另一张中断向量表在RAM中,可以随便改,其位置在程序连接后才定。二、如何从第一张中断向量表跳到第二张中断向量表   由于RAM放在地址空间的高端(距离中断向量超过了32M),故在第一张中断向量表对应位置上写上   ldrPC,#interrupt_service 如:ldrPC,=HandlerEINT4567 三、

4、如何在启动程序中设置异常向量,中断向量表    如何把C语言中的一个中断函数对应到汇编的中断向量表中,示意图及举例如下:#define_ISR_STARTADDRESS  0xc7fff00    //GCS6:16MbitDRAM/SDRAM #definepISR_EINT4567(*(unsigned*)(_ISR_STARTADDRESS+0x74)) .macroHANDLERHandleLabel sub     sp,sp,#4     stmfd  sp!,{r0}      ldr     r0,=HandleLabel ldr     r

5、0,[r0]      str     r0,[sp,#4]     ldmfd  sp!,{r0,pc}      .endm .text ENTRY:    bResetHandler ……VECTOR_BRANCH:   ldrpc,=HandlerEINT0 ……     ldrpc,=HandlerEINT4567     /*0x30 */   HandlerEINT4567:HANDLERHandleEINT4567 .equHandleEINT4567,_ISR_STARTADDRESS+4*29      把C语言中的一个中断函数对应到汇编的

6、中断向量表中   pISR_EINT4567=(int)Eint4567Isr;  其实异常向量就是中断向量,ARM7的内核实际上只有8个(1个保留)异常向量,对于众多的中断源,ARM7的内核是通过IRQ、FRQ的软件查询中断状态寄存器的位来获得ISR的起始地址。而44B0为了克服这种方式所带来的中断延迟,就加入了更多的中断向量表(0x20到0xc0),要使用这种方式,必须在中断控制寄存器中设置每个中断源的方式为IRQ方式,且使用向量中断。      S3C44B0X的中断控制器有30个中断源。S3C44B0X支持新的中断处理模式称为(vectoredinte

7、rruptmode),在多个中段请求发生时,由硬件优先级逻辑确定应该有哪个中断得到服务,同时硬件逻辑使中断相量表的跳转指令加载到(0X18或0X1C)位置,在该位置执行跳转指令使程序跳到相应的中断服务线程,因此相对与传统的ARM的软件方法能够大大减少中断进入延时。有两种类型的中断模式,FIQ (快速中断)和IRQ.所有的中断源在中断请求时应该确定使用的中断模式。在网络上广为流传的44b0开发板例程中,大部分使用的都是IRQ中断模式(请查阅寄存器rINTCON)。    一般来讲,使用44b0开发板进行调试时,无需更改44b.h,44blib.h,def.h,o

8、ption.h,44binit.s,4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。