XOBJDUMP#

Synopsis#

xobjdump [options] xe-file

Description#

The xobjdump tool is used to examine and manipulate the contents of XMOS Executable (XE) files.

Options#

--help#

Display a summary of the available options.

--version#

Display the build version information.

--sector-info#

Lists the contents or ‘sectors’ of the .xe file.

--strip#

Creates a new XE file with suffix .xb in which the ELF sectors containing ELF files have been replaced with BINARY sectors containing flat binary images and a ‘load address’ at which to place them.

Also removes the SYSCONFIG sector.

XE files generated by this option retain the same format and can therefore be further manipulated by xobjdump.

--split, -s#

Extracts ELF, BINARY, SYSCONFIG, XN, PROGINFO and XSCOPE sectors from the XE package and writes them as files in the current directory. Specifically:

Sector type

Default generated filename

ELF

image_n<node>c<tile>.elf

BINARY

image_n<node>c<tile>.bin

SYSCONFIG

config.xml

XN

platform_def.xn

PROGINFO

program_info.txt

XSCOPE

xscope.xscope

Where a sector exists with duplicate <node> and <core> value to a sector previously extracted (which will often be the case), the extracted filename will have an incrementing id added. For instance, the first ELF sector on node 0, tile 0 will be extracted as image_n0c0.elf. The second ELF sector on node 0, tile 0 will be extracted as image_n0c0_2.elf.

--split-dir#

If --split is set, then extracts sectors into the directory <dir>. The directory must already exist.

-o <file>#

When used with --split, causes ELF sectors to be extracted to <file>_n<node>c<tile>.elf.

When used with --strip, new XE file is given name <file>.

--disassemble, -d#

Disassembles contents of all executable sectors in XE file

--source, -S#

Same as --disassemble, but interleaves source code into disassembly output. Requires source to have been built with xcc -g.

--disassemble-all, -D#

Same as --disassemble, but also provides binary contents of non-executable data sections.

Readelf-alike options#

The following options all have more powerful alternatives that rely on the generally available readelf tool.

--syms, -t#

Provides the symbol table for every ELF sector in the XE file.

More powerful example: Use xobjdump --split to obtain all the ELF files, then issue readelf --syms *.elf.

--size#

Provides a summary of the code and data (both initialised and uninitialised) requirements for every ELF sector in the XE file.

More powerful example: Use xobjdump --split to obtain all the ELF files, then issue readelf --sections *.elf.