Veneers are used to switch between ARM and Thumb code or to
perform a longer program jump than can be specified in a single
instruction. You can place veneers at a specific location by including
the linker-generated symbol
Veneer$$Code in a
scatter file. At most, one execution region in the scatter file
can have the
*(Veneer$$Code) section selector.
If it is safe to do so, the linker places veneer input sections
into the region identified by the
selector. It might not be possible for a veneer input section to
be assigned to the region because of address range problems or execution
region size limitations. If the veneer cannot be added to the specified
region, it is added to the execution region containing the relocated
input section that generated the veneer.
*(IWV$$Code) in scatter files
from earlier versions of ARM tools are automatically translated
*(Veneer$$Code) is ignored when the amount
of code in an execution region exceeds 4Mb of Thumb code, 16Mb of
32-bit Thumb code, and 32Mb of ARM code.