cancel
Showing results for 
Search instead for 
Did you mean: 

ST25RU3993 fw compilation fail "undefined references "addTlvExt"

Franco Bocalon
Associate III

I am trying to compile the original fw sources files provided in order to generate the same binary file before proceeding to fw changes. I have all the files using version 2.1.0.0

The only changes that I made are:

1) Add the preprocessor define EVAL=1 (I am using the ST25RU3993-EVAL board)

2) Add the preprocessor define STUHFL_HOST_COMMUNICATION=1 . I want to compile a project to use the GUI provided (for a toolchain validation)

The compilation fails due an undefined "addTlvExt" reference. But this one is included in the stuhfl_helpers.h file which is included in the project.

What it can be wrong in this case?

Thank you

1 ACCEPTED SOLUTION

Accepted Solutions
Cedric Dalban
ST Employee

Hello Franco,

as mentioned above, the following preprocessor options have to be defined (cf ...\Firmware\Eval\MDK-ARM\ST25RU3993_Eval.uvprojx , line 339):

       <Define>USE_HAL_DRIVER,STM32L476xx,EVAL=1,FAST_UART=1,STUHFL_HOST_COMMUNICATION=1</Define>

You have as well to set all appropriate header files path and ensure all FW files have been duly imported in your project.

If you can only use free compiler/debugger, I warmly recommend you use the truestudio 9.3.0 (we did not test versions above) project which is provided with all our releases (...\Firmware\Eval\TrueSTUDIO\ST25RU3993_Eval\.project).

This project is ready to work.

The tool is free of charge and is available at: https://atollic.com/release-news/atollic-truestudio-stm32-9-3-0-released/

best regards,

Cedric.

View solution in original post

11 REPLIES 11
Cedric Dalban
ST Employee

Hello FBoca,

The 2 mentioned preprocessor defines are by default enabled in 2.1.0.0 (cf ...\Firmware\Eval\MDK-ARM\ST25RU3993_Eval.uvprojx , line 338):

        <Define>USE_HAL_DRIVER,STM32L476xx,EVAL=1,FAST_UART=1,STUHFL_HOST_COMMUNICATION=1</Define>

moreover addTlvExt() is the function being used in our FW to format our frames before being sent to HOST and vice versa, so widely used in our FW & HOST.

Could you please check the nominal 2.1.0.0 FW & HOST are compiling ?

Could you please provide the file name which generates this compilation issue ?

Could you please double check if no other modifications have been introduced in your code ?

Last point, you wrote: "I want to compile a project to use the GUI provided (for a toolchain validation)", I am not really sure to understand the need here, indeed the FW being generated is by default compatible with the GUI, could you please detail a bit more your need ?

best regards,

Cedric.

0693W000001rC0IQAU.pngHi Cedric, Thank you for your response.

The file which fails is evalAPI_commands.c

In fact, I want to compile the original firmware, then the only change I want to make is compile the fw but for a baudrate of 115200 bauds.

I want to use STM32 Cube for compiling. To accomplish that I generate a project "ST25RU3993_Eval.ioc" file. Then I added all the source files necessary.

I added the preprocessor defines because as a blank project does not include those ones.

At first I copied all the files and compiles OK. But after downloading the .bin file the board does not work (no leds activity)

For this reason I want to turn on the debug to check the failure, but i guess that the original fw works properly without any intervention.

Regards

Franco

Cedric Dalban
ST Employee

Hi Franco,

it seems your project does not contain the file stuhfl_helpers.c (...\Middleware\clib\STUHFL\src) or/nor the path to its header file (...\Middleware\clib\STUHFL\inc) explaining the compilation error in evalAPI_commands.c.

For your info, with all releases we provide an ARM project but also a TrueStudio project (v9.3.0) (...\Firmware\Eval\TrueSTUDIO\ST25RU3993_Eval\.project).

This will help you to generate your project by importing it directly to STM32 Cube.

Concerning, the baudrate if your project does not define FAST_UART or define it to 0 (default is FAST_UART=1) the baudrate will be set by default to 115200.

The only problem with such modification is your FW will no more be able to communicate with the GUI.

Indeed the GUI has been configured to communicate at 3MBits, this baudrate being required to sustain communications up to 800 tags/sec.

Hoping this helps,

regards,

Cedric.

Cedric,

Thank you. The missing evalAPI_commands.c file fixed the compilation. Now I download the .bin file but the board does not run. Also I will try using the TrueStudio migration but something seems wrong because in the procedure ask me indefinitely the microcontroller to use. I select the STM32L476RGT6 but the IDE ask the same endless.

Cedric,

Just a quick question. In order to have a debugging capability I will proceed to acquire a STLINK debugger/programmer. The ST25RU3993 eval board manual mention the ST-LINK/V2 as a programming option. I guess that ST-LINK/V3 is also compatible with the controller? In any case the needle adapter will be necessary.

My question is intended to confirm if the ST-LINK/V2 is mentioned as the latest programmer version when the manual was written or if is strict necessary to use a STLINK/V2 programmer for this board.

Regards

Cedric Dalban
ST Employee

Hi Franco,

It is recommended to use a STLink-V2 with this board.

The needle adapter will be indeed required (8.06.04 J-LINK 10-PIN NEEDLE ADAPTER, ref Digi-Key: 899-1047-ND).

regards,

Cedric.

PS: we just delivered the FW 2.2.0 which significantly improves antenna tuning speed and efficiency

Cedric,

Perfect. Thank you for your quick reply. Also thank you for the fw v2.2.0 news!

Franco

Cedric,

I am trying to compile de fw 2.2.0, but I get this error from a undefined ErrorHandler issue.

I am using STM32 IDE due Keil code size constraint for a free version, the steps performed were:

1) STM32 IDE blank workspace,

2) Import the "ST25RU3993_Eval.ioc" file -> Project -> Generate code

3) I replaced all the .h and .c files from fw 2.2.0 SDK source files (firmware + middleware + STUHFL folder)

4) Open again the ST25RU3993_Eval.ioc" file -> Project -> Generate code

5) Define preprocessor EVAL=1

6) Build project

Regards

Cedric Dalban
ST Employee

Hello Franco,

as mentioned above, the following preprocessor options have to be defined (cf ...\Firmware\Eval\MDK-ARM\ST25RU3993_Eval.uvprojx , line 339):

       <Define>USE_HAL_DRIVER,STM32L476xx,EVAL=1,FAST_UART=1,STUHFL_HOST_COMMUNICATION=1</Define>

You have as well to set all appropriate header files path and ensure all FW files have been duly imported in your project.

If you can only use free compiler/debugger, I warmly recommend you use the truestudio 9.3.0 (we did not test versions above) project which is provided with all our releases (...\Firmware\Eval\TrueSTUDIO\ST25RU3993_Eval\.project).

This project is ready to work.

The tool is free of charge and is available at: https://atollic.com/release-news/atollic-truestudio-stm32-9-3-0-released/

best regards,

Cedric.