aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2016-09-29 14:58:53 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2016-09-29 14:58:53 +0000
commit501dce6dc591f065acdf3e83b2de29e9bf7af4a4 (patch)
tree2ae7d817a6f288aafef1e59c623bba60a6755432
parent4ca399b1af17119bc179d0ea6ad596e3d5a7ed66 (diff)
downloadChibiOS-501dce6dc591f065acdf3e83b2de29e9bf7af4a4.tar.gz
ChibiOS-501dce6dc591f065acdf3e83b2de29e9bf7af4a4.tar.bz2
ChibiOS-501dce6dc591f065acdf3e83b2de29e9bf7af4a4.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9822 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--demos/XMC/RT-XMC1100-XMC_2GO/Makefile2
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/mk/startup_xmc1100.mk3
-rw-r--r--os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S95
3 files changed, 92 insertions, 8 deletions
diff --git a/demos/XMC/RT-XMC1100-XMC_2GO/Makefile b/demos/XMC/RT-XMC1100-XMC_2GO/Makefile
index 50808b6d5..1484eabfb 100644
--- a/demos/XMC/RT-XMC1100-XMC_2GO/Makefile
+++ b/demos/XMC/RT-XMC1100-XMC_2GO/Makefile
@@ -27,7 +27,7 @@ endif
# NOTE: On XMC1100 the following symbols are mapped on the words CLK_VAL1 and
# CLK_VAL2.
ifeq ($(USE_LDOPT),)
- USE_LDOPT = --defsym=MemManage_Handler=0xFFFFFFFF,--defsym=BusFault_Handler=0xFFFFFFFF
+ USE_LDOPT = --defsym=__clk_val1=0xFFFFFFFF,--defsym=__clk_val2=0xFFFFFFFF
endif
# Enable this if you want link time optimizations (LTO)
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 7f4864d94..dcd1a3801 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/mk/startup_xmc1100.mk
+++ b/os/common/startup/ARMCMx/compilers/GCC/mk/startup_xmc1100.mk
@@ -1,6 +1,5 @@
# List of the ChibiOS generic XMC1100 startup and CMSIS files.
-STARTUPSRC = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/crt1.c \
- $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/vectors.c
+STARTUPSRC = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/crt1.c
STARTUPASM = $(CHIBIOS)/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S \
$(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/crt0_v6m.S
diff --git a/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S b/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S
index ce1a718ee..9a30508fc 100644
--- a/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S
+++ b/os/common/startup/ARMCMx/devices/XMC1100/veneers_gcc.S
@@ -40,18 +40,103 @@
.cpu cortex-m0
.thumb
- .section .ram0_init, "ax", %progbits
+ .section .vecttirs, "ax", %progbits
+ .align 4
+ .globl _vectors
+_vectors:
+ .long __main_stack_end__, __reset, __clk_val1, __clk_val2
+ .long MemManage_Handler, BusFault_Handler, UsageFault_Handler, Vector1C
+ .long Vector20, Vector24, Vector28, SVC_Handler
+ .long DebugMon_Handler, Vector34, PendSV_Handler, SysTick_Handler
+ .long Vector40, Vector44, Vector48, Vector4C
+ .long Vector50, Vector54, Vector58, Vector5C
+ .long Vector60, Vector64, Vector68, Vector6C
+ .long Vector70, Vector74, Vector78, Vector7C
+ .long Vector80, Vector84, Vector88, Vector8C
+ .long Vector90, Vector94, Vector98, Vector9C
+ .long VectorA0, VectorA4, VectorA8, VectorAC
+ .long VectorB0, VectorB4, VectorB8, VectorBC
+
+ .weak MemManage_Handler, BusFault_Handler, UsageFault_Handler, Vector1C
+ .weak Vector20, Vector24, Vector28, SVC_Handler
+ .weak DebugMon_Handler, Vector34, PendSV_Handler, SysTick_Handler
+ .weak Vector40, Vector44, Vector48, Vector4C
+ .weak Vector50, Vector54, Vector58, Vector5C
+ .weak Vector60, Vector64, Vector68, Vector6C
+ .weak Vector70, Vector74, Vector78, Vector7C
+ .weak Vector80, Vector84, Vector88, Vector8C
+ .weak Vector90, Vector94, Vector98, Vector9C
+ .weak VectorA0, VectorA4, VectorA8, VectorAC
+ .weak VectorB0, VectorB4, VectorB8, VectorBC
+MemManage_Handler:
+BusFault_Handler:
+UsageFault_Handler:
+Vector1C:
+Vector20:
+Vector24:
+Vector28:
+SVC_Handler:
+DebugMon_Handler:
+Vector34:
+PendSV_Handler:
+SysTick_Handler:
+Vector40:
+Vector44:
+Vector48:
+Vector4C:
+Vector50:
+Vector54:
+Vector58:
+Vector5C:
+Vector60:
+Vector64:
+Vector68:
+Vector6C:
+Vector70:
+Vector74:
+Vector78:
+Vector7C:
+Vector80:
+Vector84:
+Vector88:
+Vector8C:
+Vector90:
+Vector94:
+Vector98:
+Vector9C:
+VectorA0:
+VectorA4:
+VectorA8:
+VectorAC:
+VectorB0:
+VectorB4:
+VectorB8:
+VectorBC:
+
+ b _unhandled_exception
+
+ .align 2
+ .thumb_func
+ .weak _unhandled_exception
+_unhandled_exception:
+ b _unhandled_exception
+
+ .text
+ .align 2
+ .thumb_func
+ .global __reset
+__reset: b Reset_Handler
+
+ .section .ram0_init, "ax", %progbits
.align 2
.thumb_func
.global __veneers
__veneers:
.long 0
.long 0
- ldr r0, =NMI_Handler
- mov pc, r0
- ldr r0, =HardFault_Handler
- mov pc, r0
+ .long 0
+ .long 0
.long 0
.long 0
ldr r0, =UsageFault_Handler