中断处理函数
来源:互联网 发布:推荐信 出国留学 知乎 编辑:程序博客网 时间:2024/06/15 20:04
.macro vector_stub, name, mode, correction=0
.align 5
vector_\name:
.if \correction
sub lr, lr, #\correction
.endif
@
@ Save r0, lr_<exception> (parent PC) and spsr_<exception>
@ (parent CPSR)
@
stmia sp, {r0, lr}@ save r0, lr
mrs lr, spsr
str lr, [sp, #8]@ save spsr
@
@ Prepare for SVC32 mode. IRQs remain disabled.
@
mrs r0, cpsr
eor r0, r0, #(\mode ^ SVC_MODE | PSR_ISETSTATE)
msr spsr_cxsf, r0
@
@ the branch table must immediately follow this code
@
and lr, lr, #0x0f
THUMB( adr r0, 1f )
THUMB( ldr lr, [r0, lr, lsl #2] )
mov r0, sp
ARM( ldr lr, [pc, lr, lsl #2] )
movs pc, lr@ branch to handler in SVC mode
.align 5
vector_\name:
.if \correction
sub lr, lr, #\correction
.endif
@
@ Save r0, lr_<exception> (parent PC) and spsr_<exception>
@ (parent CPSR)
@
stmia sp, {r0, lr}@ save r0, lr
mrs lr, spsr
str lr, [sp, #8]@ save spsr
@
@ Prepare for SVC32 mode. IRQs remain disabled.
@
mrs r0, cpsr
eor r0, r0, #(\mode ^ SVC_MODE | PSR_ISETSTATE)
msr spsr_cxsf, r0
@
@ the branch table must immediately follow this code
@
and lr, lr, #0x0f
THUMB( adr r0, 1f )
THUMB( ldr lr, [r0, lr, lsl #2] )
mov r0, sp
ARM( ldr lr, [pc, lr, lsl #2] )
movs pc, lr@ branch to handler in SVC mode
ENDPROC(vector_\name)
/*
* Interrupt dispatcher
*/
vector_stub irq, IRQ_MODE, 4
.long __irq_usr@ 0 (USR_26 / USR_32)
.long __irq_invalid@ 1 (FIQ_26 / FIQ_32)
.long __irq_invalid@ 2 (IRQ_26 / IRQ_32)
.long __irq_svc@ 3 (SVC_26 / SVC_32)
.long __irq_invalid@ 4
.long __irq_invalid@ 5
.long __irq_invalid@ 6
.long __irq_invalid@ 7
.long __irq_invalid@ 8
.long __irq_invalid@ 9
.long __irq_invalid@ a
.long __irq_invalid@ b
.long __irq_invalid@ c
.long __irq_invalid@ d
.long __irq_invalid@ e
.long __irq_invalid@ f
0 0
- 中断处理函数 asm
- 中断处理函数
- 中断处理函数
- 时钟中断处理函数
- 中断处理函数
- GPIO中断处理函数
- 中断函数和中断处理函数
- 中断处理函数的注意事项
- net_rx_action() -- 软中断处理函数
- Linux函数accept中断处理
- Java线程中断处理函数
- 中断处理函数的注意事项
- 中断处理函数的注意事项
- 中断处理程序中的关中断函数disable_irq和disable_irq_nosync
- linux中断子系统(一) - 注册系统中断处理函数
- linux中断子系统(二) - 注册用户中断处理函数
- Linux内核中断模块之中断处理函数描述
- stm32中中断名和中断处理函数名所在位置
- ios 6 和 ios7 布局区别
- eclipse (ADT) svn插件 过滤上传的 文件 文件夹 一劳永逸
- 公有ip地址 和内网ip地址
- Android UI设计——ViewPage中PagerTabStrip与PagerTitleStrip添加标题栏(三)
- JavaScript图片上传前的图片预览功能
- 中断处理函数
- OpenGL GLSL访问纹理
- android里.getText().tostring()怎么用
- 聚类算法与贪心算法
- IOS deletate assign
- hdu 1202 The calculation of GPA
- 归并排序
- 开发中多条件搜索是使用StringBuilder创建sql语句
- mmap系统调用