📄 init.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 + -