ARM Technical Support Knowledge Articles

How do I load and debug a big-endian image using RealView Debugger?

Applies to: RealView Development Suite (RVDS)


RealView Debugger supports debug and trace of both little-endian (LE) and big-endian (BE) ELF images. 

ARM cores are natively little-endian but can be configured for either little-endian or big-endian memory systems. The big-endian configuration depends on the ARM Architecture version implemented. ARM cores based on ARM Architecture v5 and earlier support word invariant BE32 while cores based on ARM Architecture v6 and later support byte invariant BE8.

Details on how to configure your ARM core for big-endian can be found in the Technical Reference Manual (TRM) available on the ARM Information Centre website.

In order to load and debug big-endian images in RealView Debugger you first need to configure both the debugger and target for big-endian operation.

  1. Open the 'Connect to Target' dialog from the 'Target' menu in RVD and edit the target connection properties. Change the endianness to 'big'. If you are using RVDv3.1 or earlier you need to modify this setting in the 'Connection Properties' window ('Target' menu).

  2. Connect to the target and modify the ARM core for big-endian operation. For cores based in ARM Architecture v6 and later modify the endianness bit in the CPSR register. Refer to the TRM for details specific to your ARM core.

  3. Now load your big-endian image onto the target using the 'Load Image' option in RVD.

Note that you need to change your target endianness to match your image before the image is loaded. The compilation tools will prepare the image contents based on the specified endianness so your image will not work if you load it onto a target with opposite endianness, even if your image startup code correctly changes the endianness.

Also note that the RealView Compilation Tools and RealView Debugger do not support mixed endianness images.

Rate this article

Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential