aboutsummaryrefslogtreecommitdiffstats
path: root/os/common
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2016-06-23 11:30:23 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2016-06-23 11:30:23 +0000
commit3e33906a4a035e1873519c7bc34908a9c181802a (patch)
tree6d37572c44d52cfc2da1bf435c20371b8aeca4c0 /os/common
parent05aadd814d352b2b877d5d04ec67d79104aa7e9b (diff)
downloadChibiOS-3e33906a4a035e1873519c7bc34908a9c181802a.tar.gz
ChibiOS-3e33906a4a035e1873519c7bc34908a9c181802a.tar.bz2
ChibiOS-3e33906a4a035e1873519c7bc34908a9c181802a.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9653 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/common')
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/ld/XMC1100x0064.ld16
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/ld/rules_data.ld32
-rw-r--r--os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S11
3 files changed, 30 insertions, 29 deletions
diff --git a/os/common/startup/ARMCMx/compilers/GCC/ld/XMC1100x0064.ld b/os/common/startup/ARMCMx/compilers/GCC/ld/XMC1100x0064.ld
index dcd737b5b..b5538b7c6 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/ld/XMC1100x0064.ld
+++ b/os/common/startup/ARMCMx/compilers/GCC/ld/XMC1100x0064.ld
@@ -27,9 +27,9 @@ MEMORY
flash5 : org = 0x00000000, len = 0
flash6 : org = 0x00000000, len = 0
flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x20000000, len = 0xC0
- ram1 : org = 0x200000C0, len = 0x140
- ram2 : org = 0x20000200, len = 16k - 0x140 - 0xC0
+ ram0 : org = 0x20000000, len = 0x200
+ ram1 : org = 0x20000200, len = 16k - 0x200
+ ram2 : org = 0x00000000, len = 0
ram3 : org = 0x00000000, len = 0
ram4 : org = 0x00000000, len = 0
ram5 : org = 0x00000000, len = 0
@@ -65,21 +65,21 @@ REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
/* RAM region to be used for Main stack. This stack accommodates the processing
of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram2);
+REGION_ALIAS("MAIN_STACK_RAM", ram1);
/* RAM region to be used for the process stack. This is the stack used by
the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram2);
+REGION_ALIAS("PROCESS_STACK_RAM", ram1);
/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram2);
+REGION_ALIAS("DATA_RAM", ram1);
REGION_ALIAS("DATA_RAM_LMA", flash0);
/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram2);
+REGION_ALIAS("BSS_RAM", ram1);
/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram2);
+REGION_ALIAS("HEAP_RAM", ram1);
/* Generic rules inclusion.*/
INCLUDE rules.ld
diff --git a/os/common/startup/ARMCMx/compilers/GCC/ld/rules_data.ld b/os/common/startup/ARMCMx/compilers/GCC/ld/rules_data.ld
index 083d661bf..c531015ee 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/ld/rules_data.ld
+++ b/os/common/startup/ARMCMx/compilers/GCC/ld/rules_data.ld
@@ -75,8 +75,8 @@ SECTIONS
. = ALIGN(4);
__ram0_init_text__ = LOADADDR(.ram0_init);
__ram0_init__ = .;
- *(.ram0_init)
- *(.ram0_init.*)
+ KEEP(*(.ram0_init))
+ KEEP(*(.ram0_init.*))
. = ALIGN(4);
} > ram0 AT > RAM_INIT_FLASH_LMA
@@ -99,8 +99,8 @@ SECTIONS
. = ALIGN(4);
__ram1_init_text__ = LOADADDR(.ram1_init);
__ram1_init__ = .;
- *(.ram1_init)
- *(.ram1_init.*)
+ KEEP(*(.ram1_init))
+ KEEP(*(.ram1_init.*))
. = ALIGN(4);
} > ram1 AT > RAM_INIT_FLASH_LMA
@@ -123,8 +123,8 @@ SECTIONS
. = ALIGN(4);
__ram2_init_text__ = LOADADDR(.ram2_init);
__ram2_init__ = .;
- *(.ram2_init)
- *(.ram2_init.*)
+ KEEP(*(.ram2_init))
+ KEEP(*(.ram2_init.*))
. = ALIGN(4);
} > ram2 AT > RAM_INIT_FLASH_LMA
@@ -147,8 +147,8 @@ SECTIONS
. = ALIGN(4);
__ram3_init_text__ = LOADADDR(.ram3_init);
__ram3_init__ = .;
- *(.ram3_init)
- *(.ram3_init.*)
+ KEEP(*(.ram3_init))
+ KEEP(*(.ram3_init.*))
. = ALIGN(4);
} > ram3 AT > RAM_INIT_FLASH_LMA
@@ -171,8 +171,8 @@ SECTIONS
. = ALIGN(4);
__ram4_init_text__ = LOADADDR(.ram4_init);
__ram4_init__ = .;
- *(.ram4_init)
- *(.ram4_init.*)
+ KEEP(*(.ram4_init))
+ KEEP(*(.ram4_init.*))
. = ALIGN(4);
} > ram4 AT > RAM_INIT_FLASH_LMA
@@ -195,8 +195,8 @@ SECTIONS
. = ALIGN(4);
__ram5_init_text__ = LOADADDR(.ram5_init);
__ram5_init__ = .;
- *(.ram5_init)
- *(.ram5_init.*)
+ KEEP(*(.ram5_init))
+ KEEP(*(.ram5_init.*))
. = ALIGN(4);
} > ram5 AT > RAM_INIT_FLASH_LMA
@@ -219,8 +219,8 @@ SECTIONS
. = ALIGN(4);
__ram6_init_text__ = LOADADDR(.ram6_init);
__ram6_init__ = .;
- *(.ram6_init)
- *(.ram6_init.*)
+ KEEP(*(.ram6_init))
+ KEEP(*(.ram6_init.*))
. = ALIGN(4);
} > ram6 AT > RAM_INIT_FLASH_LMA
@@ -243,8 +243,8 @@ SECTIONS
. = ALIGN(4);
__ram7_init_text__ = LOADADDR(.ram7_init);
__ram7_init__ = .;
- *(.ram7_init)
- *(.ram7_init.*)
+ KEEP(*(.ram7_init))
+ KEEP(*(.ram7_init.*))
. = ALIGN(4);
} > ram7 AT > RAM_INIT_FLASH_LMA
diff --git a/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S b/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S
index 8a1bed69d..bb1089838 100644
--- a/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S
+++ b/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S
@@ -36,14 +36,15 @@
#if !defined(__DOXYGEN__)
- .syntax unified
- .cpu cortex-m0
+ .syntax unified
+ .cpu cortex-m0
.thumb
- .section ram0_init
+ .section .ram0_init, "ax"
- .align 2
- .global __veneers
+ .align 2
+ .thumb_func
+ .global __veneers
__veneers:
.long 0
.long 0