aboutsummaryrefslogtreecommitdiffstats
path: root/os/ports
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-12-20 18:51:28 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-12-20 18:51:28 +0000
commit6100dc08a6a9f4592f324204bad26ba11239a030 (patch)
tree500cae05c312dc8209d06b88f6a954b2734fb9f6 /os/ports
parentcefffe9013b309de8661b5ce117a4472a2af6b92 (diff)
downloadChibiOS-6100dc08a6a9f4592f324204bad26ba11239a030.tar.gz
ChibiOS-6100dc08a6a9f4592f324204bad26ba11239a030.tar.bz2
ChibiOS-6100dc08a6a9f4592f324204bad26ba11239a030.zip
Cortex-M4 FPU support working.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@3644 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/ports')
-rw-r--r--os/ports/GCC/ARMCMx/chcore_v7m.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/os/ports/GCC/ARMCMx/chcore_v7m.c b/os/ports/GCC/ARMCMx/chcore_v7m.c
index e4ea3a72e..ca45f4f1a 100644
--- a/os/ports/GCC/ARMCMx/chcore_v7m.c
+++ b/os/ports/GCC/ARMCMx/chcore_v7m.c
@@ -76,6 +76,7 @@ void SVCallVector(void) {
#if CORTEX_USE_FPU
/* Restoring the special register SCB_FPCCR.*/
SCB_FPCCR = (uint32_t)ctxp->fpccr;
+ SCB_FPCAR = SCB_FPCAR + sizeof (struct extctx);
#endif
asm volatile ("msr PSP, %0" : : "r" (ctxp) : "memory");
port_unlock_from_isr();
@@ -102,6 +103,7 @@ void PendSVVector(void) {
#if CORTEX_USE_FPU
/* Restoring the special register SCB_FPCCR.*/
SCB_FPCCR = (uint32_t)ctxp->fpccr;
+ SCB_FPCAR = SCB_FPCAR + sizeof (struct extctx);
#endif
asm volatile ("msr PSP, %0" : : "r" (ctxp) : "memory");
}