Skip to main content
Enour.1
Associate III
November 3, 2020
Solved

After any Pin-out modification,, IDE replace main.c with a new one, and all the written code will be deleted !! Is there a way to change that bad process ?

  • November 3, 2020
  • 5 replies
  • 2837 views

..

This topic has been closed for replies.
Best answer by Imen.D

Hello @Enour.1​ ,

In CubeMx for keeping the USER CODE section, you should check "code generator" setting and ensure that you ticked this option "Keep user code when re-generating", as following: Project Manager -> [Code Generator] TAB, then tick "Keep User Code when re-generating"

To protect all the modifications you did, you have to insert your code in the USER CODE sections parts defined in the main file like :

 /* USER CODE BEGIN xx */

...

 /* USER CODE END xx */

When you modify your configuration with CubeMX, this tool generates a new set of files needed to support your configuration. So all files part of the previous configuration are overwritten. But any code located in those sections is preserved against overwriting. Otherwise the user code is lost.

Hope this helps you.

When your question is answered, please select the Best answer so that this thread will be marked as solved.

Imen

5 replies

Imen.DBest answer
ST Technical Moderator
November 3, 2020

Hello @Enour.1​ ,

In CubeMx for keeping the USER CODE section, you should check "code generator" setting and ensure that you ticked this option "Keep user code when re-generating", as following: Project Manager -> [Code Generator] TAB, then tick "Keep User Code when re-generating"

To protect all the modifications you did, you have to insert your code in the USER CODE sections parts defined in the main file like :

 /* USER CODE BEGIN xx */

...

 /* USER CODE END xx */

When you modify your configuration with CubeMX, this tool generates a new set of files needed to support your configuration. So all files part of the previous configuration are overwritten. But any code located in those sections is preserved against overwriting. Otherwise the user code is lost.

Hope this helps you.

When your question is answered, please select the Best answer so that this thread will be marked as solved.

Imen

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
Enour.1
Enour.1Author
Associate III
November 3, 2020

Thanks for your reply,

Where can I find that TAB : Project Manager -> [Code Generator] ?

I'm using Stm32cubeIDE workspace 1.4.0

Enour.1
Enour.1Author
Associate III
November 3, 2020

Hello Imen,

I have already found that TAB Project Manager->Code Generator in the device configuration Tools,

the option "Keep User Code when re-generating" is by default checked, I didn't change change it,

The IDE still behave in the same way, simple code inside while(1) { } block :

while(1){

  /* USER CODE BEGIN xx */

...

 /* USER CODE END xx */

}

will be lost with any Pin-Out change and code regeneration..

Enour.1
Enour.1Author
Associate III
November 3, 2020

Hello Imen,

I found this useful video explain it :

https://www.youtube.com/watch?v=hyZS2p1tW-g&feature=emb_logo

At Min 9:40

ST Technical Moderator
November 4, 2020

Hope you solved your problem!

When your question is answered, please close this thread by marking "Select as Best" the post that helped you or solved your problem.

Imen

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks