2024-05-10 05:02 PM
Hello,My name is Ray.
I'm an end user that come from Taiwan,I'm still learning coding with stm32
Recently i encounter a problem about debug via STMCubeIDE,The version is 1.15.1
Once i coding fine and process into debug mode,it will perform a full chip erase and download the biniary program that i wrote and compiler with IDE,But some variables i want to save in flash memory will be erased if download program
I tried to uncheck [download] in debug settings,it will work that my variables will not be modified,But that situation just suitable if i'm done with whole coding.
Then i tried to survey some solutions that can aviod erase my memory range,Before I do the survey.I had checked that the memory user can write in is from 0x08000000~0x08080000,After i check user text and flash.ld,i found that some user context will occupied some memories,so i decided to write at 0x0800200
After doing these checking method,i modified linker file with some code below:
.eeprom :
{
. += 0x200;
. = ALIGN(0x800); -->2Kbytes
}
} >FLASH
It will worked that the code will skip 0x08000200 with 2000bytes area,but the IDE will do a full erase if i want to download the new version of program..How can i tell the ide to avoid this problem?
I tried to add[NOLOAD] after.eeprom : like.eeprom{NOLOAD] : but it's not effective.
i thought it is effect only on system power on but not in the situation that progress a programm download..
Please help me with this question if there is some scripts to configure Debugmode of Cubeide,or some codes that i didn't notice,Thanks a lot!
/*note*/
The attached file(7z->mp4) is a operation that i want to show how memories be initial if i relaunch(it will download program again,to simulate the new version code to be downloaded),don't mind if my memory address is wrong(not 0x08000200),that's the test on yesterday,i was decided to write at 0x08005000 at that time.