aboutsummaryrefslogtreecommitdiffstats
path: root/os/common
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2016-06-23 09:55:03 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2016-06-23 09:55:03 +0000
commit05aadd814d352b2b877d5d04ec67d79104aa7e9b (patch)
tree8ad842b1a74ead0aa8a3683605b52beb0ac5bebf /os/common
parent609b8e9e3bea2e86be98a0378abbc1c1b2ea6df3 (diff)
downloadChibiOS-05aadd814d352b2b877d5d04ec67d79104aa7e9b.tar.gz
ChibiOS-05aadd814d352b2b877d5d04ec67d79104aa7e9b.tar.bz2
ChibiOS-05aadd814d352b2b877d5d04ec67d79104aa7e9b.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9652 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/common')
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/mk/startup_xmc1100.mk3
-rw-r--r--os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S140
2 files changed, 142 insertions, 1 deletions
diff --git a/os/common/startup/ARMCMx/compilers/GCC/mk/startup_xmc1100.mk b/os/common/startup/ARMCMx/compilers/GCC/mk/startup_xmc1100.mk
index 84cec7eb1..7f4864d94 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/mk/startup_xmc1100.mk
+++ b/os/common/startup/ARMCMx/compilers/GCC/mk/startup_xmc1100.mk
@@ -2,7 +2,8 @@
STARTUPSRC = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/crt1.c \
$(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/vectors.c
-STARTUPASM = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/crt0_v6m.S
+STARTUPASM = $(CHIBIOS)/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S \
+ $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/crt0_v6m.S
STARTUPINC = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC \
$(CHIBIOS)/os/common/startup/ARMCMx/devices/XMC1100 \
diff --git a/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S b/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S
new file mode 100644
index 000000000..8a1bed69d
--- /dev/null
+++ b/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S
@@ -0,0 +1,140 @@
+/*
+ ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file veneers_gcc.s
+ * @brief XMC1100 veneers for GCC.
+ *
+ * @addtogroup ARMCMx_XMC1100_VENEERS_GCC
+ * @{
+ */
+
+/*===========================================================================*/
+/* Module constants. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module pre-compile time settings. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Code section. */
+/*===========================================================================*/
+
+#if !defined(__DOXYGEN__)
+
+ .syntax unified
+ .cpu cortex-m0
+
+ .thumb
+ .section ram0_init
+
+ .align 2
+ .global __veneers
+__veneers:
+ .long 0
+ .long 0
+ ldr r0, =NMI_Handler
+ mov pc, r0
+ ldr r0, =HardFault_Handler
+ mov pc, r0
+ ldr r0, =MemManage_Handler
+ mov pc, r0
+ ldr r0, =BusFault_Handler
+ mov pc, r0
+ ldr r0, =UsageFault_Handler
+ mov pc, r0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ ldr r0, =SVC_Handler
+ mov pc, r0
+ ldr r0, =DebugMon_Handler
+ mov pc, r0
+ .long 0
+ ldr r0, =PendSV_Handler
+ mov pc, r0
+ ldr r0, =SysTick_Handler
+ mov pc, r0
+ ldr r0, =Vector40
+ mov pc, r0
+ ldr r0, =Vector44
+ mov pc, r0
+ ldr r0, =Vector48
+ mov pc, r0
+ ldr r0, =Vector4C
+ mov pc, r0
+ ldr r0, =Vector50
+ mov pc, r0
+ ldr r0, =Vector54
+ mov pc, r0
+ ldr r0, =Vector58
+ mov pc, r0
+ ldr r0, =Vector5C
+ mov pc, r0
+ ldr r0, =Vector60
+ mov pc, r0
+ ldr r0, =Vector64
+ mov pc, r0
+ ldr r0, =Vector68
+ mov pc, r0
+ ldr r0, =Vector6C
+ mov pc, r0
+ ldr r0, =Vector70
+ mov pc, r0
+ ldr r0, =Vector74
+ mov pc, r0
+ ldr r0, =Vector78
+ mov pc, r0
+ ldr r0, =Vector7C
+ mov pc, r0
+ ldr r0, =Vector80
+ mov pc, r0
+ ldr r0, =Vector84
+ mov pc, r0
+ ldr r0, =Vector88
+ mov pc, r0
+ ldr r0, =Vector8C
+ mov pc, r0
+ ldr r0, =Vector90
+ mov pc, r0
+ ldr r0, =Vector94
+ mov pc, r0
+ ldr r0, =Vector98
+ mov pc, r0
+ ldr r0, =Vector9C
+ mov pc, r0
+ ldr r0, =VectorA0
+ mov pc, r0
+ ldr r0, =VectorA4
+ mov pc, r0
+ ldr r0, =VectorA8
+ mov pc, r0
+ ldr r0, =VectorAC
+ mov pc, r0
+ ldr r0, =VectorB0
+ mov pc, r0
+ ldr r0, =VectorB4
+ mov pc, r0
+ ldr r0, =VectorB8
+ mov pc, r0
+ ldr r0, =VectorBC
+ mov pc, r0
+
+#endif /* !defined(__DOXYGEN__) */
+
+/** @} */