Quality RTOS & Embedded Software

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




Loading

CORTEX STM32F107 GCC Eclipse Demo

Posted by mike 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

RE: CORTEX STM32F107 GCC Eclipse Demo

Posted by Stefano Oliveri 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

RE: CORTEX STM32F107 GCC Eclipse Demo

Posted by mike 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

RE: CORTEX STM32F107 GCC Eclipse Demo

Posted by Dave on November 23, 2011
Have you checked the xTaskCreate() return value?

RE: CORTEX STM32F107 GCC Eclipse Demo

Posted by mike on November 23, 2011
Yes it returns pdPass.


Cheers for the quick reply.


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




Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.

Latest News:

FreeRTOS V9.0.0 is now available for download.


Free TCP/IP and file system demos for the RTOS


Sponsored Links

⇓ Now With No Code Size Limit! ⇓
⇑ Free Download Without Registering ⇑


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Renesas Electronics Gold Alliance RTOS Partner.jpg

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Atmel RTOS partner supporting ARM Cortex-M3 and AVR32 microcontrollers

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

Xilinx Microblaze and Zynq partner

Silicon Labs low power RTOS partner

Altera RTOS partner for Nios II and Cortex-A9 SoC

Freescale Alliance RTOS Member supporting ARM and ColdFire microcontrollers

Infineon ARM Cortex-M microcontrollers

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

Cypress RTOS partner supporting ARM Cortex-M3

Fujitsu RTOS partner supporting ARM Cortex-M3 and FM3

Microsemi (previously Actel) RTOS partner supporting ARM Cortex-M3

Atollic Partner

IAR Partner

Keil ARM Partner

Embedded Artists