cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeIDE code generation error with NUCLEO-STM32H7S3L8

Intector
Associate III

Hello,

I've got two NUCLEO-STM32H7S3L8 boards and started playing around with those. I created a project in STM32CubeIDE and used the standard template for the board with the generated example data. STM32CubeMX generated the "Appli," "Boot," and "ExtMemLoader" projects, but they seem to have some errors.

Here's what I found so far:

"Appli"-Project:

This line of generated code:

 #elif defined ( __GNUC__ ) || defined ( __ARMCC_VERSION )) /* GNU Compiler */

This led to this compiling error:


../Core/Src/eth.c:36:58: error: missing '(' in expression
36 | #elif defined ( __GNUC__ ) || defined ( __ARMCC_VERSION )) /* GNU Compiler */
| ^
../Core/Src/eth.c: In function 'MX_ETH_Init':
../Core/Src/eth.c:73:22: error: 'DMATxDscrTab' undeclared (first use in this function)
73 | heth.Init.TxDesc = DMATxDscrTab;
| ^~~~~~~~~~~~
../Core/Src/eth.c:73:22: note: each undeclared identifier is reported only once for each function it appears in
../Core/Src/eth.c:74:22: error: 'DMARxDscrTab' undeclared (first use in this function)
74 | heth.Init.RxDesc = DMARxDscrTab;
| ^~~~~~~~~~~~

That one is an easy fix I deleted that last bracket and it compiles just fine. It's annoying because it must be done every time you run code generation after STM32CubeMX changes.

"ExtMemLoader"-Project:

After building the project, this message appears:

bash "../postbuild.sh" "C:\ST\STM32CubeIDE_1.13.2\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.1.400.202404281720\tools\bin/ExternalLoader"
STM32CUBE IDE is found!
cp: can't stat 'Intector/project_team/STM/workbench/STM32H7S3L8-CHECK/ExtMemLoader/Debug/STM32H7S3L8-CHECK_ExtMemLoader.elf': No such file or directory
warning :: File copy failed under STM32CubeProgrammer please check that the folder exists or you have the right permission to copy the ExtMemLoader.
cp: can't stat 'Intector/project_team/STM/workbench/STM32H7S3L8-CHECK/ExtMemLoader/Debug/STM32H7S3L8-CHECK_ExtMemLoader.elf': No such file or directory
warning :: File copy failed under STM32CubeIDE please check that you have the right permission to copy the ExtMemLoader.

I have no idea what to do with that. The folder exists, and I have "write access" to it. Also, why does the message show up twice?

"Project Explorer":

The project names "Boot" and "ExtMemLoader" have little warning signs on the icons. What do those mean?

Intector_0-1730298532253.png

 

Never forget:

"Always be yourself. Unless you can be a pirate. Then always be a pirate."

 

1 ACCEPTED SOLUTION

Accepted Solutions

Hello Imen.D,

Thank you for your help with my question.

The STM32CubeIDE version I'm using is the latest:

Intector_0-1730405642356.png

I looked a little deeper into the issue and found that after the "ExtMemLoader" project is built, the " postbuild.sh" script is running. This script renames the .elf file and copies it to two different locations.

One is:

C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin/ExternalLoader/STM32H7S3L8_TEMPLATE_XIP_ExtMemLoader.stldr

The other one is:

C:\ST\STM32CubeIDE_1.13.2\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.1.400.202404281720\tools\bin/ExternalLoader/STM32H7S3L8_TEMPLATE_XIP_ExtMemLoader.stldr

Those directories were read-only on my computer's user level, which caused the problem. I changed the access rights, and everything worked fine.

Again, thank you for your help.

I still don't know what those warning signs on the project icons for the Boot and ExtMemLoader projects mean.

Intector_1-1730406294942.png

 

 

View solution in original post

4 REPLIES 4
Imen.D
ST Employee

Hello @Intector ,

Could you please share your project file for analysis and reproduce this issue, and please provide more details about tools version used.

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

Hello Imen.D,

I sure can give you my project. Please let me know where I went wrong.

Imen.D
ST Employee

Hello @Intector ,

I'm not able to reproduce the same warning in my environment and using latest release of CubeMX and CubeIDE (v1.16.x).

Please update the CubeIDE version and keep me informed about your progress.

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

Hello Imen.D,

Thank you for your help with my question.

The STM32CubeIDE version I'm using is the latest:

Intector_0-1730405642356.png

I looked a little deeper into the issue and found that after the "ExtMemLoader" project is built, the " postbuild.sh" script is running. This script renames the .elf file and copies it to two different locations.

One is:

C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin/ExternalLoader/STM32H7S3L8_TEMPLATE_XIP_ExtMemLoader.stldr

The other one is:

C:\ST\STM32CubeIDE_1.13.2\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.1.400.202404281720\tools\bin/ExternalLoader/STM32H7S3L8_TEMPLATE_XIP_ExtMemLoader.stldr

Those directories were read-only on my computer's user level, which caused the problem. I changed the access rights, and everything worked fine.

Again, thank you for your help.

I still don't know what those warning signs on the project icons for the Boot and ExtMemLoader projects mean.

Intector_1-1730406294942.png