Fixed bug 3522301.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4151 35acf78f-673a-0410-8e92-d51de3d6d3f4
master
gdisirio 2012-04-30 09:40:21 +00:00
parent 5ce36d57c9
commit 5d374c633e
4 changed files with 26 additions and 18 deletions

View File

@ -36,26 +36,28 @@
__attribute__((used)) __attribute__((used))
static void __dummy(Thread *ntp, Thread *otp) { static void __dummy(Thread *ntp, Thread *otp) {
(void)ntp; (void)otp; (void)ntp; (void)otp;
asm volatile (
#if defined(WIN32) #if defined(WIN32)
asm volatile (".globl @port_switch@8 \n\t" \ ".globl @port_switch@8 \n\t"
"@port_switch@8:"); "@port_switch@8:"
#elif defined(__APPLE__) #elif defined(__APPLE__)
asm volatile (".globl _port_switch \n\t" \ ".globl _port_switch \n\t"
"_port_switch:"); "_port_switch:"
#else #else
asm volatile (".globl port_switch \n\t" \ ".globl port_switch \n\t"
"port_switch:"); "port_switch:"
#endif #endif
asm volatile ("push %ebp \n\t" \ "push %ebp \n\t"
"push %esi \n\t" \ "push %esi \n\t"
"push %edi \n\t" \ "push %edi \n\t"
"push %ebx \n\t" \ "push %ebx \n\t"
"movl %esp, 12(%edx) \n\t" \ "movl %esp, 12(%edx) \n\t"
"movl 12(%ecx), %esp \n\t" \ "movl 12(%ecx), %esp \n\t"
"pop %ebx \n\t" \ "pop %ebx \n\t"
"pop %edi \n\t" \ "pop %edi \n\t"
"pop %esi \n\t" \ "pop %esi \n\t"
"pop %ebp \n\t" \ "pop %ebp \n\t"
"ret"); "ret");
} }

View File

@ -79,6 +79,8 @@
***************************************************************************** *****************************************************************************
*** 2.5.0 *** *** 2.5.0 ***
- FIX: Fixed code coverage crashes with Linux/gcc-4.4.5 (bug 3522301)
(backported to 2.4.1).
- FIX: Fixed macro dmaWaitCompletion() fails to compile in STM32 HAL (bug - FIX: Fixed macro dmaWaitCompletion() fails to compile in STM32 HAL (bug
3519202)(backported to 2.4.1). 3519202)(backported to 2.4.1).
- FIX: Fixed ARM addresses generated in vectors table (bug 3519037)(backported - FIX: Fixed ARM addresses generated in vectors table (bug 3519037)(backported

View File

@ -35,6 +35,9 @@ DLIBDIR =
# List all default libraries here # List all default libraries here
DLIBS = -lws2_32 DLIBS = -lws2_32
# Must be a directory in ${CHIBIOS}/os/hal/platforms
HOST_TYPE = Win32
# #
# End of default section # End of default section
@ -60,7 +63,7 @@ UADEFS =
CHIBIOS = ../.. CHIBIOS = ../..
include $(CHIBIOS)/boards/simulator/board.mk include $(CHIBIOS)/boards/simulator/board.mk
include ${CHIBIOS}/os/hal/hal.mk include ${CHIBIOS}/os/hal/hal.mk
include ${CHIBIOS}/os/hal/platforms/Win32/platform.mk include ${CHIBIOS}/os/hal/platforms/$(HOST_TYPE)/platform.mk
include ${CHIBIOS}/os/ports/GCC/SIMIA32/port.mk include ${CHIBIOS}/os/ports/GCC/SIMIA32/port.mk
include ${CHIBIOS}/os/kernel/kernel.mk include ${CHIBIOS}/os/kernel/kernel.mk
include ${CHIBIOS}/test/test.mk include ${CHIBIOS}/test/test.mk
@ -72,7 +75,7 @@ SRC = ${PORTSRC} \
${HALSRC} \ ${HALSRC} \
${PLATFORMSRC} \ ${PLATFORMSRC} \
$(BOARDSRC) \ $(BOARDSRC) \
${CHIBIOS}/os/hal/platforms/Win32/console.c \ ${CHIBIOS}/os/hal/platforms/$(HOST_TYPE)/console.c \
main.c main.c
# List ASM source files here # List ASM source files here

View File

@ -20,6 +20,7 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include "ch.h" #include "ch.h"
#include "hal.h" #include "hal.h"