⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 head.s

📁 英培特ARM教学平台EDUKIT-III
💻 S
字号:
/* * Name	: head.s * Disc	: startup code * 2007-08-03 by Qingmin Liu */#include "s3c2410.h"#include "machine.h"@@ start@.text.global _start_start:@@ Exception vector table(physical address = 0x00000000)@@ 0x00	b Reset@ 0x04HandleUndef:	b HandleUndef@ 0x08HandleSWI:	b HandleSWI@ 0x0cHandlePrefetchAbort:	b HandlePrefetchAbort@ 0x10HandleDataAbort:	b HandleDataAbort@ 0x14HandleNotUsed:	b HandleNotUsed@ 0x18	b HandleIRQ@ 0x1cHandleFIQ:	b HandleFIQReset:	@ disable watch dog timer	mov r0, #WTCON	mov r1, #0x0	str r1, [r0]	@ memory setup	bl memsetup	@ copy the 4K code from steppingstone	bl copy_myself	@ irq mode	msr cpsr_c, #0xd2	ldr sp, =IRQ_STACK_BASE	@ sys mode	msr cpsr_c, #0xdf	ldr sp, =SVC_STACK_BASE	@ enable irq interrupts	msr cpsr_c, #0x5f	@ jump to main	ldr lr, =stop	ldr pc, =mainstop:	b stop@@ sub routines@@@ nand flash read@copy_myself:	mov r10, lr	@ inital	mov r1, #NAND_CTL_BASE	ldr r2, =0xf830		@ initial value	str r2, [r1, #oNFCONF]	@ reset nand flash	ldr r2, [r1, #oNFCONF]	bic r2, r2, #0x800	@ nFCE active	str r2, [r1, #oNFCONF]	mov r2, #0xff		@ reset command	strb r2, [r1, #oNFCMD]	@ delay	mov r3, #0x0a1:	subs r3, r3, #1	bne 1b	@ wait idle state	2:	ldr r2, [r1, #oNFSTAT]	tst r2, #0x01	beq 2b	ldr r2, [r1, #oNFCONF]	orr r2, r2, #0x800	@ nFCE inactive	str r2, [r1, #oNFCONF]	@ steal from IRQ stack	ldr sp, =IRQ_STACK_BASE	ldr r0, =MBOOT_RAM_BASE	@ nand_read_ll argument 1	mov r1, #0		@ nand_read_ll argument 2	mov r2, #0x20000	@ nand_read_ll argument 3	bl nand_read_ll	mov pc, r10@ r1: memory control register base address@ r2: memory control register table address@ r3: r1+13 words(because there is 13 registers)memsetup:	mov     r1, #MEM_CTL_BASE	adrl    r2, mem_cfg_val	add     r3, r1, #13*41:	@ write initial values to registers	ldr     r4, [r2], #4	str     r4, [r1], #4	cmp     r1, r3	bne     1b        mov     pc, lr@@ IRQ Interrupt Service Routine@HandleIRQ:	sub lr, lr, #4	stmdb sp!, { r0-r12, lr }	ldr lr, = int_return	ldr pc, = int_handleint_return:	ldmia sp!, { r0-r12, pc }^@@ data@.align 4mem_cfg_val:	.long vBWSCON		@ BWSCON	.long vBANKCON0		@ BANKCON0	.long vBANKCON1		@ BANKCON1	.long vBANKCON2		@ BANKCON2	.long vBANKCON3		@ BANKCON3	.long vBANKCON4		@ BANKCON4	.long vBANKCON5		@ BANKCON5	.long vBANKCON6		@ BANKCON6	.long vBANKCON7		@ BANKCON7	.long vREFRESH		@ REFRESH	.long vBANKSIZE		@ BANKSIZE	.long vMRSRB6		@ MRSRB6	.long vMRSRB7		@ MRSRB7.end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -