diff options
Diffstat (limited to 'src/kernel.lds')
-rw-r--r-- | src/kernel.lds | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/kernel.lds b/src/kernel.lds index f4f209a..3872a87 100644 --- a/src/kernel.lds +++ b/src/kernel.lds @@ -29,7 +29,8 @@ ENTRY(boot_start) */ MEMORY { - RAM : ORIGIN = 1M, LENGTH = 63M + FLASH : ORIGIN = 0x0, LENGTH = 0x100000 + RAM : ORIGIN = 0x20000000, LENGTH = 0x20000 } /* @@ -50,7 +51,7 @@ MEMORY */ PHDRS { - hdr PT_LOAD FLAGS(4); + vectors PT_LOAD FLAGS(5); text PT_LOAD FLAGS(5); data PT_LOAD FLAGS(6); } @@ -84,22 +85,28 @@ PHDRS */ SECTIONS { - .hdr : { - *(.hdr) - } > RAM : hdr + .vectors : { + *(.vectors) + } > FLASH : vectors .text : { *(.text*) - } > RAM : text + *(.rodata*) + } > FLASH : text + + _lma_data_addr = .; .data : { - *(.rodata*) + _data_start = .; *(.data*) - } > RAM : data + _data_end = .; + } > RAM AT > FLASH : data .bss : { + _bss_start = .; *(.bss) - } > RAM : data + _bss_end = .; + } > RAM AT > FLASH : data /* * The .eh_frame section is used by DWARF tools to unwind the stack, @@ -109,5 +116,6 @@ SECTIONS */ /DISCARD/ : { *(.eh_frame) + *(.ARM*) } } |