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

📄 init.s

📁 ARM的bootloader程序
💻 S
字号:

MEM_CTL_BASE equ		0x48000000
SDRAM_BASE	equ	0x30000000

	IMPORT main
	
	AREA  Init,CODE,READONLY  	  ;该伪指令定义了一个代码段,段名为Init,属性只读
	ENTRY                   	  ;程序的入口点标识
	EXPORT	_ENTRY
_ENTRY
_start
	bl	disable_watch_dog
	bl	memsetup
	bl	copy_steppingstone_to_sdram
	ldr	pc,	=set_sp				;@跳到SDRAM中继续执行
set_sp
	ldr	sp,	=0x34000000		;@设置堆栈
	bl	main
halt_loop
	b	halt_loop

disable_watch_dog
	mov	r1, 	#0x53000000
	mov	r2, 	#0x0
	str	r2, 	[r1]
	mov	pc,	lr

copy_steppingstone_to_sdram
	;@copy the 4k code from steppingstone(address begins at 0x00000000) to sdram(address begins at 0x30000000)

	mov	r1,	#0
	ldr	r2,	=SDRAM_BASE
	mov	r3,	#4*1024
1	ldr	r4,	[r1],#4
	str	r4,	[r2],#4
	cmp	r1,	r3
	bne	%b1
	mov	pc, 	lr

memsetup
	;@ initialise the static memory 
	;@ set memory control registers

	mov	r1, 	#MEM_CTL_BASE
	adrl	r2, 	mem_cfg_val
	add	r3, 	r1, #52
1	ldr	r4, 	[r2], #4
	str	r4, 	[r1], #4
	cmp	r1, 	r3
	bne	%b1

	mov	pc, 	lr


LTORG
mem_cfg_val
	DCD	0x22111110		;@BWSCON
	DCD 0x00000700		;@BANKCON0
	DCD	0x00000700		;@BANKCON1
	DCD	0x00000700		;@BANKCON2
	DCD	0x00000700		;@BANKCON3	
	DCD	0x00000700		;@BANKCON4
	DCD	0x00000700		;@BANKCON5
	DCD	0x00018005		;@BANKCON6
	DCD	0x00018005		;@BANKCON7
	DCD	0x008e07a3		;@REFRESH
	DCD	0x000000b2		;@BANKSIZE
	DCD	0x00000030		;@MRSRB6
	DCD	0x00000030		;@MRSRB7
	END

⌨️ 快捷键说明

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