📄 arm_init.s
字号:
.equ sram_size,0x20008000.equ stack_irq,(sram_size-0x4).equ stack_sys,(stack_irq-0x800).equ mode_sys,0x1f.equ mode_irq,0x12.equ aic_eoicr,0xfffff130.equ aic_ivr,0xfffff100.equ app_base,0x20002000.equ sram_base,0x200000.data.code 32.textstart: b vec_reset b vec_undef b vec_swi b vec_pref b vec_abort .long 0x0 ldr pc,irq_vec b vec_fiqirq_vec: .long irq_handler.extern int_tcirq_handler: sub lr,lr,#0x4 stmfd sp!,{r0-r3,lr} mrs r12,spsr stmfd sp!,{r12}/* read the aic_ivr to indicate the start of interrupt */ ldr r1,=aic_ivr ldr r0,[r1] bl int_tc ldmfd sp!,{r12} msr spsr,r12/* write the aic_eoicr to indicate the end of interrupt */ ldr r1,=aic_eoicr str r0,[r1] ldmfd sp!,{r0-r3,pc}^vec_undef: b vec_undefvec_swi: b vec_swivec_pref: b vec_prefvec_abort: b vec_abortvec_fiq: b vec_fiq.extern resetvec_reset: ldr r0,=app_base ldmia r0!,{r1-r10} ldr r0,=sram_base stmia r0!,{r1-r10} msr cpsr_c,#mode_irq ldr r1, = stack_irq mov sp,r1 msr cpsr_c,#mode_sys ldr r1, = stack_sys mov sp,r1 b reset
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -