aboutsummaryrefslogtreecommitdiffstats
path: root/os/rt/ports/ARMCMx
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-02-06 10:37:50 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-02-06 10:37:50 +0000
commitcf957f9d4a54d49f66d9af4ee7c7b4bb90660409 (patch)
treea7b63f1e94ec6a9d280a4ad9aadd1c20846aab5c /os/rt/ports/ARMCMx
parent23f759922d415d9adaab70424b2c67ff0d9b7181 (diff)
downloadChibiOS-cf957f9d4a54d49f66d9af4ee7c7b4bb90660409.tar.gz
ChibiOS-cf957f9d4a54d49f66d9af4ee7c7b4bb90660409.tar.bz2
ChibiOS-cf957f9d4a54d49f66d9af4ee7c7b4bb90660409.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6668 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/rt/ports/ARMCMx')
-rw-r--r--os/rt/ports/ARMCMx/chcore.h8
-rw-r--r--os/rt/ports/ARMCMx/chcore_v6m.h6
-rw-r--r--os/rt/ports/ARMCMx/chcore_v7m.h4
3 files changed, 13 insertions, 5 deletions
diff --git a/os/rt/ports/ARMCMx/chcore.h b/os/rt/ports/ARMCMx/chcore.h
index ca6ae60e7..0e5ed6933 100644
--- a/os/rt/ports/ARMCMx/chcore.h
+++ b/os/rt/ports/ARMCMx/chcore.h
@@ -42,6 +42,11 @@
*/
#define PORT_ARCHITECTURE_ARM
+/* The following code is not processed when the file is included from an
+ asm module because those intrinsic macros are not necessarily defined
+ by the assembler too.*/
+#if !defined(_FROM_ASM_)
+
/**
* @brief Compiler name and version.
*/
@@ -57,6 +62,9 @@
#else
#error "unsupported compiler"
#endif
+
+#endif /* !defined(_FROM_ASM_) */
+
/** @} */
/**
diff --git a/os/rt/ports/ARMCMx/chcore_v6m.h b/os/rt/ports/ARMCMx/chcore_v6m.h
index e80efc9b9..fa6476084 100644
--- a/os/rt/ports/ARMCMx/chcore_v6m.h
+++ b/os/rt/ports/ARMCMx/chcore_v6m.h
@@ -254,7 +254,7 @@ struct port_intctx {
struct port_intctx *r13 = (struct port_intctx *)__get_PSP(); \
if ((stkalign_t *)(r13 - 1) < (otp)->p_stklimit) \
chSysHalt("stack overflow"); \
- _port_switch(ntp, otp); \
+ _port_switch((void *)ntp, (void *)otp); \
}
#endif
@@ -266,10 +266,10 @@ struct port_intctx {
extern "C" {
#endif
void _port_irq_epilogue(regarm_t lr);
+ void _port_switch(void *ntp, void *otp);
+ void _port_thread_start(void);
void _port_switch_from_isr(void);
void _port_exit_from_isr(void);
- void _port_switch(thread_t *ntp, thread_t *otp);
- void _port_thread_start(void);
#ifdef __cplusplus
}
#endif
diff --git a/os/rt/ports/ARMCMx/chcore_v7m.h b/os/rt/ports/ARMCMx/chcore_v7m.h
index 404e87411..9e0b1e9cd 100644
--- a/os/rt/ports/ARMCMx/chcore_v7m.h
+++ b/os/rt/ports/ARMCMx/chcore_v7m.h
@@ -344,7 +344,7 @@ struct port_intctx {
struct port_intctx *r13 = (struct port_intctx *)__get_PSP(); \
if ((stkalign_t *)(r13 - 1) < (otp)->p_stklimit) \
chSysHalt("stack overflow"); \
- _port_switch(ntp, otp); \
+ _port_switch((void *)ntp, (void *)otp); \
}
#endif
@@ -356,7 +356,7 @@ struct port_intctx {
extern "C" {
#endif
void _port_irq_epilogue(void);
- void _port_switch(thread_t *ntp, thread_t *otp);
+ void _port_switch(void *ntp, void *otp);
void _port_thread_start(void);
void _port_switch_from_isr(void);
void _port_exit_from_isr(void);