fsfw/README.md

50 lines
2.8 KiB
Markdown
Raw Normal View History

![FSFW Logo](logo/FSFW_Logo_V3_bw.png)
2020-12-22 13:23:19 +01:00
# Flight Software Framework (FSFW)
2020-10-20 17:39:11 +02:00
2020-11-13 14:31:30 +01:00
The Flight Software Framework is a C++ Object Oriented Framework for unmanned,
automated systems like Satellites.
The initial version of the Flight Software Framework was developed during
the Flying Laptop Project by the University of Stuttgart in cooperation
with Airbus Defence and Space GmbH.
2021-01-13 11:39:19 +01:00
## Quick facts
2020-11-13 14:31:30 +01:00
2021-01-13 11:39:19 +01:00
The framework is designed for systems, which communicate with external devices, perform control loops, receive telecommands and send telemetry, and need to maintain a high level of availability. Therefore, a mode and health system provides control over the states of the software and the controlled devices. In addition, a simple mechanism of event based fault detection, isolation and recovery is implemented as well.
2020-11-17 09:42:38 +01:00
2021-01-13 11:39:19 +01:00
The FSFW provides abstraction layers for operating systems to provide a uniform operating system abstraction layer (OSAL). Some components of this OSAL are required internally by the FSFW but is also very useful for developers to implement the same application logic on different operating systems with a uniform interface.
2020-12-22 13:23:19 +01:00
2021-01-13 11:39:19 +01:00
Currently, the FSFW provides the following OSALs:
2020-11-13 14:31:30 +01:00
2021-01-13 11:39:19 +01:00
- Linux
- Host
- FreeRTOS
- RTEMS
2020-11-13 14:31:30 +01:00
2021-01-13 11:39:19 +01:00
The recommended hardware is a microprocessor with more than 1 MB of RAM and 1 MB of non-volatile Memory. For reference, current applications use a Cobham Gaisler UT699 (LEON3FT), a ISISPACE IOBC or a Zynq-7020 SoC. The `fsfw` was also successfully run on the STM32H743ZI-Nucleo board and on a Raspberry Pi and is currently running on the active satellite mission Flying Laptop.
2020-11-13 14:31:30 +01:00
2021-01-13 11:39:19 +01:00
## Getting started
2020-11-13 14:31:30 +01:00
2021-01-13 11:39:19 +01:00
The [FSFW example](https://egit.irs.uni-stuttgart.de/fsfw/fsfw_example) provides a good starting point and a demo to see the FSFW capabilities and build it with the Make or the CMake build system. It is recommended to evaluate the FSFW by building and playing around with the demo application.
2020-11-13 14:31:30 +01:00
2021-01-13 11:39:19 +01:00
Generally, the FSFW is included in a project by compiling the FSFW sources and providing
a configuration folder and adding it to the include path. There are some functions like `printChar` which are different depending on the target architecture and need to be implemented by the mission developer.
2020-11-13 14:31:30 +01:00
2021-01-13 11:39:19 +01:00
A template configuration folder was provided and can be copied into the project root to have
a starting point. The [configuration section](doc/README-config.md#top) provides more specific information about the possible options.
2020-11-13 14:31:30 +01:00
2021-01-13 11:39:19 +01:00
## Index
2020-11-13 14:36:32 +01:00
2021-01-13 11:39:19 +01:00
[1. High-level overview](doc/README-highlevel.md#top) <br>
[2. Core components](doc/README-core.md#top) <br>
2021-05-18 15:35:47 +02:00
[3. Configuration](doc/README-config.md#top) <br>
[4. OSAL overview](doc/README-osal.md#top) <br>
[5. PUS services](doc/README-pus.md#top) <br>
[6. Device Handler overview](doc/README-devicehandlers.md#top) <br>
[7. Controller overview](doc/README-controllers.md#top) <br>
[8. Local Data Pools](doc/README-localpools.md#top) <br>
2020-11-13 14:36:32 +01:00
2020-11-13 14:31:30 +01:00