Overlay Support

Parent Previous Next

Purpose

This document descries support for overlays in winIDEA.

Overlay Overview

An overlay is one or more regions of program code which is copied at application start, or during application execution from its load location (typically ROM memory) into RAM memory. This technique is used to:

Enhance performance when execution from RAM is faster than from ROM

Allow different application modules to be loaded into RAM at different times.

Code in an overlay region is typically linked to its execution (RAM) address. Symbolic information can be reported at load or at execute address.

Static Overlays

Overlay region which is copied to RAM only once and stays loaded for the duration of the application is called a static overlay.

Dynamic Overlays

If an overlay RAM region is loaded with different overlays during application lifetime, it is a dynamic overlay. For dynamic overlays symbolic information should be reported for load addresses, otherwise the symbolic information from multiple overlays will overlap.

Troubles with Overlays

On-Chip Trace

On-chip trace relies on knowing the code which is executed. A debugger will extract this information from the download file, but in an overlay system no code is loaded at the execute address. An overlay unaware debugger will not be able to reconstruct program trace when an overlay is executing.

For dynamic overlays the debugger must also be able to recognise when an overlay is loaded. This is typically achieved with signaling via write to a global variable or an explicit instrumentation message.

Debugging

If symbolic information is reported at execute address, debugging will work well for static overlays, but will fail for dynamic overlays, because one execution address maps into multiple overlays.

For dynamic overlays, symbolic information must be reported with load addresses – thus making them unique.

winIDEA Support

winIDEA currently supports only static overlays. Symbolic information must be reported with execute addresses.

Configuration

Overlays are Process specific. To configure them,

open Debug/Files for Download

click the Processes tab

double-click to edit the appropriate Process


In the Process configuration, select the Overlays tab.

None: no overlays are used in this process

Static: this process uses static overlays.
Click the Configure button to configure the static overlay.

A single static overlay will typically span only a single address range. This range is defined by clicking the Add… button.

If several address regions operate as overlays, add them all using the same procedure.

An overlay range is defined with these parameters:

Load Address

The address where the overlay code is loaded (ROM address).

Size

Size of the overlay range.

Execute Address

The address where the code will be copied to and executed. (RAM address)












Disclaimer: iSYSTEM assumes no responsibility for any errors which may appear in this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does not make any commitment to update the information herein.

© iSYSTEM . All rights reserved.