Skip to content

Commit

Permalink
Merge branch 'master' into fix-503-tbl_events
Browse files Browse the repository at this point in the history
  • Loading branch information
CDKnightNASA committed Apr 21, 2020
2 parents 2940ece + 0648a47 commit 021e2e4
Show file tree
Hide file tree
Showing 92 changed files with 5,627 additions and 6,411 deletions.
5 changes: 2 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
os: linux
dist: bionic
sudo: required
language:
- c
language: c
compiler:
- gcc
addons:
Expand Down
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,31 @@
Travis-CI: [![Build Status](https://travis-ci.com/nasa/cFE.svg)](https://travis-ci.com/nasa/cFE)

# Core Flight System : Framework : Core Flight Executive

This repository contains NASA's Core Flight Executive (cFE), which is a framework component of the Core Flight System.

This is a collection of services and associated framework to be located in the `cfe` subdirectory of a cFS Mission Tree. The Core Flight System is bundled at https://github.com/nasa/cFS, which includes build and execution instructions.

## Version Notes
- 6.7.13: DEVELOPMENT
- RTEMS builds without error.
- Use the INTERFACE_COMPILE_DEFINITIONS and INTERFACE_INCLUDE_DIRECTORIES properties from the osal target and apply them to the entire CFE build as a directory-scope property. No impact until these are set in OSAL.
- Minor other updates (see https://github.com/nasa/cFE/pull/615)
- 6.7.12: DEVELOPMENT
- Cmd code (and checksum) are always in the same place (matches GSFC spec for command secondary header)
- No impact to behavior. Previously the perf log dump file frequently contained errors due to out of order or otherwise corrupted entries, which is now fixed.
- Minor other updates (see https://github.com/nasa/cFE/pull/586)
- 6.7.11: DEVELOPMENT
- Improve documentation
- Update makefile to report branch coverage
- Minor other updates (see https://github.com/nasa/cFE/pull/566)
- 6.7.10: DEVELOPMENT
- Fix potential unit test problems with name collisions
- Improve documentation
- Minor other updates (see https://github.com/nasa/cFE/pull/563)
- 6.7.9: DEVELOPMENT
- No longer requires sed "hack" to change the setting in default_config.h
- Minor other updates (see https://github.com/nasa/cFE/pull/544)
- 6.7.8: DEVELOPMENT
- Updates and cleaned up documentation and requirements
- Fixes incorrect debug messages
Expand All @@ -29,7 +50,7 @@ This is a collection of services and associated framework to be located in the `
- 6.7.3: DEVELOPMENT
- Minor updates (see https://github.com/nasa/cFE/pull/413)
- 6.7.2: DEVELOPMENT
- Minor bugs and enhancements (see https://github.com/nasa/cFE/pull/388)
- Minor bugs and enhancements (see https://github.com/nasa/cFE/pull/388)
- 6.7.1: DEVELOPMENT
- Minor bug fixes (see https://github.com/nasa/cFE/pull/378)
- Fix strlen in CFE_ES_TaskInit https://github.com/nasa/cFE/pull/23
Expand Down
40 changes: 19 additions & 21 deletions cmake/Makefile.sample
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,33 @@
# repository which is why it cannot be delivered directly in place.
# To use it, simply copy it to the top directory. As this just contains
# wrappers for the CMake targets, it is unlikely to change. Projects
# are also free to customize this file and add their own targets after
# are also free to customize this file and add their own targets after
# copying it to the top of the source tree.
#
# For _ALL_ targets defined in this file the build tree location may
# be specified via the "O" variable (i.e. make O=<my-build-dir> all).
# If not specified then the "build" subdirectory will be assumed.
# For _ALL_ targets defined in this file the build tree location may
# be specified via the "O" variable (i.e. make O=<my-build-dir> all).
# If not specified then the "build" subdirectory will be assumed.
#
# This wrapper defines the following major targets:
# prep -- Runs CMake to create a new or re-configure an existing build tree
# Note that multiple build trees can exist from a single source
# Other control options (such as "SIMULATION") may be passed to CMake via
# Other control options (such as "SIMULATION") may be passed to CMake via
# make variables depending on the mission build scripts. These will be
# cached in the build tree so they do not need to be set again thereafter.
# cached in the build tree so they do not need to be set again thereafter.
#
# all -- Build all targets in the CMake build tree
#
#
# install -- Copy all files to the installation tree and run packaging scripts
# The "DESTDIR" environment variable controls where the files are copied
# The "DESTDIR" environment variable controls where the files are copied
#
# clean -- Clean all targets in the CMake build tree, but not the build tree itself.
#
# distclean -- Entirely remove the build directory specified by "O"
# distclean -- Entirely remove the build directory specified by "O"
# Note that after this the "prep" step must be run again in order to build.
# Use caution with this as it does an rm -rf - don't set O to your home dir!
#
# doc -- Build all doxygen source documentation. The HTML documentation will be
# generated under the build tree specified by "O".
# generated under the build tree specified by "O".
#
# usersguide -- Build all API/Cmd/Tlm doxygen documentation. The HTML documentation
# will be generated under the build tree specified by "O".
Expand All @@ -53,7 +53,7 @@
# test -- Run all unit tests defined in the build. Unit tests will typically only
# be executable when building with the "SIMULATION=native" option. Otherwise
# it is up to the user to copy the executables to the target and run them.
#
#
# lcov -- Runs the "lcov" tool on the build tree to collect all code coverage
# analysis data and build the reports. Code coverage data may be output by
# the "make test" target above.
Expand Down Expand Up @@ -91,7 +91,7 @@ $(DIRTGTS):
endif

# For any other goal that is not one of the known local targets, pass it to the arch build
# as there might be a target by that name. For example, this is useful for rebuilding
# as there might be a target by that name. For example, this is useful for rebuilding
# single unit test executable files while debugging from the IDE
FILETGTS := $(filter-out $(DIRTGTS),$(OTHERTGTS))
ifneq ($(FILETGTS),)
Expand All @@ -103,7 +103,7 @@ endif
# Certain special ones should be passed via cache (-D) options to CMake.
# These are only needed for the "prep" target but they are computed globally anyway.
PREP_OPTS :=

ifneq ($(INSTALLPREFIX),)
PREP_OPTS += -DCMAKE_INSTALL_PREFIX=$(INSTALLPREFIX)
endif
Expand All @@ -125,7 +125,7 @@ install:
prep $(O)/.prep:
mkdir -p "$(O)"
(cd "$(O)/$(BUILDDIR)" && cmake $(PREP_OPTS) "$(CURDIR)/cfe")
echo "$(PREP_OPTS)" > "$(O)/.prep"
echo "$(PREP_OPTS)" > "$(O)/.prep"

clean:
$(MAKE) --no-print-directory -C "$(O)" mission-clean
Expand All @@ -139,10 +139,9 @@ test:
(cd $(O)/$(ARCH) && ctest -O ctest.log)

lcov:
lcov --capture --directory $(O)/$(ARCH) --output-file $(O)/$(ARCH)/coverage_test.info
lcov --add-tracefile $(O)/$(ARCH)/coverage_base.info --add-tracefile $(O)/$(ARCH)/coverage_test.info --output-file $(O)/$(ARCH)/coverage_total.info
lcov --remove $(O)/$(ARCH)/coverage_total.info 'unit-test/*' --output-file $(O)/$(ARCH)/coverage_filtered.info
genhtml $(O)/$(ARCH)/coverage_filtered.info --output-directory $(O)/$(ARCH)/lcov
lcov --capture --rc lcov_branch_coverage=1 --directory $(O)/$(ARCH) --output-file $(O)/$(ARCH)/coverage_test.info
lcov --rc lcov_branch_coverage=1 --add-tracefile $(O)/$(ARCH)/coverage_base.info --add-tracefile $(O)/$(ARCH)/coverage_test.info --output-file $(O)/$(ARCH)/coverage_total.info
genhtml $(O)/$(ARCH)/coverage_total.info --output-directory $(O)/$(ARCH)/lcov
@/bin/echo -e "\n\nCoverage Report Link: file:$(CURDIR)/$(O)/$(ARCH)/lcov/index.html\n"

doc:
Expand All @@ -155,11 +154,10 @@ usersguide:

osalguide:
$(MAKE) --no-print-directory -C "$(O)" osalguide
@/bin/echo -e "\n\nOsal Users Guide: \nfile://$(CURDIR)/$(O)/doc/osal_guide/html/index.html\n"
@/bin/echo -e "\n\nOsal Users Guide: \nfile://$(CURDIR)/$(O)/doc/osalguide/html/index.html\n"

# Make all the commands that use the build tree depend on a flag file
# that is used to indicate the prep step has been done. This way
# the prep step does not need to be done explicitly by the user
# as long as the default options are sufficient.
$(filter-out prep distclean,$(LOCALTGTS)): $(O)/.prep

$(filter-out prep distclean,$(LOCALTGTS)): $(O)/.prep
14 changes: 14 additions & 0 deletions cmake/arch_build.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,20 @@ function(process_arch SYSVAR)
include_directories(${MISSION_SOURCE_DIR}/cfe/fsw/cfe-core/src/inc)
include_directories(${MISSION_SOURCE_DIR}/cfe/cmake/target/inc)

# propagate any OSAL interface compile definitions and include directories to this build
# This is set as a directory property here at the top level so it will apply to all code.
# This includes MODULE libraries that do not directly/statically link with OSAL but still
# should be compiled with these flags.
get_target_property(OSAL_COMPILE_DEFINITIONS osal INTERFACE_COMPILE_DEFINITIONS)
get_target_property(OSAL_INCLUDE_DIRECTORIES osal INTERFACE_INCLUDE_DIRECTORIES)

if (OSAL_COMPILE_DEFINITIONS)
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "${OSAL_COMPILE_DEFINITIONS}")
endif (OSAL_COMPILE_DEFINITIONS)
if (OSAL_INCLUDE_DIRECTORIES)
include_directories(${OSAL_INCLUDE_DIRECTORIES})
endif (OSAL_INCLUDE_DIRECTORIES)

# Append the PSP and OSAL selections to the Doxyfile so it will be included
# in the generated documentation automatically.
# Also extract the "-D" options within CFLAGS and inform Doxygen about these
Expand Down
13 changes: 3 additions & 10 deletions cmake/cfe-common.doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
OUTPUT_DIRECTORY = .
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = NO
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class " \
"The $name widget " \
"The $name file " \
Expand All @@ -30,13 +30,6 @@ INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES += "event=\xrefitem cfeevents \"Event Message\" \"cFE Event Message Cross Reference\" " \
"retdesc=<TD WIDTH=\"80%\"> " \
"retcode=<TR><TD WIDTH=\"20%\" VALIGN=TOP> " \
endcode=</TR> \
"returns=\return <TABLE BORDER=\"0\" CELLPADDING=\"2\" WIDTH=\"100%\"> " \
endreturns=</TABLE> \
"retstmt=<TR><TD COLSPAN=2 WIDTH=\"100%\"> " \
endstmt=</TR> \
"cfeescfg=\xrefitem cfeescfg \"Purpose\" \"cFE Executive Services Configuration Parameters\" " \
"cfeevscfg=\xrefitem cfeevscfg \"Purpose\" \"cFE Event Services Configuration Parameters\" " \
"cfetblcfg=\xrefitem cfetblcfg \"Purpose\" \"cFE Table Services Configuration Parameters\" " \
Expand All @@ -54,8 +47,8 @@ ALIASES += "event=\xrefitem cfeevents \"Event Message\" \"cFE Even
"cfeevstlm=\xrefitem cfeevstlm \"Name\" \"cFE Event Services Telemetry\" " \
"cfesbtlm=\xrefitem cfesbtlm \"Name\" \"cFE Software Bus Telemetry\" " \
"cfetimetlm=\xrefitem cfetimetlm \"Name\" \"cFE Time Services Telemetry\" " \
"cfecmdmnemonic=\xrefitem cfecmdmnems \"Command Mnemonic(s)\" \"cFE Command Mnemonic Cross Reference\" \b \c " \
"cfetlmmnemonic=\xrefitem cfetlmmnems \"Telemetry Mnemonic(s)\" \"cFE Telemetry Mnemonic Cross Reference\" \b \c "
"cfecmdmnemonic=\xrefitem cfecmdmnems \"Command Mnemonic(s)\" \"cFE Command Mnemonic Cross Reference\" " \
"cfetlmmnemonic=\xrefitem cfetlmmnems \"Telemetry Mnemonic(s)\" \"cFE Telemetry Mnemonic Cross Reference\" "
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = NO
Expand Down
12 changes: 4 additions & 8 deletions cmake/cfe-usersguide.doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
# Doxygen Configuration options to generate the "cFE Users Guide"
#---------------------------------------------------------------------------

# Start with the common definitions, some of which are extended or overridden here.
# Start with the main page so document ordering is established
INPUT += @MISSION_SOURCE_DIR@/cfe/docs/src/main.dox

# Common definitions, some of which are extended or overridden here.
@INCLUDE = @MISSION_BINARY_DIR@/doc/cfe-common.doxyfile
PROJECT_NAME = "Core Flight Executive Users Guide"
OUTPUT_DIRECTORY = users_guide
Expand All @@ -15,14 +17,8 @@ GENERATE_LATEX = YES
STRIP_FROM_PATH += @MISSION_SOURCE_DIR@/cfe/cmake/sample_defs
INPUT += @MISSION_SOURCE_DIR@/cfe/cmake/sample_defs

# Main page for the users guide
INPUT += @MISSION_SOURCE_DIR@/cfe/docs/src/main.dox
INPUT += @MISSION_SOURCE_DIR@/cfe/docs/src/cfe_usersguide.dox

#PREDEFINED
PREDEFINED += @USERGUIDE_PREDEFINED@

# Bring in the cFE header files for the documentation of the various API calls
INPUT += \
@MISSION_USERGUIDE_HEADERFILES@ \
@USERGUIDE_MISC_ADDITION@
INPUT += @MISSION_USERGUIDE_HEADERFILES@
2 changes: 1 addition & 1 deletion cmake/global_functions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ function(generate_config_includefile DESTFILE SUFFIX)
if (INCL_INDX LESS 0)
list(APPEND INCL_LIST "${SRC_LOCAL_PATH}")
if (EXISTS "${SRC_LOCAL_PATH}")
file(TO_NATIVE_PATH "${MISSION_DEFS}/${SRC}_${SUFFIX}" SRC_NATIVE)
file(TO_NATIVE_PATH "${SRC_LOCAL_PATH}" SRC_NATIVE)
set(DEST_CONTENTSTR "${DEST_CONTENTSTR}#include \"${SRC_NATIVE}\"\n")
else()
set(DEST_CONTENTSTR "${DEST_CONTENTSTR}/* ${SRC_LOCAL_PATH} does not exist */\n")
Expand Down
8 changes: 0 additions & 8 deletions cmake/mission_build.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -232,14 +232,6 @@ function(prepare)
"${osal_MISSION_DIR}/src/os/inc/*.h")
string(REPLACE ";" " \\\n" MISSION_OSAL_HEADERFILES "${MISSION_OSAL_HEADERFILES}")

# Addition to usersguide
file(GLOB USERGUIDE_MISC_ADDITION
"${cfe-core_MISSION_DIR}/src/inc/private/*.h"
"${cfe-core_MISSION_DIR}/src/sb/*"
"${cfe-core_MISSION_DIR}/src/es/*"
"${cfe-core_MISSION_DIR}/src/evs/*")
string(REPLACE ";" " \\\n" USERGUIDE_MISC_ADDITION "${USERGUIDE_MISC_ADDITION}")

# PREDEFINED
set(USERGUIDE_PREDEFINED
"MESSAGE_FORMAT_IS_CCSDS")
Expand Down
2 changes: 1 addition & 1 deletion cmake/osal-common.doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
OUTPUT_DIRECTORY = .
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = NO
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class " \
"The $name widget " \
"The $name file " \
Expand Down
14 changes: 5 additions & 9 deletions cmake/osalguide.doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,17 @@
# Doxygen Configuration options to generate the "OSAL API Guide"
#---------------------------------------------------------------------------

# Start with the common definitions, some of which are extended or overridden here.
# Start with the main page so document ordering is established
INPUT += @MISSION_SOURCE_DIR@/cfe/docs/src/osalmain.dox

# Common definitions, some of which are extended or overridden here.
@INCLUDE = @MISSION_BINARY_DIR@/doc/osal-common.doxyfile
PROJECT_NAME = "Core Flight Executive OSAL API Guide"
PROJECT_NAME = "OSAL User's Guide"
OUTPUT_DIRECTORY = osalguide
GENERATE_LATEX = YES

# Main page for the osal guide
INPUT += @MISSION_SOURCE_DIR@/cfe/docs/src/osalmain.dox
INPUT += @MISSION_SOURCE_DIR@/cfe/docs/src/osalguide.dox

#PREDEFINED
PREDEFINED += @OSALGUIDE_PREDEFINED@

# Bring in the cFE header files for the documentation of the various API calls
INPUT += \
@MISSION_OSAL_HEADERFILES@ \
@OSAL_MISC_ADDITION@
INPUT += @MISSION_OSAL_HEADERFILES@
6 changes: 3 additions & 3 deletions cmake/sample_defs/cpu1_platform_cfg.h
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,8 @@
** Dictates the size of the SB memory pool. For each message the SB
** sends, the SB dynamically allocates from this memory pool, the memory needed
** to process the message. The memory needed to process each message is msg
** size + msg descriptor(#CFE_SB_BufferD_t). This memory pool is also used
** to allocate destination descriptors (#CFE_SB_DestinationD_t) during the
** size + msg descriptor(CFE_SB_BufferD_t). This memory pool is also used
** to allocate destination descriptors (CFE_SB_DestinationD_t) during the
** subscription process.
** To see the run-time, high-water mark and the current utilization figures
** regarding this parameter, send an SB command to 'Send Statistics Pkt'.
Expand Down Expand Up @@ -788,7 +788,7 @@
** log ER Log and critical reset variables. This is 4 of 4 of the memory areas
** that are preserved during a processor reset.
** Note: This area must be sized large enough to hold all of the data
** structures. It should be automatically sized based on the #CFE_ES_ResetData_t
** structures. It should be automatically sized based on the CFE_ES_ResetData_t
** type, but circular dependancies in the headers prevent it from being defined
** this way.
** NOTE: Changing this value changes memory allocation, and may
Expand Down
4 changes: 4 additions & 0 deletions cmake/sample_defs/native_osconfig.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/* SIMULATION=native specific osconfig options */

/* See parameter description in default_osconfig.h */
#define OSAL_DEBUG_PERMISSIVE_MODE
Loading

0 comments on commit 021e2e4

Please sign in to comment.