arm_init.s

来自「自己写的一个基于kb9202开发板的bootloader」· S 代码 · 共 70 行

S
70
字号
.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 + =
减小字号Ctrl + -
显示快捷键?