X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstmf0%2Faltos-loader.ld;h=4d9b81ae0ad16d0121b8d79ee75638c994b6b618;hb=c4b8aff07d5366cef2c7209729f6cd22fa67de0c;hp=2feb515df19382a6902b480ec02a369ea43e4327;hpb=df881bce8576f091b2d8cb53b8ce8a43aeedecde;p=fw%2Faltos diff --git a/src/stmf0/altos-loader.ld b/src/stmf0/altos-loader.ld index 2feb515d..4d9b81ae 100644 --- a/src/stmf0/altos-loader.ld +++ b/src/stmf0/altos-loader.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 @@ -29,14 +30,15 @@ SECTIONS { * Rom contents */ - .text : { + .interrupt : { __text_start__ = .; *(.interrupt) /* Interrupt vectors */ + } > rom - . = ORIGIN(rom) + 0x100; - + .text ORIGIN(rom) + 0x100 : { ao_romconfig.o(.romconfig*) ao_product.o(.romconfig*) + *(.text*) /* Executable code */ *(.ARM.exidx* .gnu.linkonce.armexidx.*) *(.rodata*) /* Constants */ @@ -47,7 +49,7 @@ SECTIONS { * the application and bootloader share the same addresses. * This must be all uninitialized data */ - .boot (NOLOAD) : { + .boot ORIGIN(ram) + SIZEOF(.interrupt) (NOLOAD) : { __boot_start__ = .; *(.boot) __boot_end__ = .; @@ -64,17 +66,18 @@ SECTIONS { */ .textram BLOCK(8): { - __data_start__ = .; + _start__ = .; __text_ram_start__ = .; *(.ramtext) __text_ram_end = .; } >ram AT>rom - /* Data -- relocated to RAM, but written to ROM + /* Data -- relocated to RAM, but written to ROM. + * also aligned to 8 bytes in case textram is empty */ - .data : { + .data BLOCK(8): { *(.data) /* initialized data */ - __data_end__ = .; + _end__ = .; } >ram AT>rom