Firmware Memory Layout » History » Version 1
laforge, 01/15/2017 03:05 PM
1 | 1 | laforge | h1. Firmware linker scripts |
---|---|---|---|
2 | |||
3 | We use the following linker targets: |
||
4 | |||
5 | |_.Target|_.Description|_.Typical user|_.Restriction| |
||
6 | |compalram|Used to load firmware into the RAM of the phone at boot time, using the [[CompalRamLoader]]|Almost everything|64kByte| |
||
7 | |e88flash|Image to be flashed directly into the start of NOR Flash of the phone|[[loader.bin]]|-| |
||
8 | |e88loader|Image to be flashed to NOR flash (after loader) to be booted by [[loaderbin]] managed by [[osmoload]]|Everything|-| |
||
9 | |highram|Image to be loaded into RAM by [[loaderbin]]|Everything|128kByte| |
||
10 | |||
11 | In terms of useful configurations, you can for example |
||
12 | # RAM-load *compalram* a image <= 64kByte, or |
||
13 | # RAM-load *compalram* image of @loader.bin@ followed by a *highram* image of your application, or |
||
14 | # RAM-load *compalram* image of @loader.bin@ followed by flashing a *e88flash* image of @loader.bin@ to flash |
||
15 | # RAM-load *compalram* image of @loader.bin@ followed by flashing a *e88loader* image to flash |
||
16 | |||
17 | h1. Memory layout |
||
18 | |||
19 | h2. compalram |
||
20 | |||
21 | This is pretty unexciting as everything is put in RAM. |
||
22 | |||
23 | |_.Base|_.Size|_.Section|_.Usage| |
||
24 | |0x0080001c|0x18|text.exceptions|Exception Vector Table| |
||
25 | |0x00800100|0x04|compal.header|Compal Header| |
||
26 | |0x00800104|0x10000|text/ctors/dtors/rodata/data|| |
||
27 | |||
28 | h2. highram |
||
29 | |||
30 | |_.Base|_.Size|_.Section|_.Usage| |
||
31 | |0x0080001c|0x18|text.exceptions|Exception Vector Table| |
||
32 | |0x00820000|0x20000|text/ctors/dtors/rodata/data|| |
||
33 | |||
34 | h2. e88flash |
||
35 | |||
36 | |_.Base|_.Size|_.Section|_.Usage| |
||
37 | |0x00010000|0x100|.text.start|Vectors before copied to flash| |
||
38 | |0x00010100|-|.text/ctors/dtors/rodata/got|read-only code and data| |
||
39 | |0x00800000|0xff|.compal.reservedram|RAM reserved for compal loader?| |
||
40 | |0x00800100|-|.data/.ramtext/.bss|read-write data| |
||
41 | |||
42 | h2. e88loader |
||
43 | |||
44 | |_.Base|_.Size|_.Section|_.Usage| |
||
45 | |0x00002000|0xa0|.compal.header|| |
||
46 | |0x000020a0|0x38|.compal.vectors|exception vectors, run-time relocated to 0x0080001c| |
||
47 | |0x000020f8|-|.text/ctors/dtors/rodata/got|read-only code and data| |
||
48 | |0x00800000|0xff|.compal.reservedram|RAM reserved for compal loader?| |
||
49 | |0x00800100|-|.data/.ramtext/.bss|read-write data| |