📄 boot.s
字号:
/* *Boot Loader, boot.S */ .equ WTCON, 0x01d30000 .equ WTCON, 0x01d30000 .equ PCONE, 0x01d20028 .equ LOCKTIME, 0x01d8000c .equ PLLCON, 0x01d80000 .equ CLKCON, 0x01d80004.globl _start_start: b reset add pc, pc, #0x0c000000 add pc, pc, #0x0c000000 add pc, pc, #0x0c000000 add pc, pc, #0x0c000000 add pc, pc, #0x0c000000 add pc, pc, #0x0c000000 add pc, pc, #0x0c000000MEMORY_CONFIG: .long 0x11110102 .long 0x600 .long 0x7ffc .long 0x7ffc .long 0x7ffc .long 0x7ffc .long 0x7ffc .long 0x18000 .long 0x18000 .long 0x860459 .long 0x10 .long 0x20 .long 0x20 /*************************************************/ /* the actual reset code */reset: /* disable watch dog */ ldr r0, =WTCON ldr r1, =0x0 str r1, [r0]/*************************************************/ /* Config Port E */ ldr r1, =PCONE ldr r0, =0x15529 str r0, [r1]/*************************************************/ /* Set Clock Control Register */ ldr r1, =LOCKTIME ldrb r0, =0xfff strb r0, [r1] ldr r1, =PLLCON ldr r0, =0x78061 str r0, [r1] ldr r1,=CLKCON ldr r0, =0x7ff8 str r0, [r1]/*************************************************/ /* setup memory */memsetup: ldr r0, =MEMORY_CONFIG ldmia r0, {r1-r13} ldr r0, =0x01c80000 stmia r0, {r1-r13}/*************************************************/ /* copy kernel to ram */ ldr r0, =0x10000 ldr r1, =0xc300000 add r2, r0, #(704 * 1024)copy_kernel: ldmia r0!, {r3-r10} stmia r1!, {r3-r10} cmp r0, r2 ble copy_kernel/*************************************************/ /* kernel is copied to ram, so jump to it */ ldr r0, =0xc300000 mov pc, r0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -