cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeIDE Version: 1.16.1 Build: 22882_20240916_0822 (UTC) less reliable than ever before

etheory
Senior II

Hi there!

Since updating to:

STM32CubeIDE Version: 1.16.1 Build: 22882_20240916_0822 (UTC) I've noticed that changes to the .ioc configuration file performed through the Device Configuration Tool do not reliably propagate to code using the "Do you want generate Code?" (which should be "Do you want to generate Code?"....) option do not generate code that is correct, instead it generates code from a previous configuration.

This particular aspect of STM32CubeIDE seems to get worse in every iteration.

Also, when you use the configuration tool twice in a row, and do a save-generate cycle, it stops working and the "save" option disappears, and you have to close and re-open it. This is time consuming and very frustrating.

This issue is new, and did not occur previously.

It makes STM32CubeIDE even more unreliable than it already was, and someone should fix it with priority.

Also the recent change to require the user to define "USER_VECT_TAB_ADDRESS" in the "C/C++ Build/Settings" Property for a project in order to stop code from crashing due to not defining the vector table, which again, was never previously required, is pretty bad, and will prevent new users from using STM32CubeIDE, since it's unbelievably far from obvious.

Is someone working to resolve these new issues?

Thanks. 

1 ACCEPTED SOLUTION

Accepted Solutions
etheory
Senior II

So far a fresh re-install seems to have fixed the issue.

 

I will report back here if any of the issues re-surface.

 

Thanks.

View solution in original post

13 REPLIES 13
Ghofrane GSOURI
ST Employee

Hello @etheory 

First let me thank you for posting.

  • A ticket has been submitted to the development team regarding the typo  "Do you want generate Code?" , Ticket 194595.
  • Regarding the issue with the save option, I have not experienced it on my side.  
  • Concerning the 'USER_VECT_TAB_ADDRESS', after checking, this change is mentioned in UM3069 and UM3045 for NUCLEO-WB55RG and STEVAL-PROTEUS1 kit.  

 

THX

Ghofrane

Thanks @Ghofrane GSOURI

Code generation is so bad in this version for me, that about 1 in 4 times, it actually puts random characters all through the generated code, and then it doesn't compile. I have to force regenerate it to fix the problem.

The next time it happens I'll paste an example here so you can see it.

About 1 in 2 times for me the codegen is wrong also, and does not reflect the options that I just set.

As for the save button disappearing, it still happens every 2-3 times.

How can I send you that info for debugging? It's making STM32CubeIDE very very painful to use now.

  • Concerning 'USER_VECT_TAB_ADDRESS' and mentioning it in UM3069, that's not good enough. Right now, new users won't be able to execute a call to HAL_Delay, which basically renders every simple starter project broken. How can you think that's a good way to introduce new users to STM32CubeIDE?
  • UM3069 is called: "um3069-getting started with the stm32cube function pack for stevalproteus1 evaluation kit for predictive maintenance application based on artificial intelligence ai stmicroelectronics" and to be honest, I couldn't care less about AI and never would have read that. I doubt 99.99% of users will read it also.
  • UM3045 is called "um3045-getting started with the stswproteus software package for the stevalproteus1 industrial sensor node kit stmicroelectronics" - again, nobody is going to read this.
  • NUCLEO-WB55RG is for one of your products, you have MANY products. This isn't going to help.
  • STEVAL-PROTEUS1 - again, hardly anyone is going to see this. This won't help.
  • So mentioning it in these areas is almost entirely useless to a normal user.
  • You REALLY need to change this default back to what it was previously, so it actually works. Thanks.

Thanks

Hello @etheory 

Ticket 194942 has been escalated to the development team regarding  'USER_VECT_TAB_ADDRESS'.

THX

Ghofrane

THANK YOU!

etheory
Senior II

@Ghofrane GSOURI - here is an example where STM32CubeIDE has trashed the automatic generated code:

 

void MX_USB_Device_Init(void)
{
#t/* USER CODE BEGIN USB_Device_Init_PreTreatment */

#t/* USER CODE END USB_Device_Init_PreTreatment */
#t
#t/* Init Device Library, add supported class and start the library. */
#tif (USBD_Init(&hUsbDeviceFS, &CDC_Desc, DEVICE_FS) != USBD_OK) {
#t#tError_Handler();
#t}
#tif (USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK) {
#t#tError_Handler();
#t}
#tif (USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK) {
#t#tError_Handler();
#t}
#tif (USBD_Start(&hUsbDeviceFS) != USBD_OK) {
#t#tError_Handler();
#t}
#t/* USER CODE BEGIN USB_Device_Init_PostTreatment */

#t/* USER CODE END USB_Device_Init_PostTreatment */
}

 

 Could you please get someone to look into this, it still happens to me frequently. This was never previously an issue for me in older versions of STM32CubeIDE. When I generate a second time, it fixes the issue.

Thanks.

ferro
Senior III

Hi,

I also observe Cube 1.16.1 to be generating inconsistent outputs - in my case .cproject file. As if different generators are used/installed.

In a commit on the left, rows 2 and 3 are on separate lines but in newly generated .cproject these are combined into single line 2 on the right. Also spaces are replaced with tabs.

ferro_0-1730237757155.png

 

This is caused by .cproject being altered by Cube(indentation with tabs) vs GfxDesigner(indentation with spaces). Impressive.


@etheory wrote:

here is an example where STM32CubeIDE has trashed the automatic generated code

 

void MX_USB_Device_Init(void)
{
#t/* USER CODE BEGIN USB_Device_Init_PreTreatment */

#t/* USER CODE END USB_Device_Init_PreTreatment */
#t
#t/* Init Device Library, add supported class and start the library. */
#tif (USBD_Init(&hUsbDeviceFS, &CDC_Desc, DEVICE_FS) != USBD_OK) {
#t#tError_Handler();
#t}
#tif (USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK) {
#t#tError_Handler();
#t}
#tif (USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK) {
#t#tError_Handler();
#t}

 

 


So it's putting in the text string "#t" wherever there should be a TAB, then?

Hello @etheory 

This behavior is weird.

After multiple tries, I couldn't reproduce the issue from my side.

So let's try to uninstall STM32CubeIDE and reinstall it again. This could help solve the issue.

I will be waiting for your feedback.

THX

Ghofrane