The framework code.
Go to file
Robin Müller b7060a9c78
update README
2021-05-18 15:35:47 +02:00
action coverity action helper fix 2021-04-08 19:01:06 +02:00
container coverity fixes 2021-04-08 18:53:22 +02:00
contrib/sgp4 renormalized files 2020-09-18 13:15:14 +02:00
controller oopsie 2021-03-22 15:28:36 +01:00
coordinates msvc tests 2020-12-20 15:32:03 +01:00
datalinklayer correct preprocessor define now used 2021-01-03 14:16:52 +01:00
datapool coverity 2021-04-08 22:49:36 +02:00
datapoollocal coverity fix 2021-04-09 08:59:32 +02:00
defaultcfg Merge remote-tracking branch 'gaisser/gaisser_network_serialize' into mueller/merge-test 2021-05-12 17:18:12 +02:00
devicehandlers avoid duplicate printout 2021-04-27 14:17:27 +02:00
doc some more information 2021-05-18 15:34:31 +02:00
events added more pus services 2021-05-18 11:28:37 +02:00
fdir type and name change for HasParametersIF 2021-01-29 22:45:53 +01:00
globalfunctions coverity 2021-04-08 22:49:36 +02:00
health another coverity fix 2021-04-11 18:55:10 +02:00
housekeeping more tests 2021-03-11 14:46:22 +01:00
internalError pool read guard in scope 2021-03-23 14:28:01 +01:00
ipc tested new comment export string for retvals 2021-04-22 17:45:46 +02:00
logo Added the new logos, colors are WIP at the moment 2020-11-30 18:30:58 +01:00
memory reordered returnvalues 2021-03-02 12:36:13 +01:00
modes Merge branch 'development' into mueller/cmake-init 2020-12-09 10:07:22 +01:00
monitoring type and name change for HasParametersIF 2021-01-29 22:45:53 +01:00
objectmanager comment added 2021-05-18 11:16:54 +02:00
osal tweaks and fixes for TCP 2021-05-13 22:17:21 +02:00
parameters checking returnvalue now 2021-04-26 15:47:49 +02:00
power corrections 2021-03-09 21:09:01 +01:00
pus finalized PUS C TM support 2021-04-13 00:19:09 +02:00
returnvalues changed class id file for refactored modgen 2021-05-18 14:57:54 +02:00
rmap clened up a bit 2020-12-13 22:12:57 +01:00
serialize Added Network Byte Order 2021-05-11 15:02:04 +02:00
serviceinterface some fixes and tweaks 2021-05-12 10:54:10 +02:00
storagemanager mutex guard instead of helpe 2021-03-09 11:30:00 +01:00
subsystem Added comments in AssemblyBase and SubsystemBase 2021-04-20 22:01:56 +02:00
tasks more doc 2021-03-23 11:33:40 +01:00
tcdistribution disabled debugging mode 2021-04-07 13:44:03 +02:00
thermal Just comments 2021-04-20 17:35:28 +02:00
timemanager Merge remote-tracking branch 'origin/development' into mueller/pus-c-support 2021-05-04 14:07:56 +02:00
tmstorage updated tm storage 2020-12-22 15:58:52 +01:00
tmtcpacket fixes from code review 2021-04-20 18:35:11 +02:00
tmtcservices TCP server implementation finished 2021-05-05 15:59:41 +02:00
unittest renamed tcpip tasks 2021-05-13 21:46:46 +02:00
.gitignore Added .gitignore for eclipse project files 2018-07-12 17:13:04 +02:00
.gitmodules unittest now contained directly 2020-10-20 17:11:23 +02:00
CHANGELOG removing whitespaces 2021-03-04 16:48:21 +01:00
CMakeLists.txt additional inc path now in IF 2021-04-11 02:26:11 +02:00
FSFWVersion.h bumped version number 2021-04-09 08:29:56 +02:00
LICENSE updating code from Flying Laptop 2018-07-12 16:29:32 +02:00
NOTICE Added the new logos, colors are WIP at the moment 2020-11-30 18:30:58 +01:00
README.md update README 2021-05-18 15:35:47 +02:00
fsfw.mk Squashed commit of the following: 2021-01-13 11:53:34 +01:00
platform.h some more preprocessor replacements 2021-05-12 17:32:40 +02:00

README.md

FSFW Logo

Flight Software Framework (FSFW)

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.

Quick facts

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.

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.

Currently, the FSFW provides the following OSALs:

  • Linux
  • Host
  • FreeRTOS
  • RTEMS

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.

Getting started

The 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.

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.

A template configuration folder was provided and can be copied into the project root to have a starting point. The configuration section provides more specific information about the possible options.

Index

1. High-level overview
2. Core components
3. Configuration
4. OSAL overview
5. PUS services
6. Device Handler overview
7. Controller overview
8. Local Data Pools