English
Language : 

UM0438 Datasheet, PDF (14/50 Pages) STMicroelectronics – This user manual defines a programming model for use with the variable-length encoding
Application Binary Interface (ABI)
UM0438
2.2.2
14/50
Example - Object file b.o
0
0x00000008
4
0x00000008
8
0x00000002
12
0x41505569
16
0x6e666f00
20
0x00010002
24
0x00040001
# 8 bytes in
"APUinfo\0"
# 8 bytes (2 words)
of APU information
# NOTE type 2
# ASCII for "APUi"
# ASCII for "nfo\0"
# APU #1, revision 2
# APU #4, revision 1
Linkers merge all .PPC.EMB.apuinfo sections in individual object files into one, with merging
of per-APU information. For example, after linking file a.o and b.o, the merged
.PPC.EMB.apuinfo is as shown in example below.
Example - PPC.EMB.apuinfo
0
0x00000008
4
0x0000000C
8
0x00000002
12
0x41505569
16
0x6e666f00
20
0x00010002
24
0x01040001
28
0x00040001
# 8 bytes in
"APUinfo\0"
# 12 bytes (3 words)
of APU information
# NOTE type 2
# ASCII for "APUi"
# ASCII for "nfo\0"
# APU #1, revision 2
# VLE, revision 1
# APU #4, revision 1
Note that it is assumed that a later revision of any APU or extension is compatible with an
earlier one, but not vice versa. Thus, the resultant .PPC.EMB.apuinfo section requires APU
#1 revision 2 or greater to work, and does not work on APU #1 revision 1. If a revision
breaks backwards compatibility, it must be given a new unique identifier.
A linker may optionally warn when different objects require different revisions, because
moving the revision up may make the executable no longer work on processors with the
older revision. In this example, the linker could emit a warning like “Warning: bumping APU
#1 revision number to 2, required by b.o.”
VLE identification
The executable and linking format (ELF) allows processor-specific section header and
program header flag attributes to be defined. The following section header and program
header flag attribute definitions are used to mark ELF sections containing VLE instruction
encodings.