Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT




Loading

CORTEX STM32F107 GCC Eclipse Demo

Posted by *anonymous on November 5, 2011

Hi,

I am attempting to port the current GCC Rowley Demo for the STM32F107 to Eclipse/OpenOCD. I am using CodeSourcery (Lite) for the cross compilation tools. I seem to having trouble building the project though.

When compiling the file stm32f10x_nvic.c the following error comes up:

FreeRTOS/Demo/CORTEX_STM32F107_GCC_Ecplise/../Common/drivers/ST/STM32F10xFWLib/src/stm32f10x_nvic.c:190: undefined reference to `__SETPRIMASK'

Several of these errors are displayed (with different undefined references) for this file. I have traced '__SETPRIMASK' to Demo/Common/drivers/ST/STM32F10xFWLib/inc/cortexm3_macro.h, which is included via stm32f10x_nvic.h.

So I don't see why these errors come up, I imagine it is because of a missing include directory or missing pre processor directive, but I can't see what is missing, anybody else come across this problem/have any ideas?

Here is my makefile for information:

#
# Makefile for use on the STM32-P107 Olimex board
#

#
# Project directories
#
# RTOS_SOURCE_DIR -> RTOS source directory
# DEMO_COMMON_INCLUDE_DIR -> Common demo header files
# DEMO_COMMON_SOURCE_DIR -> Common demo source files
# DEMO_DRIVER_DIR -> Common demo driver files
# UIP_COMMON_DIR -> Networking files
# STM32F10X_SOURCE_DIR -> Microcontroller specific drivers
RTOS_SOURCE_DIR=../../Source
DEMO_COMMON_INCLUDE_DIR=../Common/include
DEMO_COMMON_SOURCE_DIR=../Common/Minimal
DEMO_DRIVER_DIR=../Common/drivers
UIP_COMMON_DIR=../Common/ethernet/uIP/uip-1.0/uip
STM32F10X_SOURCE_DIR=../Common/drivers/ST/STM32F10xFWLib/src
SOURCERY_GCC_INCLUDE_DIR=/home/mike/CodeSourcery/Sourcery_G++_Lite/lib/gcc/arm-none-eabi/4.5.2/include
SOURCERY_INCLUDE_DIR=/home/mike/CodeSourcery/Sourcery_G++_Lite/arm-none-eabi/include
#CROSSWORKS_STUDIO_DIR=/usr/share/crossworks_for_arm_2.1

#
# Demo additional files, ignore for the moment
#
#CRT0=thumb_crt0.s
#STARTUP=STM32F10x_Startup.s
# target file?

#
# Cross compilation tools to use (CodeSourcery)
#
CC=arm-none-eabi-gcc
LD=arm-none-eabi-ld
AS=arm-none-eabi-as
OBJCOPY=arm-none-eabi-objcopy

#
# Flags to use for linker
#
LINKER_FLAGS=-nostartfiles -Xlinker -oRTOSDemo.elf -Xlinker -M -Xlinker -Map=rtosdemo.map

#
# Flags to use for compiler
# Warnings, debug info, optimisations, cortex-m3 flags, additional code directories, preprocessor directives (definitions)
#
CFLAGS=-Wall -Wextra -g -O3
-mcpu=cortex-m3 -mthumb -mfix-cortex-m3-ldrd -mlittle-endian -mfpu=vfp -mfloat-abi=soft
-std=c99
-fno-builtin
-ffunction-sections
-fdata-sections
-fno-common
-gdwarf-2
-fno-dwarf2-cfi-asm
-I .
-I $(RTOS_SOURCE_DIR)/include
-I $(RTOS_SOURCE_DIR)/portable/GCC/ARM_CM3
-I $(DEMO_COMMON_INCLUDE_DIR)
-I $(DEMO_DRIVER_DIR)/ST/STM32F10xFWLib/inc
-I $(UIP_COMMON_DIR)
-I webserver
-I LCD
-I $(SOURCERY_GCC_INCLUDE_DIR)
-I $(SOURCERY_INCLUDE_DIR)
-D PACK_STRUCT_END=__attribute\(\(packed\)\)
-D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\)

# Crossworks flags, don't think applicable to eclipse project
#-D __CROSSWORKS
#-D __CROSSWORKS_ARM
#-D __ARM_ARCH_7M__
#-D __TARGET_PROCESSOR=STM32F107VC
#-D OSCILLATOR_CLOCK_FREQUENCY=25000000
#-D __THUMB
#-D __FLASH_BUILD
#-D DEBUG
#-D __CROSSWORKS_MAJOR_VERSION=2
#-D __CROSSWORKS_MINOR_VERSION=1
#-D __CROSSWORKS_REVISION=1
#-D __TARGET_CL=
#-D STM32F10X_CL=
#-nostdinc
#-I$(CROSSWORKS_STUDIO_DIR)/include
#-I$(CROSSWORKS_STUDIO_DIR)/lib

# Note this last -D line is handled incorrectly when a is put at the end!!

#
# Source files to compile to build RTOSDemo.elf (DO NOT MODIFY)
#
THUMB_SOURCE=$(DEMO_COMMON_SOURCE_DIR)/flash.c
$(DEMO_COMMON_SOURCE_DIR)/recmutex.c
$(DEMO_COMMON_SOURCE_DIR)/semtest.c
$(DEMO_COMMON_SOURCE_DIR)/BlockQ.c
$(DEMO_COMMON_SOURCE_DIR)/GenQTest.c
$(DEMO_COMMON_SOURCE_DIR)/integer.c
$(DEMO_COMMON_SOURCE_DIR)/PollQ.c
$(DEMO_COMMON_SOURCE_DIR)/QPeek.c
$(RTOS_SOURCE_DIR)/tasks.c
$(RTOS_SOURCE_DIR)/list.c
$(RTOS_SOURCE_DIR)/queue.c
$(RTOS_SOURCE_DIR)/portable/MemMang/heap_2.c
$(RTOS_SOURCE_DIR)/portable/GCC/ARM_CM3/port.c
main.c
./ParTest/ParTest.c
$(STM32F10X_SOURCE_DIR)/stm32f10x_usart.c
$(STM32F10X_SOURCE_DIR)/stm32f10x_gpio.c
$(STM32F10X_SOURCE_DIR)/stm32f10x_lib.c
$(STM32F10X_SOURCE_DIR)/stm32f10x_nvic.c
$(STM32F10X_SOURCE_DIR)/stm32f10x_rcc.c
$(STM32F10X_SOURCE_DIR)/stm32f10x_systick.c
$(STM32F10X_SOURCE_DIR)/stm32fxxx_eth.c
printf-stdarg.c
$(STM32F10X_SOURCE_DIR)/stm32f10x_tim.c
./LCD/lcd.c
$(STM32F10X_SOURCE_DIR)/stm32f10x_spi.c
$(UIP_COMMON_DIR)/timer.c
$(UIP_COMMON_DIR)/uip.c
$(UIP_COMMON_DIR)/uip_arp.c
$(UIP_COMMON_DIR)/psock.c
./webserver/uIP_Task.c
./webserver/httpd.c
./webserver/httpd-cgi.c
./webserver/httpd-fs.c
./webserver/http-strings.c
./webserver/emac.c
timertest.c

#
# Rules for running make

THUMB_OBJS = $(THUMB_SOURCE:.c=.o)

all: RTOSDemo.bin

RTOSDemo.bin : RTOSDemo.hex
$(OBJCOPY) RTOSDemo.elf -O binary RTOSDemo.bin

RTOSDemo.hex : RTOSDemo.elf
$(OBJCOPY) RTOSDemo.elf -O ihex RTOSDemo.hex

RTOSDemo.elf : $(THUMB_OBJS) $(CRT0) Makefile
$(CC) $(CFLAGS) $(THUMB_OBJS) $(LIBS) $(CRT0) $(LINKER_FLAGS)

$(THUMB_OBJS) : %.o : %.c Makefile FreeRTOSConfig.h
$(CC) -c $(CFLAGS) $< -o $@

clean :
rm -f $(THUMB_OBJS)
touch Makefile
rm -f RTOSDemo.elf
rm -f RTOSDemo.hex


CORTEX STM32F107 GCC Eclipse Demo

Posted by stf12 on November 7, 2011

Hi,

I have published some FreeRTOS demo running on Eclipse/GCC (Code Sourcery) at the following link: http://www.stf12.org/developers/Download.html.
Look for Cortex_STM32F107 demo.

Regards,
Stefano


CORTEX STM32F107 GCC Eclipse Demo

Posted by *anonymous on November 23, 2011

Hi,

Thanks for the demo. I managed to get the project building and downloading onto the board.

I seem to be having a problem creating tasks now though, I create a task to turn some LED's on, however it never seems to get run. There are no other tasks being created.

Here is the call to the task creation function:

xTaskCreate( vLEDEnableTask, ( signed char * ) "LEDx", 128, NULL, 2, ( xTaskHandle * ) NULL );

Has anyone come across this problem before?

Cheers, Michael


CORTEX STM32F107 GCC Eclipse Demo

Posted by davedoors on November 23, 2011

Have you checked the xTaskCreate() return value?


CORTEX STM32F107 GCC Eclipse Demo

Posted by *anonymous on November 23, 2011

Yes it returns pdPass.

Cheers for the quick reply.


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS kernel V10 is available for immediate download. Now MIT licensed.


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS