Firmware linker scripts¶
We use the following linker targets:
Target |
Description |
Typical user |
Restriction |
compalram |
Used to load firmware into the RAM of the phone at boot time, using the CompalRamLoader |
Almost everything |
64kByte |
e88flash |
Image to be flashed directly into the start of NOR Flash of the phone |
loader.bin |
- |
e88loader |
Image to be flashed to NOR flash (after loader) to be booted by loaderbin managed by osmoload |
Everything |
- |
highram |
Image to be loaded into RAM by loaderbin |
Everything |
128kByte |
In terms of useful configurations, you can for example
- RAM-load compalram a image <= 64kByte, or
- RAM-load compalram image of
loader.bin
followed by a highram image of your application, or
- RAM-load compalram image of
loader.bin
followed by flashing a e88flash image of loader.bin
to flash
- RAM-load compalram image of
loader.bin
followed by flashing a e88loader image to flash
Memory layout¶
compalram¶
This is pretty unexciting as everything is put in RAM.
Base |
Size |
Section |
Usage |
0x0080001c |
0x18 |
text.exceptions |
Exception Vector Table |
0x00800100 |
0x04 |
compal.header |
Compal Header |
0x00800104 |
0x10000 |
text/ctors/dtors/rodata/data |
|
highram¶
Base |
Size |
Section |
Usage |
0x0080001c |
0x18 |
text.exceptions |
Exception Vector Table |
0x00820000 |
0x20000 |
text/ctors/dtors/rodata/data |
|
e88flash¶
Base |
Size |
Section |
Usage |
0x00010000 |
0x100 |
text.start |
Vectors before copied to flash |
0x00010100 |
- |
text/ctors/dtors/rodata/got |
read-only code and data |
0x00800000 |
0xff |
compal.reservedram |
RAM reserved for compal loader? |
0x00800100 |
- |
data/.ramtext/.bss |
read-write data |
e88loader¶
Base |
Size |
Section |
Usage |
0x00002000 |
0xa0 |
compal.header |
|
0x000020a0 |
0x38 |
compal.vectors |
exception vectors, run-time relocated to 0x0080001c |
0x000020f8 |
- |
text/ctors/dtors/rodata/got |
read-only code and data |
0x00800000 |
0xff |
compal.reservedram |
RAM reserved for compal loader? |
0x00800100 |
- |
data/.ramtext/.bss |
read-write data |