Skip to main content
etheory
Senior
October 22, 2024
Solved

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

  • October 22, 2024
  • 4 replies
  • 3404 views

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. 

    Best answer by etheory

    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.

    4 replies

    Ghofrane GSOURI
    Technical Moderator
    October 22, 2024

    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

    To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
    etheory
    etheoryAuthor
    Senior
    October 23, 2024

    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

    Ghofrane GSOURI
    Technical Moderator
    October 24, 2024

    Hello @etheory 

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

    THX

    Ghofrane

    To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
    etheory
    etheoryAuthor
    Senior
    October 27, 2024

    @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.

    Andrew Neil
    Super User
    October 31, 2024

    @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?

    A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
    ferro
    Lead
    October 29, 2024

    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

     

    ferro
    Lead
    October 31, 2024

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

    etheory
    etheoryAuthorBest answer
    Senior
    November 12, 2024

    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.