3.6 --cad
Produces a C array definition or C++ array definition containing binary output.
Usage
You can use each array definition in the source code of another application. For example, you might want to embed an image in the address space of another application, such as an embedded operating system.
If your image has a single load region, the output is directed to stdout
by default. To save the output to a file, use the --output
option together
with a filename.
If your image has multiple load regions, then you must also use the
--output
option together with a directory name. Unless you specify a full
path name, the path is relative to the current directory. A file is created for each load
region in the specified directory. The name of each file is the name of the corresponding
execution region.
Use this option with --output
to generate one output file for each load
region in the image.
Restrictions
You cannot use this option with object files.
Considerations when using --cad
A file is only created when the load region describes code or data that is present in the ELF file. For example a load region containing only execution regions with ZI data in them does not result in a output file.
Example
The following examples show how to use --cad
:
To produce an array definition for an image that has a single load region, enter:
fromelf --cad myimage.axf unsigned char LR0[] = { 0x00,0x00,0x00,0xEB,0x28,0x00,0x00,0xEB,0x2C,0x00,0x8F,0xE2,0x00,0x0C,0x90,0xE8, 0x00,0xA0,0x8A,0xE0,0x00,0xB0,0x8B,0xE0,0x01,0x70,0x4A,0xE2,0x0B,0x00,0x5A,0xE1, 0x00,0x00,0x00,0x1A,0x20,0x00,0x00,0xEB,0x0F,0x00,0xBA,0xE8,0x18,0xE0,0x4F,0xE2, 0x01,0x00,0x13,0xE3,0x03,0xF0,0x47,0x10,0x03,0xF0,0xA0,0xE1,0xAC,0x18,0x00,0x00, 0xBC,0x18,0x00,0x00,0x00,0x30,0xB0,0xE3,0x00,0x40,0xB0,0xE3,0x00,0x50,0xB0,0xE3, 0x00,0x60,0xB0,0xE3,0x10,0x20,0x52,0xE2,0x78,0x00,0xA1,0x28,0xFC,0xFF,0xFF,0x8A, 0x82,0x2E,0xB0,0xE1,0x30,0x00,0xA1,0x28,0x00,0x30,0x81,0x45,0x0E,0xF0,0xA0,0xE1, 0x70,0x00,0x51,0xE3,0x66,0x00,0x00,0x0A,0x64,0x00,0x51,0xE3,0x38,0x00,0x00,0x0A, 0x00,0x00,0xB0,0xE3,0x0E,0xF0,0xA0,0xE1,0x1F,0x40,0x2D,0xE9,0x00,0x00,0xA0,0xE1, . . . 0x3A,0x74,0x74,0x00,0x43,0x6F,0x6E,0x73,0x74,0x72,0x75,0x63,0x74,0x65,0x64,0x20, 0x41,0x20,0x23,0x25,0x64,0x20,0x61,0x74,0x20,0x25,0x70,0x0A,0x00,0x00,0x00,0x00, 0x44,0x65,0x73,0x74,0x72,0x6F,0x79,0x65,0x64,0x20,0x41,0x20,0x23,0x25,0x64,0x20, 0x61,0x74,0x20,0x25,0x70,0x0A,0x00,0x00,0x0C,0x99,0x00,0x00,0x0C,0x99,0x00,0x00, 0x50,0x01,0x00,0x00,0x44,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
For an image that has multiple load regions, the following commands create a file for each load region in the directory
:root
\myprojects\multiload\load_regionscd
root
\myprojects\multiload fromelf --cad image_multiload.axf --output load_regionsIf image_multiload.axf contains the execution regions
EXEC_ROM
andRAM
, then the filesEXEC_ROM
andRAM
are created in theload_regions
subdirectory.