*
* 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
* 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 */
* 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__ = .;
*/
.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