You copied the Doc URL to your clipboard.

Reuse of veneers when scatter-loading

The linker reuses veneers whenever possible, but there are some limitations on the reuse of veneers in protected load regions and overlaid execution regions.

A scatter file enables you to create regions that share the same area of RAM:

  • If you use the PROTECTED keyword for a load region it prevents:

    • overlapping of load regions

    • veneer sharing

    • string sharing with the --merge option.

  • If you use the OVERLAY keyword for a region, both the following conditions are enforced on reuse:

    • an overlay execution region cannot reuse a veneer placed in any other overlay execution region

    • no other execution region can reuse a veneer placed in an overlay execution region.

If these conditions are not met, new veneers are created instead of reusing existing ones. Unless you have instructed the linker to place veneers somewhere specific using scatter-loading, a veneer is always placed in the execution region that contains the call requiring the veneer. This implies that:

  • for an overlay execution region, all its veneers are included within the execution region

  • an overlay execution region never requires a veneer from another execution region.