The framework code.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
gaisser b00bfe4bda Merge pull request 'ASTP 1.1.0 Merge Development in Master' (#441) from development into master 4 weeks ago
action object manager is now a singleton 2 months ago
container coverity fixes 4 months ago
contrib/sgp4 Merge pull request 'ASTP 1.1.0 Merge Development in Master' (#441) from development into master 4 weeks ago
controller Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2 months ago
coordinates msvc tests 7 months ago
datalinklayer object manager is now a singleton 2 months ago
datapool coverity 4 months ago
datapoollocal default color is magneta now for wanring 2 months ago
defaultcfg max tm packet size now configurable 1 month ago
devicehandlers NO_COMMANDER was not using NO_QUEUE in DHB 1 month ago
doc typo 2 months ago
events Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2 months ago
fdir Merge pull request 'ASTP 1.1.0 Merge Development in Master' (#441) from development into master 4 weeks ago
globalfunctions Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 4 months ago
health object manager is now a singleton 2 months ago
housekeeping object manager is now a singleton 2 months ago
internalError pool read guard in scope 4 months ago
ipc added clear message 2 months ago
logo Added the new logos, colors are WIP at the moment 8 months ago
memory indentation 1 month ago
modes Merge branch 'development' into mueller/cmake-init 8 months ago
monitoring object manager is now a singleton 2 months ago
objectmanager Merge remote-tracking branch 'upstream/development' into eive/develop 2 months ago
osal tiny form fix 1 month ago
parameters object manager is now a singleton 2 months ago
power object manager is now a singleton 2 months ago
pus cleaned up a bit 1 month ago
returnvalues added HAL gpio class ID 1 month ago
rmap clened up a bit 8 months ago
serialize Added Network Byte Order 3 months ago
serviceinterface default color is magneta now for wanring 2 months ago
storagemanager object manager is now a singleton 2 months ago
subsystem object manager is now a singleton 2 months ago
tasks more doc 4 months ago
tcdistribution fixes for pus tc c 1 month ago
thermal object manager is now a singleton 2 months ago
timemanager Removed wrong static 1 month ago
tmstorage cleaned up a bit 1 month ago
tmtcpacket Merge remote-tracking branch 'upstream/development' into mueller/master 1 month ago
tmtcservices const correctness 1 month ago
unittest Merge branch 'mueller/master' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/master 2 months ago
.gitignore Added .gitignore for eclipse project files 3 years ago
.gitmodules unittest now contained directly 9 months ago
CHANGELOG changelog update 1 month ago
CMakeLists.txt Merge remote-tracking branch 'upstream/mueller/master' into mueller/master 2 months ago
FSFW.h added pus a tc 1 month ago
FSFWVersion.h bumped version number 4 months ago
LICENSE updating code from Flying Laptop 3 years ago
NOTICE Added the new logos, colors are WIP at the moment 8 months ago
README.md update README 2 months ago
fsfw.mk updated .mk support 7 months ago
platform.h some more preprocessor replacements 3 months ago

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