damienhoyen wrote on Tuesday, September 23, 2008:
Hi stefano:
Yes, according to your suggestion, i checked my makefile, these files have been compiled in ARM mode since the beginning, i think it’s not the source of these problem.
Below, my full makefile 
Damien
------------------------------------------------------------------------
#Project name
PROJECT_NAME=FreeRTOS
#RTOS directory
RTOS_SOURCE_DIR=./FreeRTOS/Source
#ST Libraries
#Standard I/O Lib.
ST_LIB_INC_DIR=./Library/ST_91x/Std/inc
ST_LIB_SRC_DIR=./Library/ST_91x/Std/src
ST_LIB_ASS_DIR=./Library/ST_91x/Std/asm
#USB lib.
ST_USB_INC_DIR=./Library/ST_91x/Usb/inc
ST_USB_SRC_DIR=./Library/ST_91x/Usb/src
#Enet Lib
ST_NET_INC_DIR=./Library/ST_91x/Net/inc
ST_NET_SRC_DIR=./Library/ST_91x/Net/src
ST_NET_ASS_DIR=./Library/ST_91x/Net/asm
#EFSL Lib
EFSL_INC_DIR=./Library/Efsl/inc
EFSL_SRC_DIR=./Library/Efsl/src
EFSL_INTERFACE_INC_DIR=./Library/Efsl/inc/interfaces
EFSL_INTERFACE_SRC_DIR=./Library/Efsl/src/interfaces
#Application
APP_INC_DIR=./Application/inc
APP_SRC_DIR=./Application/src
CC = arm-elf-gcc
OBJCOPY= arm-elf-objcopy
NM = arm-elf-nm
OBJDUMP = arm-elf-size
LDSCRIPT=./Project_Utils/str91x.ld
LINKER_FLAGS=-mthumb -nostartfiles -Xlinker -o$(PROJECT_NAME).elf --gc-section -lm -Xlinker -M -Xlinker -Map=$(PROJECT_NAME)LinkerOutput.txt
DEBUG=-g
OPTIM=-O0
#DEBUG=
#OPTIM=-O3
CFLAGS=
$(DEBUG)
$(OPTIM)
-T$(LDSCRIPT)
-I $(ST_LIB_INC_DIR)
-I $(ST_USB_INC_DIR)
-I $(ST_NET_INC_DIR)
-I $(EFSL_INC_DIR)
-I $(EFSL_INTERFACE_INC_DIR)
-I $(APP_INC_DIR)
-I $(RTOS_SOURCE_DIR)/include
-I $(RTOS_SOURCE_DIR)/portable/GCC/STR9x
-D ROWLEY_LPC23xx
-D THUMB_INTERWORK
-mcpu=arm9
-D PACK_STRUCT_END=__attribute\(\(packed\)\)
-D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\)
-fomit-frame-pointer
-mthumb-interwork
-ffunction-sections
-Wreturn-type -Wunused -Wimplicit -Wpointer-arith -Wswitch \
# Here, File which will compiled in Thumb mode
THUMB_SOURCE=
$(RTOS_SOURCE_DIR)/list.c
$(RTOS_SOURCE_DIR)/queue.c
$(RTOS_SOURCE_DIR)/tasks.c
$(RTOS_SOURCE_DIR)/portable/MemMang/heap_2.c
$(ST_LIB_SRC_DIR)/91x_gpio.c
$(ST_LIB_SRC_DIR)/91x_scu.c
$(ST_LIB_SRC_DIR)/91x_vic.c
$(ST_LIB_SRC_DIR)/91x_wiu.c
$(ST_LIB_SRC_DIR)/91x_fmi.c
$(ST_LIB_SRC_DIR)/91x_tim.c
$(ST_LIB_SRC_DIR)/91x_uart.c
$(ST_LIB_SRC_DIR)/91x_rtc.c
$(ST_LIB_SRC_DIR)/91x_ssp.c
$(ST_LIB_SRC_DIR)/91x_dma.c
$(ST_LIB_SRC_DIR)/91x_adc.c
$(EFSL_INTERFACE_SRC_DIR)/sdhc.c
$(EFSL_INTERFACE_SRC_DIR)/ST91x_efls_spi.c
$(EFSL_SRC_DIR)/efs.c
$(EFSL_SRC_DIR)/plibc.c
$(EFSL_SRC_DIR)/disc.c
$(EFSL_SRC_DIR)/partition.c
$(EFSL_SRC_DIR)/time.c
$(EFSL_SRC_DIR)/fs.c
$(EFSL_SRC_DIR)/fat.c
$(EFSL_SRC_DIR)/file.c
$(EFSL_SRC_DIR)/debug.c
$(EFSL_SRC_DIR)/dir.c
$(EFSL_SRC_DIR)/mkfs.c
$(EFSL_SRC_DIR)/ioman.c
$(EFSL_SRC_DIR)/ui.c
$(EFSL_SRC_DIR)/extract.c
$(EFSL_SRC_DIR)/ls.c
$(APP_SRC_DIR)/main.c \
# Here, File which will compiled in ARM mode
ARM_SOURCE=
$(RTOS_SOURCE_DIR)/portable/GCC/STR9x/portISR.c
$(RTOS_SOURCE_DIR)/portable/GCC/STR9x/port.c
$(APP_SRC_DIR)/vectors.c
# Here, File which will force reconstruction of the project
CONFIG_FILE=
./Makefile
$(APP_INC_DIR)/FreeRTOSConfig.h
$(ST_LIB_INC_DIR)/91x_conf.h
$(EFSL_INC_DIR)/config.h
$(ST_LIB_ASS_DIR)/startup.s
$(ST_LIB_ASS_DIR)/vector.s \
#--------------------------------------------------------------------------------
THUMB_OBJS = $(THUMB_SOURCE:.c=.o)
ARM_OBJS = $(ARM_SOURCE:.c=.o)
all: RTOSDemo.bin RTOSDemo.hex
RTOSDemo.hex : RTOSDemo.elf
@echo "@@@ Generating HEX file @@@"
$(OBJCOPY) -I elf32-littlearm $(PROJECT_NAME).elf -O ihex $(PROJECT_NAME).hex
RTOSDemo.bin : RTOSDemo.elf
@echo "@@@ Generating BIN file @@@"
$(OBJCOPY) -I elf32-littlearm $(PROJECT_NAME).elf -O binary $(PROJECT_NAME).bin
RTOSDemo.elf : $(THUMB_OBJS) $(ARM_OBJS) $(CONFIG_FILE)
$(CC) $(CFLAGS) $(ARM_OBJS) $(THUMB_OBJS) $(LIBS) $(ST_LIB_ASS_DIR)/startup.s $(ST_LIB_ASS_DIR)/vector.s $(LINKER_FLAGS)
@echo "@@@ Build OK @@@"
$(THUMB_OBJS) : %.o : %.c $(CONFIG_FILE)
$(CC) -c $(CFLAGS) -mthumb $< -o $@
$(ARM_OBJS) : %.o : %.c $(CONFIG_FILE)
$(CC) -c $(CFLAGS) -marm $< -o $@
clean :
rm $(THUMB_OBJS)
rm $(ARM_OBJS)
rm $(PROJECT_NAME).elf
rm $(PROJECT_NAME).bin
rm $(PROJECT_NAME).hex
@echo "Clean OK"