Locating Software in the FLASH Memory

Software may be located in either the volatile (static ram) or non-volatile (FLASH) memory. If you create a SoftConsole project from Libero (Write Application Code), Libero will create a SoftConsole project that compiles and links your code to be located in the static ram space. To load the program to this space, you must select the M3-Ram-Target when creating a Debug Configuration. When a Debug session is started, it loads the code to the static ram.  

Typically, the non-volatile memory space is not used for debugging because it has a limited number of writes before it fails. For mobile applications or the project demos, you may want your kit to run without being connected to SoftConsole. You can do this by loading the software into the FLASH memory. Then all you need to do to initiate your code is to connect power, press the RESET push button, then the PU_N push button.

To load your software into the FLASH memory you will need to locate the software for FLASH memory and then load it to FLASH memory. To locate the locate the code you will have to change the linker script file from esram.ld to envm.ld. To do this, select the application directory in the SoftConsole Project Explorer  ( ...._app) in SoftConsole, right click and select properties, C/C++ Build and Settings. Under Linker select Misc and you should see something like this.

The esram.ld file tells the linker to locate the software in the static ram space. To locate the program in the FLASH ram, change esram.ld to envm.ld. Click Apply and exit.

Next compile your code.

Finally, you must load the code to the FLASH ram. To do this you will need to specify a Debug Configuration for this purpose. Again, select the application directory in the SoftConsole Project Explorer  ( ...._app) in SoftConsole, right click and select Debug As, Debug Configurations. Next select eNVM ram target and create a new Debug Configuration . You should get something that looks like this.

Apply and run this Debug configuration. You can run the code from SoftConsole and debug just like you do for static ram or the code will run without SoftConsole. Just connect power through the USB cable, hit RESET push button and then PU_N  push button. Note, you need to have the debug cable (USB connection furthest from the expansion board connector) disconnected. Leave the USB cable nearest the expansion board connector connected to provide power and the UART0 connection if required.