X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstmf0%2Faltos.ld;h=74fdf3eaeb3b595268938a0965219e157e131954;hb=b1f1a4513391aa595eb64552f2aa4cfedd0cc0ff;hp=6672c1fd5965afd769d8b412789b0fad3cddc7b6;hpb=02f03df6d089cafae99f8ce15dcbd87f6e78d749;p=fw%2Faltos diff --git a/src/stmf0/altos.ld b/src/stmf0/altos.ld index 6672c1fd..74fdf3ea 100644 --- a/src/stmf0/altos.ld +++ b/src/stmf0/altos.ld @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,9 +17,9 @@ */ MEMORY { - rom (rx) : ORIGIN = 0x08000000, LENGTH = 32K - ram (!w) : ORIGIN = 0x20000000, LENGTH = 5632 - stack (!w) : ORIGIN = 0x20001600, LENGTH = 512 + rom (rx) : ORIGIN = 0x08001000, LENGTH = 28K + ram (!w) : ORIGIN = 0x20000000, LENGTH = 6k - 128 + stack (!w) : ORIGIN = 0x20000000 + 6k - 128, LENGTH = 128 } INCLUDE registers.ld @@ -30,12 +31,15 @@ SECTIONS { * Rom contents */ - .text ORIGIN(rom) : { - __text_start__ = .; + .interrupt ORIGIN(ram) : AT (ORIGIN(rom)) { + __interrupt_start__ = .; + __interrupt_rom__ = ORIGIN(rom); *(.interrupt) /* Interrupt vectors */ + __interrupt_end__ = .; + } > ram - . = ORIGIN(rom) + 0x100; - + .text ORIGIN(rom) + 0x100 : { + __text_start__ = .; /* Ick. What I want is to specify the * addresses of some global constants so @@ -49,14 +53,18 @@ SECTIONS { */ ao_romconfig.o(.romconfig*) ao_product.o(.romconfig*) - *(.text*) /* Executable code */ - *(.rodata*) /* Constants */ + *(.text*) /* Executable code */ } > rom .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } > rom + + .rodata : { + *(.rodata*) /* Constants */ + } > rom + __text_end__ = .; /* Boot data which must live at the start of ram so that