aboutsummaryrefslogtreecommitdiffstats
path: root/os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2016-02-16 13:01:03 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2016-02-16 13:01:03 +0000
commita739e4e7abaf487e57647788fc93ca5e11727bbb (patch)
treec00427124b68e2a431e6b4a729d6e80bb55c0e3d /os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s
parent50f9e505e509956d401341762da15c1d8267522e (diff)
downloadChibiOS-a739e4e7abaf487e57647788fc93ca5e11727bbb.tar.gz
ChibiOS-a739e4e7abaf487e57647788fc93ca5e11727bbb.tar.bz2
ChibiOS-a739e4e7abaf487e57647788fc93ca5e11727bbb.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8904 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s')
-rw-r--r--os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s19
1 files changed, 18 insertions, 1 deletions
diff --git a/os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s b/os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s
index 69bfaa59c..1cbdc6bca 100644
--- a/os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s
+++ b/os/common/ports/ARMCMx/compilers/RVCT/chcoreasm_v7m.s
@@ -39,7 +39,17 @@
#if !defined(__DOXYGEN__)
-CONTEXT_OFFSET EQU 12
+/*
+ * RTOS-specific context offset.
+ */
+#if defined(_CHIBIOS_RT_CONF_)
+#define CONTEXT_OFFSET 12
+#elif defined(_CHIBIOS_NIL_CONF_)
+#define CONTEXT_OFFSET 0
+#else
+#error "invalid chconf.h"
+#endif
+
SCB_ICSR EQU 0xE000ED04
ICSR_PENDSVSET EQU 0x10000000
@@ -105,7 +115,14 @@ _port_thread_start PROC
#endif
mov r0, r5
blx r4
+#if defined(_CHIBIOS_RT_CONF_)
+ movs r0, #0 /* MSG_OK */
bl chThdExit
+#endif
+#if defined(_CHIBIOS_NIL_CONF_)
+ mov r3, #0
+ bl chSysHalt
+#endif
ENDP
/*