aboutsummaryrefslogtreecommitdiffstats
path: root/os/common/ports/e200/compilers
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-11-19 16:13:55 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-11-19 16:13:55 +0000
commit4db0944ed00e6a31674c10d71d26d5d80f4d74d7 (patch)
tree92be3d01f9f88eba1e171ffe5d6592a0ad0f0ba6 /os/common/ports/e200/compilers
parentd5e213f8cba8dd6641f4d2d19855ed2f9e4e4218 (diff)
downloadChibiOS-4db0944ed00e6a31674c10d71d26d5d80f4d74d7.tar.gz
ChibiOS-4db0944ed00e6a31674c10d71d26d5d80f4d74d7.tar.bz2
ChibiOS-4db0944ed00e6a31674c10d71d26d5d80f4d74d7.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8510 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/common/ports/e200/compilers')
-rw-r--r--os/common/ports/e200/compilers/CW/crt0.s32
-rw-r--r--os/common/ports/e200/compilers/CW/vectors.s8
2 files changed, 28 insertions, 12 deletions
diff --git a/os/common/ports/e200/compilers/CW/crt0.s b/os/common/ports/e200/compilers/CW/crt0.s
index cb5334df3..a0031d2e1 100644
--- a/os/common/ports/e200/compilers/CW/crt0.s
+++ b/os/common/ports/e200/compilers/CW/crt0.s
@@ -59,7 +59,7 @@
* @brief DATA segment initialization switch.
*/
#if !defined(CRT0_INIT_DATA) || defined(__DOXYGEN__)
-#define CRT0_INIT_DATA TRUE
+#define CRT0_INIT_DATA FALSE
#endif
/**
@@ -73,14 +73,14 @@
* @brief Constructors invocation switch.
*/
#if !defined(CRT0_CALL_CONSTRUCTORS) || defined(__DOXYGEN__)
-#define CRT0_CALL_CONSTRUCTORS TRUE
+#define CRT0_CALL_CONSTRUCTORS FALSE
#endif
/**
* @brief Destructors invocation switch.
*/
#if !defined(CRT0_CALL_DESTRUCTORS) || defined(__DOXYGEN__)
-#define CRT0_CALL_DESTRUCTORS TRUE
+#define CRT0_CALL_DESTRUCTORS FALSE
#endif
/*===========================================================================*/
@@ -88,9 +88,25 @@
/*===========================================================================*/
#if !defined(__DOXYGEN__)
-
- .section .crt0, "ax"
- .align 2
+ .extern __sdata2_start__
+ .extern __sdata_start__
+ .extern __bss_start__
+ .extern __bss_end__
+ .extern __irq_stack_base__
+ .extern __irq_stack_end__
+ .extern __process_stack_end__
+ .extern __process_stack_base__
+ .extern __romdata_start__
+ .extern __data_start__
+ .extern __data_end__
+ .extern __init_array_start
+ .extern __init_array_end
+ .extern __fini_array_start
+ .extern __fini_array_end
+ .extern main
+
+ .section .crt0, 16
+ .align 4
.globl _boot_address
.type _boot_address, @function
_boot_address:
@@ -116,7 +132,7 @@ _boot_address:
/* IRQ Stack initialization. Note, the architecture does not use this
stack, the size is usually zero. An OS can have special SW handling
- and require this. A 4 bytes alignment is assmend and required.*/
+ and require this. A 4 bytes alignment is assumed and required.*/
e_lis r4, __irq_stack_base__@h
e_or2i r4, __irq_stack_base__@l
e_lis r5, __irq_stack_end__@h
@@ -130,7 +146,7 @@ _boot_address:
.irqsend:
/* Process Stack initialization. Note, does not overwrite the already
- written EABI frame. A 4 bytes alignment is assmend and required.*/
+ written EABI frame. A 4 bytes alignment is assumed and required.*/
e_lis r4, __process_stack_base__@h
e_or2i r4, __process_stack_base__@l
e_lis r5, (__process_stack_end__ - 8)@h
diff --git a/os/common/ports/e200/compilers/CW/vectors.s b/os/common/ports/e200/compilers/CW/vectors.s
index aa07c9e82..7d0592f5b 100644
--- a/os/common/ports/e200/compilers/CW/vectors.s
+++ b/os/common/ports/e200/compilers/CW/vectors.s
@@ -38,8 +38,8 @@
handler only. In order to declare an interrupt handler just create
a function withe the same name of a vector, the symbol will
override the weak symbol declared here.*/
- .section .vectors, "ax"
- .align 4
+ .section .vectors, 16
+ .align 16
.globl _vectors
_vectors:
.long vector0, vector1, vector2, vector3
@@ -800,8 +800,8 @@ _vectors:
.long vector1008, vector1009, vector1010, vector1011
#endif
- .text
- .align 2
+/* .section .text, 16*/
+ .align 16
.weak vector0, vector1, vector2, vector3
#if PPC_NUM_VECTORS > 4