From 37d632cd0fb3075110f63e7179ae6f03650d7fd0 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sun, 23 Aug 2015 09:11:17 +0000 Subject: Fixed bug #635. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8238 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s | 2 +- os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'os') diff --git a/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s b/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s index 824538215..51a79bb4f 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s +++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s @@ -224,7 +224,7 @@ endinitloop: /* Main program invocation, r0 contains the returned value.*/ bl main -#if CRT0_CALL_CONSTRUCTORS == TRUE +#if CRT0_CALL_DESTRUCTORS == TRUE /* Destructors invocation.*/ ldr r4, =__fini_array_start ldr r5, =__fini_array_end diff --git a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s index 029713227..4812a29fe 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s +++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s @@ -178,6 +178,8 @@ Reset_Handler: movw r1, #SCB_FPCCR & 0xFFFF movt r1, #SCB_FPCCR >> 16 str r0, [r1] + dsb + isb /* CPACR initialization.*/ movw r0, #CRT0_CPACR_INIT & 0xFFFF @@ -185,6 +187,8 @@ Reset_Handler: movw r1, #SCB_CPACR & 0xFFFF movt r1, #SCB_CPACR >> 16 str r0, [r1] + dsb + isb /* FPU FPSCR initially cleared.*/ mov r0, #0 @@ -285,7 +289,7 @@ endinitloop: /* Main program invocation, r0 contains the returned value.*/ bl main -#if CRT0_CALL_CONSTRUCTORS == TRUE +#if CRT0_CALL_DESTRUCTORS == TRUE /* Destructors invocation.*/ ldr r4, =__fini_array_start ldr r5, =__fini_array_end -- cgit v1.2.3