ess71 wrote on Thursday, June 12, 2008:


I am working on a stm32 project using freeRtos and corssworks environement. I have trouble converting the existing stm32 ports to crosswork environement.

i started by converting the existing stm32 iar port and the primer port but my code won t compile .

I tried a diffrent approach by using a working demo in rowley from the stm32 package. and then add the freertos sources and fucntionnality but i get the same compilation errors all the time.
the compiler messagfe is:

expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’

#ifndef __crossworks_H
#define __crossworks_H

#if defined(__CROSSWORKS)
#define __SIZE_T unsigned
#define __PTRDIFF_T int
typedef unsigned char *__va_list;
#pragma intrinsic(__va_base)
#elif defined(__CROSSWORKS_ARM)
#define __SIZE_T unsigned long
#define __PTRDIFF_T int
*****> typedef __builtin_va_list __va_list; <**************

pointing to the line above in __crossworks.h file.

can you help me find what s going on?

woops_ wrote on Thursday, June 12, 2008:

looks like its not found def for __va_list. Could be order in which include files are loaded. What was the source code or file that was added before this error came up.

Maybe ask Rowley support?

ess71 wrote on Thursday, June 12, 2008:

The file  port .c from freertos seems to be the one that does the call.

ess71 wrote on Monday, June 16, 2008:

Has any one used freeRtos with an stm32 port?
i tried even the rowley LM35102 port as is, but that does not compile . says missing linker script for memory map.
Thanks for your help.

rtel wrote on Monday, June 16, 2008:

Have you installed the Rowley package for the LM3S?  This is downloaded separately from the CrossStudio IDE.


ess71 wrote on Monday, June 16, 2008:

Hi Richard,

Thanks to your suggestion. i think that what’s i was missing.

Do you have an idea for my troubles with the stm32 port in rowley maunly the problems with the typedef __builtin_va_list __va_list in crosswirks.h file.

any help is appreciated as  i got stuck because of it.


ess71 wrote on Wednesday, June 18, 2008:

Nobody is working on stm32 and freertos?

rlagace wrote on Friday, June 20, 2008:


I have used FreeRTOS with the STM32 in Rowley using the version 4.7.2. If nothing changed since then, all you have to do is define GCC_ARMCM3 since Rowley use the GCC compiler, so you must use the GCC port instead of the IAR port.


ess71 wrote on Friday, June 20, 2008:

Thanks a lot Remi for your reply, but i did use the GCC_ARMCM3 define. are there any uther settings in Rwley that i am missing? I ll try to use the 4.7.2 Version and see wether i get the same behavior.

rlagace wrote on Friday, June 20, 2008:


I think there is no other settings to setup. I tried to include the __crossworks.h in my project since I didn’t use that file and it compile correctly. I’m using Rowley version 1.7 build 8 with the STM32 package version 1.5.


slawc wrote on Tuesday, June 24, 2008:

Can someone check if latest port for STM32 and GCC (RIDE) can be compiled? I don’t have RIDE so I can’t check it for myself.

I’m trying to use this port (with some changes of course) with Rowley and the build process stops at assert line (in . Searching though sources shows no assert definition.  It’s defined for KEIL and IAR though.