| |||
| Home > Programming flash memory > Programming flash memory | |||
Flash is a common type of non-volatile memory used to store code and data. DS-5 Debugger can erase and write NOR flash memory, provided that a suitable flash algorithm is available. NOR flash memory is usually mapped into the address space of the processor, and in this case its contents can be read using the normal debugger memory read operations, such as the x command and the Memory view. Other types of flash memory, such as NAND flash, are not supported by DS-5 Debugger, and you must use alternative methods to access these, such as software supplied with any target operating system you are running or by using tools supplied by your processor or board manufacturer.
Before carrying out any flash programming operations you must register your flash algorithm with the debugger.
You must define a suitable memory map for your algorithm before the debugger can carry out flash programming operations. To do this:
Use the memory flash command to
define a region of flash memory and insert it into the memory map
for the target. For example:
memory flash 0x08000000 0x0801FFFF Keil.STM32F10x_128.FLX clockSpeed=8000000 # Defines a flash region for Keil.STM32F10x_128.FLX algorithm
To use the memory flash command you must
have a valid ARM® Compiler
license file.
Use the memory command to define
a region of RAM and insert it into the memory map for the target.
For example:
memory 0x20000000 0x20004FFF # specify RW region 0x20000000 0x20004FFF
Use the info memory command to
verify the memory map for the target.
Use the set flash-buffer command
to define a region of RAM memory for use as a buffer when programming
flash memory. The memory range is written to as part of flash programming,
and the original content is not restored afterwards. For example,
to define the buffer shown in the figure you can use the following:
set flash-buffer 0x20000100 0x20004EFF # set flash buffer
When all the regions are set up then you can use the same commands that you normally use when writing to RAM.
For example:
load myFlashImage.axf # Image that loads into flash # memory addresses restore myFile.bin binary 0x08000000 # Restore content of binary file # myFile.bin starting at 0x08000000
The following figure shows the memory map for this example.
ARM® DS-5™ Debugger Command Reference: