Core Flight Executive Open Source Release Readme
January 16, 2012
The Core Flight Executive is a portable, platform independent embedded system
framework developed by NASA Goddard Space Flight Center. This framework is
used as the basis for the flight software for satellite data systems and
instruments, but can be used on other embedded systems.
The Core Flight Executive is written in C and depends on another software
library called the Operating System Abstraction Layer (OSAL). The OSAL
is available at http://osal.sf.net and will be hosted
This software is licensed under the NASA Open Source Agreement.
The Core Flight Executive consists of the following subsystems:
- Executive Services - initializes and controls applications
- Software Bus - A publish and subscribe messaging system based
on CCSDS command and telemetry packets
- Time Services - Manages system time
- Event Services - Event reporting and logging services for applications
- Table Services - Data/parameter load and update services for applications
The Core Flight Executive is intended to host a suite of applications
and libraries. The applications and libraries are not included in this
distribution. A sample library and sample application are included to
help verify that the build and runtime are configured correctly.
Core Flight Executive ( cFE ) 6.1.1
Platform Support Package
Core Flight System Mission Build system
Sample Library and Application
Operating System Abstraction Layer 3.3 or higher
Can be obtained at http://osal.sf.net
Supported Build and Runtime Environment
Build Environment Supported:
This software is built on CentOS/RHEL 5.x and 6.x
It should be possible to build on other linux distributions
( Debian, Ubuntu, SUSE, etc )
It should be possible to build on Windows and Mac OS X, but is
not currently tested.
Runtime Targets Supported:
The "out of the box" targets in this distribution include:
1. 32 bit x86 Linux ( CentOS 5.x )
2. Motorola MCP750 PowerPC vxWorks 6.4
Other targets are included, but may take additional work to
run. They are included as examples of other target
1. mcf5235-rtems - This is for the Axiom MCF5235 Coldfire board running
RTEMS 4.10. It requires a static loader component for the
OS abstraction layer. The static loader is currently
not available as open source, so this target is not
considered complete. RTEMS 4.11 will have a dynamic
loader which will be supported by a future release
of the OS Abstraction Layer, completing the RTEMS support
for the cFE.
Once RTEMS 4.11 is released, the goal is to support
an RTEMS simulator platform such as SPARC/sis or
2. mac-osx and pc-cygwin - These targets are included for examples. They
will most likely be removed in the future.
The pc-linux target is highly recommended. If you
have a windows or mac computer it is relatively easy to
set up a free virtual machine environment with 32 bit
Cent OS 5.x.
The following assumes you are in a CentOS/RHEL terminal. The cFE distribution
file is in a directory called "Projects".
Unpack the cFE distribution
[cfe@localhost ~]$ cd Projects
[cfe@localhost Projects]$ tar -zxf cFE-6.1.1-OSS-release.tar.gz
[cfe@localhost Projects]$ cd cFE-6.1.1-OSS-release
Unpack the OSAL distribution ( obtain from sources above )
Assuming the file is in your Projects directory
( example: /home/acudmore/Projects/osal-3.4-release.tar.gz)
[cfe@localhost cFE-6.1.1-OSS-release]$ tar -zxf ../Projects/osal-3.4-release.tar.gz
[cfe@localhost cFE-6.1.1-OSS-release]$ mv osal-3.4-release osal
Build the cFE source code
NOTE: In the first command, make sure you enter a '.' then a space
then './setvars.sh' !!!
( see the bash command "source" )
[cfe@localhost cFE-6.1.1-OSS-release]$ . ./setvars.sh
[cfe@localhost cFE-6.1.1-OSS-release]$ cd build
[cfe@localhost build]$ cd pc-linux
[cfe@localhost pc-linux]$ make
[cfe@localhost pc-linux]$ make install
When the build completes, the cFE core executable that runs on on CentOS is i
in the exe directory. It can be run by doing the following:
[cfe@localhost pc-linux]$ cd exe
[cfe@localhost exe]$ ./core-linux.bin
At this point, the linux version of the cFE will start running. Note that the
OSAL uses POSIX message queues to implement the inter-task communication
The cFE by default needs a larger "msg_max" parameter in linux to run. There
are two solutions to this problem:
1. increase the /proc/sys/fs/mqueue/msg_max parameter
2. run the cFE core as root
[cfe@localhost exe]$ su
( type in root password )
[cfe@localhost exe]# ./core-linux.bin
With the cFE starting, it should initialize, then read the cFE startup i
script and load the sample library and application.
New applications can be added by editing the cfe_es_startup.scr file.
Stop the cFE and all applications by hitting control-c in the terminal
Where to find more info:
There is much more information that is beyond the scope of a readme file.
The current documents can be found in the following directories:
cFE-6.1.1-OSS-release/osal/docs ( once the OSAL is installed )
cFE-6.1.1-OSS-release/cfe/docs/doxygen/index.html -- a good place to start
for the cFE