Simplicity Studio and GCC

ndunello wrote on Tuesday, March 29, 2016:

I downloaded the file 160318_FreeRTOS_SiLabs.zip and imported the project in Simplicity Studio IDE v3.
First I had to correct the path of FREERTOS_ROOT variable in project settings.

When I build the project I get the following error:
Field ‘em23VregFullEn’ could not be resolved in /RTOSDemo/SiLabs_Source/emlib/em_emu.c line 756 Semantic Error
‘EMU_EM23Init_TypeDef’ has no member named 'em23VregFullEn in /RTOSDemo/SiLabs_Source/emlibem_emu.c line 756 C/C++ Problem

How to fix it?

rtel wrote on Tuesday, March 29, 2016:

First I had to correct the path of FREERTOS_ROOT variable in project settings.

That should not be necessary - the variable is set to “${PROJECT_LOC}…”, which is a path relative to the project directory, so unless you changed the directory structure, or didn’t follow the import instructions provided on the website exactly, it should just work.

What did you need to change it to?

When I build the project I get the following error:
Field ‘em23VregFullEn’ could not be resolved in /RTOSDemo/SiLabs_Source/emlib/em_emu.c line 756 Semantic Error
‘EMU_EM23Init_TypeDef’ has no member named 'em23VregFullEn in /RTOSDemo/SiLabs_Source/emlibem_emu.c line 756 C/C++ Problem

What happens if you right click on the ‘EMU_EM23Init_TypeDef’ type in the source code (the location of which is part of the error message), then select “Open Declaration” from the pop up menu. In my set up I’m taken to the following definition:

typedef struct
{
  bool em23VregFullEn;/**< Enable full VREG drive strength in EM2/3 */
} EMU_EM23Init_TypeDef;

which, as you see, does have a em23VregFullEn variable.

Note, the header file this extract is taken from is part of the Simplicity studio directory structure, it is not part of the FreeRTOS code. Have you installed support for the target you are trying to use in Simplicity Studio (either Giant or Pearl Gecko, I don’t think you said which you were using). If not, that might be your problem.

rtel wrote on Tuesday, March 29, 2016:

I have just updated the build instructions to include the following as
the first step:

“Ensure you have Giant and/or Pearl Gecko starter kit support included
in your Simplicity Studio installation, otherwise the project will fail
to build. Support for additional EFM32 devices and starter kits can be
installed using the Simplicity Studio menus.”

ndunello wrote on Tuesday, March 29, 2016:

Unfortunately I have the EFM32 STK3600 board.

I unpacked the 160318_FreeRTOS_SiLabs.zip file in the “C:\Users\Antonello\SimplicityStudio”.
Attached images show list the problems I have.

I corrected the FREERTOS_ROOT variable to point to “C:\Users\Antonello\SimplicityStudio\FreeRTOSSiLabs”.

The declaration of ‘EMU_EM23 TypeDef Init’ is the following:

/** Energy Mode 2 and 3 initialization structure  */
typedef struct
{
  EMU_EM23VregMode_TypeDef em23Vreg;    /**< Enable VREG in EM2/3 */
} EMU_EM23Init_TypeDef;

What do you mean by ?

Support for additional EFM32 devices and starter kits can be installed using the Simplicity Studio menus.

rtel wrote on Tuesday, March 29, 2016:

Please ensure the following the instructions on importing the project
exactly - I see from the screen shot you have “copy projects into
workspace” checked, which it should not be.

ndunello wrote on Tuesday, March 29, 2016:

Ok, this resolve FREERTOS_ROOT variable problem!
Remains the problem with EMU_EM23Init, probably because I have not the STK3700 connected to the PC.

Be possible to compile For the STK3600?
If yes, what are the steps to follow?

rtel wrote on Tuesday, March 29, 2016:

Be possible to compile For the STK3600?
If yes, what are the steps to follow?

That is becoming a tools issue, rather than a FreeRTOS support issue,
but if the chip on the STK3600 is the same as that on the starter kit
then I would guess the only change needed would be the pin used to
toggle the LED.

ndunello wrote on Wednesday, March 30, 2016:

Starting from the example for the STK3700 board I created a demo for STK3600 board.
I attached the project that mast be unpacked in the folder “FreeRTOS_SiLabs\freeRTOS\Demo”.

I see the LED0 flashing.

It’s can insert a kind of “task table” in Simplicity Studio ?

rtel wrote on Wednesday, March 30, 2016:

If Simplicity Studio uses GDB then you should be able to use the Eclipse
StateViewer plug-in available from the
http://www.highintegritysystems.com website.