start: Don't relocate to address 0
fernly runs in IRAM now, before PSRAM has been set up.
This commit is contained in:
parent
d5024b490a
commit
ec4ac95cc4
1 changed files with 14 additions and 25 deletions
39
start.S
39
start.S
|
@ -2,11 +2,6 @@
|
||||||
|
|
||||||
.global reset
|
.global reset
|
||||||
reset:
|
reset:
|
||||||
mov r0, #48
|
|
||||||
bl uart_putc
|
|
||||||
mov r0, #49
|
|
||||||
bl uart_putc
|
|
||||||
|
|
||||||
ldr r0, =0x7000cffc // stack_start
|
ldr r0, =0x7000cffc // stack_start
|
||||||
mov sp, r0
|
mov sp, r0
|
||||||
mov r2, #0xffffffff
|
mov r2, #0xffffffff
|
||||||
|
@ -18,30 +13,24 @@ clear_stack:
|
||||||
sub r0, r0, #4
|
sub r0, r0, #4
|
||||||
bcc clear_stack
|
bcc clear_stack
|
||||||
|
|
||||||
mov r0, #66
|
## Copy 0x10000 bytes from =spi_offset to psram at 0x3460
|
||||||
bl uart_putc
|
#copy_code_to_ram:
|
||||||
|
# ldr r0, =0x00003460 // Target offset
|
||||||
# Copy 0x10000 bytes from =spi_offset to psram at 0x3460
|
# ldr r1, =0x10003460 // Source offset
|
||||||
copy_code_to_ram:
|
# mov r2, #0x10000
|
||||||
ldr r0, =0x00003460 // Target offset
|
# bl asm_memcpy
|
||||||
ldr r1, =0x10003460 // Source offset
|
#
|
||||||
mov r2, #0x10000
|
## Copy reset vector table to address 0
|
||||||
bl asm_memcpy
|
#copy_reset_vectors:
|
||||||
|
# mov r0, #0
|
||||||
# Copy reset vector table to address 0
|
# ldr r1, =0x3500
|
||||||
copy_reset_vectors:
|
# mov r2, #0x100
|
||||||
mov r0, #0
|
# bl asm_memcpy
|
||||||
ldr r1, =0x3500
|
|
||||||
mov r2, #0x100
|
|
||||||
bl asm_memcpy
|
|
||||||
|
|
||||||
# Begin executing out of psram
|
# Begin executing out of psram
|
||||||
|
|
||||||
# Jump to main, which ought to be in psram now
|
# Jump to main, which ought to be in psram now
|
||||||
jump_to_main:
|
jump_to_main:
|
||||||
mov r0, #69
|
|
||||||
bl uart_putc
|
|
||||||
|
|
||||||
ldr r0, =reset_handler
|
ldr r0, =reset_handler
|
||||||
mov pc, r0
|
mov pc, r0
|
||||||
|
|
||||||
|
@ -90,7 +79,7 @@ rv_start:
|
||||||
.Lreserved_handler:
|
.Lreserved_handler:
|
||||||
.long reserved_handler
|
.long reserved_handler
|
||||||
.Lirq_handler:
|
.Lirq_handler:
|
||||||
.long irq_handler_c
|
.long irq_handler
|
||||||
.Lfiq_handler:
|
.Lfiq_handler:
|
||||||
.long fiq_handler
|
.long fiq_handler
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue