桶形移位寄存器是什么arm9芯片中的寄存器。 怎么样工作的
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/19 07:44:59
桶形移位寄存器是什么
arm9芯片中的寄存器。 怎么样工作的
arm9芯片中的寄存器。 怎么样工作的
验证的代码详细分析了基于ARM嵌入式系统的异常处理流程.然后阐明关键字“-irq”的作用,设计出中断处理函数.最后,通过设置中断控制寄存器,设计外部中断EINT3的初始化程序,并给出主程序流程图.实践证明程序运行稳定可靠.
关键字:S3C2410 异常 –irq 中断
计算机体系结构中,异常或者中断是处理系统中突发事件的一种机制,几乎所有的处理器都提供这种机制.异常主要是从处理器被动接受的角度出发的一种描述,指意外操作引起的异常.而中断则带有向处理器主动申请的意味.但这两种情况具有一定的共性,都是请求处理器打断正常的程序执行流程,进入特定程序的一种机制.若无特别说明,对“异常”和“中断”都不作严格的区分.本文结合经过实际验证的代码对ARM9中断处理流程进行分析,并设计出基于S3C2410芯片的外部中断处理程序.
1.异常中断响应和返回
系统运行时,异常可能会随时发生.当一个异常出现以后,ARM微处理器会执行以下几步操作:
1) 将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行.
2) 将CPSR复制到相应的SPSR中.
3) 根据异常类型,强制设置CPSR的运行模式位.
4) 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处.
这些工作是由ARM 内核完成的,不需要用户程序参与.异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:
1) 将连接寄存器LR的值减去相应的偏移量后送到PC中.
2) 将SPSR复制回CPSR中.
3) 若在进入异常处理时设置了中断禁止位,要在此清除.
这些工作必须由用户在中断处理函数中实现.为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理.采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序.当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序.当异常处理完成以后,返回到主程序继续执行.可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回.
2.异常处理程序设计
2.1 异常响应流程
由于向量表的限制,只能有一条指令B完成32MB范围内的跳转,并不能保证所有的异常处理函数都位于32MB范围内.为了扩展跳转范围,需要二次跳转才能把异常处理函数的地址传送给PC.异常处理调用关系如图1所示.
三星公司网站提供了test2410_r11软件包,其中2410init.s有如下代码:
HandlerXXX
sub sp,sp,#4 ;减少sp,保存跳转地址
stmfd sp!,{r0} ;将工作寄存器压入堆栈
ldr r0,=HandleXXX ;将HandleXXX地址放入r0
ldr r0,[r0] ;将中断程序入口地址放入r0
str r0,[sp,#4] ;将中断程序入口地址压入堆栈
ldmfd sp!,{r0,pc} ;将工作寄存器和中断程序入口地址弹出到r0和PC
关键字:S3C2410 异常 –irq 中断
计算机体系结构中,异常或者中断是处理系统中突发事件的一种机制,几乎所有的处理器都提供这种机制.异常主要是从处理器被动接受的角度出发的一种描述,指意外操作引起的异常.而中断则带有向处理器主动申请的意味.但这两种情况具有一定的共性,都是请求处理器打断正常的程序执行流程,进入特定程序的一种机制.若无特别说明,对“异常”和“中断”都不作严格的区分.本文结合经过实际验证的代码对ARM9中断处理流程进行分析,并设计出基于S3C2410芯片的外部中断处理程序.
1.异常中断响应和返回
系统运行时,异常可能会随时发生.当一个异常出现以后,ARM微处理器会执行以下几步操作:
1) 将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行.
2) 将CPSR复制到相应的SPSR中.
3) 根据异常类型,强制设置CPSR的运行模式位.
4) 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处.
这些工作是由ARM 内核完成的,不需要用户程序参与.异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:
1) 将连接寄存器LR的值减去相应的偏移量后送到PC中.
2) 将SPSR复制回CPSR中.
3) 若在进入异常处理时设置了中断禁止位,要在此清除.
这些工作必须由用户在中断处理函数中实现.为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理.采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序.当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序.当异常处理完成以后,返回到主程序继续执行.可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回.
2.异常处理程序设计
2.1 异常响应流程
由于向量表的限制,只能有一条指令B完成32MB范围内的跳转,并不能保证所有的异常处理函数都位于32MB范围内.为了扩展跳转范围,需要二次跳转才能把异常处理函数的地址传送给PC.异常处理调用关系如图1所示.
三星公司网站提供了test2410_r11软件包,其中2410init.s有如下代码:
HandlerXXX
sub sp,sp,#4 ;减少sp,保存跳转地址
stmfd sp!,{r0} ;将工作寄存器压入堆栈
ldr r0,=HandleXXX ;将HandleXXX地址放入r0
ldr r0,[r0] ;将中断程序入口地址放入r0
str r0,[sp,#4] ;将中断程序入口地址压入堆栈
ldmfd sp!,{r0,pc} ;将工作寄存器和中断程序入口地址弹出到r0和PC
寄存器,锁存器,移位寄存器的区别
arm9的开发环境 是什么概念?
51单片机中工作寄存器作用是什么?
ARM 寄存器配置想问下大侠,在ARM芯片手册中,一些寄存器已配置好地址如:GPACON 寄存器的地址为0x560000
请问音乐芯片中的音乐集成电路芯片上的黑色一点是什么?
从物理上说,51的工作寄存器、特殊功能寄存器是不是RAM的一部分?
三菱PLC数字寄存器的作用是什么
plc中移位寄存器,状态寄存器,怎么理解.用通俗易懂的话帮我解释下.
微机原理与接口技术:如果某芯片内部有5个不同的寄存器,需要几根地址线对其内部寄存器进行译码?
单片机80c51中的一些寄存器比如a寄存器到底算CPU的还是RAM的?
sn芯片是什么厂家的
ARM7,ARM9,ARM11之间的区别