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 attribute for a load
region it prevents:
Overlapping of load regions.
Veneer sharing.
String sharing with the --merge
option.
If you use the AUTO_OVERLAY
attribute for a region, no other execution region can reuse a veneer placed in an overlay
execution region.
If you use the OVERLAY attribute for a
region, no other execution region can reuse a veneer placed in an overlay execution
region.
If it is not possible to reuse a veneer, new veneers are created instead.
Unless you have instructed the linker to place veneers somewhere specific using
scatter-loading, a veneer is usually placed in the execution region that contains the call
requiring the veneer. However, in some situations the linker has to place the veneer in an
adjacent execution region, either to maximize sharing opportunities or for a short branch
veneer to reach its target.
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers of your data.