source: rtems-docs/user/exe/execution.rst @ 8b67c91

5
Last change on this file since 8b67c91 was 8b67c91, checked in by Chris Johns <chrisj@…>, on 05/19/18 at 20:32:42

user: Add RTEMS executable and test documentation.

  • Property mode set to 100644
File size: 2.7 KB
Line 
1.. comment SPDX-License-Identifier: CC-BY-SA-4.0
2
3.. comment: Copyright (c) 2018 Chris Johns <chrisj@rtems.org>
4.. comment: All rights reserved.
5
6Target Execution
7================
8.. index::  Target Execution
9
10Fixed position statically linked executables have a fixed address in a target's
11address space. The location in the address space for code, data and read-only
12data is fixed. The BSP defines the memory map and it is set by the BSP
13developer based on the target's hardware requirements and it's bootloader.
14
15Targets typically contains a bootloader that is executed after the target's
16processor exits reset. A bootloader is specific to a target's processor and
17hardware configuration and is responsible for the low level initialization of
18the hardware resources needed to load and execute an operating system's
19kernel. In the case of RTEMS this is the RTEMS executable.
20
21Bootloaders vary in size, complexity and functionality. Some architectures have
22a number of bootloader stages and others have only minimal support. An example
23of a high end system is Xilinx's Zynq processor with three stages. First a mask
24ROM in the System On Chip (SOC) executes after reset loading a first stage
25bootloader (FSBL) from an SD card, QSPI flash or NAND flash depending on
26signals connected to the device. The FSBL loads a second stage bootloader
27(SSBL) such as U-Boot and this loads the kernel. U-Boot can be configured to
28load a kernel from a range of media and file system formats as well as over a
29network using a number of protocols. This structure provides flexibility at the
30system level to support development environments such as a workshop or
31laboratory through to tightly control production configurations.
32
33Bootloaders often have custom formats for the executable image they load. The
34formats can be simple to keep the bootloader simple or complex to support
35check-sums, encryption or redundancy in case an image becomes corrupted. A
36bootloader often provides a host tool that creates the required file from the
37RTEMS executable's ELF file.
38
39If RTEMS is to run from RAM the bootloader reads the image and loads the code,
40initialized data and read-only data into the RAM and then jumps to a known
41entry point. If the code is executed from non-volatile storage the process to
42write the image into that storage will have extracted the various binary parts
43and written those to the correct location.
44
45The important point to note is the binary parts of the executable are somehow
46loaded into the target's address space ready to execute. The way this done may
47vary but the out come is always the same, the binary code, data and read-only
48data is resident in the processor's address space at the BSP defined
49addresses.
Note: See TracBrowser for help on using the repository browser.