diff --git a/at91_init0.s b/at91_init0.s index ca30718..8de788d 100644 --- a/at91_init0.s +++ b/at91_init0.s @@ -31,11 +31,21 @@ .equ I_BIT, 0x80 .equ F_BIT, 0x40 - .section .dummy + .section .text.dummy .global _hwstart .func _hwstart _hwstart: - ldr pc, =0x13c000 + ldr pc, [pc, #24] /* 0x00 Reset handler */ + ldr pc, [pc, #24] /* 0x04 Undefined Instruction */ + ldr pc, [pc, #20] /* 0x08 Software Interrupt */ + ldr pc, [pc, #16] /* 0x0C Prefetch Abort */ + ldr pc, [pc, #12] /* 0x10 Data Abort */ + ldr pc, [pc, #8] /* 0x14 reserved */ + ldr pc, [pc, #4] /* 0x18 IRQ */ + ldr pc, [pc, #0] /* 0x1c FIQ */ + + .word InitReset + 0x13c000 + .word 0x80000000 .endfunc diff --git a/ldscript.ld b/ldscript.ld index d0f7cf0..681da55 100644 --- a/ldscript.ld +++ b/ldscript.ld @@ -9,8 +9,8 @@ SECTIONS { . = ORIGIN(FLASH); - .dummy : { - *(.dummy) + .text.dummy : { + *(.text.dummy) } >FLASH =0 . = ORIGIN(CODE);