7.9.8.46. GEL_MemorySave()

Saves a block of memory to file.

Syntax

GEL_MemorySave(startAddress, page, length, “fileName[,io_Format][,append][,bitsize][,swap])

Parameters

startAddress is the first address in the block.

page identifies the type of memory to fill: 0 (Program memory), 1 (Data memory) or 2 (I/O space)

For processors that do not have more than one type of memory, use 0 for this Parameters. For simulated targets, I/O Space Parameters is not supported. GEL does not give warning messages for invalid parameters such as invalid page values.

length defines the number of words to fill.

fileName names the file to store the target data. The fileName must be enclosed in quotation marks.

io_format is an integer that represents the format in which memory words will be written to the specified output file. The default output is 1 (hexadecimal). It accepts the following Parameters:

1

2

3

4

5

6

7

8

*.dat

*.dat

*.dat

*.dat

*.out

*

*

*.bin

Hex

Integer

Long

Float

COFF

Addressable unit

Use Header

Raw Binary

append represents whether memory to be saved should overwrite the contents of the specified file (0) or append to the end of the file (any nonzero value).

0

Any nonzero value

Overwrite the contents of the specified file

Append to the end of the file


Appending will neither modify existing nor create file header information. The append feature is not supported for COFF formatted files.

bitsize is option if the file is not raw binary. If we are save to a raw binary file (.bin). it indicates the bit size of the data type to interpret the data as when saving to file. Since, data is saved in a little endian format in the file; this is important when doing automated endiannes conversion while saving the data.

8 - Save data one byte at time. No need to swap

16 - Save data two bytes at a time. Swap bytes when reading from big endian target to convert to little endian

32 - Read data 4 bytes at a time. Swap bytes when reading from big endian target to convert to little endian

64 - Read data 8 bytes at a time. Swap bytes when reading from big endian target to convert to little endian

swap - swap the data before applying the automated endianness conversion. This effectivly disables the automated endiannes conversion. Set swap to true to save data as big endian on the host side

Description

This function can be used to save a block of target memory to a specified file. The block of data is specified by the startAddress, page, and length. If the filename contains a *.out for the file extension, COFF format is used; otherwise, When data is saved in a raw binary (.bin) it is written out in little endian format independant of the target endianness. The bitsize and swap options could be used to further tweak how the binary data is saved and save to big endian format instead. For support for additional formats see GEL_MemorySave2

Synchronous

Synchronous from GEL: Yes

Completely synchronous: Yes

Examples

GEL_MemorySave(0x1000, 1, 0x100, “c:\mydir\myfile.dat”);

This example appends the block of memory to saved_memory.txt and formats the memory as integers:

GEL_MemorySave(0x100, 0, 0x10, “saved_memory.txt”,2, 1);

Related Topics

GEL_MemoryLoad

GEL_MemoryFill

GEL_MemoryLoad2

GEL_MemorySave2