Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history


Fixes nasa#379, Fixes nasa#380, Fixes nasa#383, Fixes nasa#384,
Fixes nasa#385, Fixes nasa#392
Code reviewed and approved at 20191106 and 20191113 CB
  • Loading branch information
skliper committed Nov 30, 2019
2 parents 5d7d766 + 002e834 commit 9aedaab
Show file tree
Hide file tree
Showing 35 changed files with 110 additions and 42,443 deletions.
8 changes: 6 additions & 2 deletions cmake/Makefile.sample
Original file line number Diff line number Diff line change
Expand Up @@ -127,12 +127,16 @@ clean:
distclean:
rm -rf "$(O)"

# Grab lcov baseline before running tests
test:
lcov --capture --initial --directory $(O)/$(ARCH) --output-file $(O)/$(ARCH)/coverage_base.info
(cd $(O)/$(ARCH) && ctest -O ctest.log)

lcov:
lcov --capture --directory $(O)/$(ARCH) --output-file $(O)/$(ARCH)/coverage.info
genhtml $(O)/$(ARCH)/coverage.info --output-directory $(O)/$(ARCH)/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
@/bin/echo -e "\n\nCoverage Report Link: file:$(CURDIR)/$(O)/$(ARCH)/lcov/index.html\n"

doc:
Expand Down
6 changes: 5 additions & 1 deletion cmake/arch_build.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,11 @@ function(process_arch SYSVAR)
"PREDEFINED += ${DOXYGEN_DEFINED_MACROS}\n"
"INPUT += ${MISSION_SOURCE_DIR}/osal/src/os/${OSAL_SYSTEM_OSTYPE}\n"
"INPUT += ${MISSION_SOURCE_DIR}/psp/fsw/${CFE_SYSTEM_PSPNAME}\n")


# Append to usersguide.doxyfile
file(APPEND "${MISSION_BINARY_DIR}/doc/cfe-usersguide.doxyfile"
"INPUT += ${MISSION_SOURCE_DIR}/psp/fsw/${CFE_SYSTEM_PSPNAME}/src\n")

# The PSP and/or OSAL should have defined where to install the binaries.
# If not, just install them in /cf as a default (this can be modified
# by the packaging script if it is wrong for the target)
Expand Down
6 changes: 5 additions & 1 deletion cmake/cfe-usersguide.doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ INPUT += @MISSION_SOURCE_DIR@/cfe/cmake/sample_defs
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@
@MISSION_USERGUIDE_HEADERFILES@ \
@USERGUIDE_MISC_ADDITION@
15 changes: 14 additions & 1 deletion cmake/mission_build.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,20 @@ function(prepare)
"${cfe-core_MISSION_DIR}/src/inc/*.h"
"${osal_MISSION_DIR}/src/os/inc/*.h"
"${MISSION_SOURCE_DIR}/psp/fsw/inc/*.h")
string(REPLACE ";" " \\\n" MISSION_USERGUIDE_HEADERFILES "${MISSION_USERGUIDE_HEADERFILES}")
string(REPLACE ";" " \\\n" MISSION_USERGUIDE_HEADERFILES "${MISSION_USERGUIDE_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")

configure_file("${CMAKE_SOURCE_DIR}/cmake/cfe-usersguide.doxyfile.in"
"${CMAKE_BINARY_DIR}/doc/cfe-usersguide.doxyfile")

Expand Down
22 changes: 11 additions & 11 deletions docs/src/cfe_es.dox
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@
cFE will also reset every application that is running at the time the command is received.

Also part of this service is the Exception and Reset (ER) Log, which has a command for
\link #CFE_ES_WRITE_ERLOG_CC dumping \endlink or \link #CFE_ES_CLEAR_ERLOG_CC clearing \endlink
\link #CFE_ES_WRITE_ER_LOG_CC dumping \endlink or \link #CFE_ES_CLEAR_ER_LOG_CC clearing \endlink
the log and telemetry to show the number of entries in the log. In addition to the ER log,
the user may find information about the most recent reset in the ES task housekeeping telemetry.

Expand Down Expand Up @@ -262,13 +262,13 @@
\page cfeesugresetlog Exception and Reset (ER) Log

The Exception and Reset Log contains detailed information about past
resets and exceptions. To view the information the #CFE_ES_WRITE_ERLOG_CC
resets and exceptions. To view the information the #CFE_ES_WRITE_ER_LOG_CC
command must be sent. This command will write the log to a binary file.
The path and filename may be specified in the command. If the filename
command field contains an empty string, the configuration parameter
#CFE_ES_DEFAULT_ER_LOG_FILE is used to specify the path and filename.
Use the ground system to get the file and display the contents. There
is also a command to clear the ER log, #CFE_ES_CLEAR_ERLOG_CC.
is also a command to clear the ER log, #CFE_ES_CLEAR_ER_LOG_CC.

The size of the ER log is defined by the platform configuration parameter
#CFE_ES_ER_LOG_ENTRIES This log is preserved after a processor reset and
Expand Down Expand Up @@ -325,7 +325,7 @@
the startup script.

The format of the Start Application command, is defined in the
structure #CFE_ES_StartAppCmd_t. The members of the structure
structure #CFE_ES_StartApp_t. The members of the structure
include, application name, entry point, filename, stack size,
load address, exception action and priority.

Expand Down Expand Up @@ -653,7 +653,7 @@
/**
\page cfeesugperfstart Starting to Collect Performance Data

The #CFE_ES_PERF_STARTDATA_CC command is used to start the data collection
The #CFE_ES_START_PERF_DATA_CC command is used to start the data collection
process. The ES task sends a debug event when the command is received. It is
not possible to start a collection if the buffer-to-file write is in process
from an earlier collection. There is an ES telemetry point that can be used to
Expand All @@ -671,7 +671,7 @@
/**
\page cfeesugperfstop Stopping the Collection of Performance Data

The #CFE_ES_PERF_STOPDATA_CC command is used to stop the data collection
The #CFE_ES_STOP_PERF_DATA_CC command is used to stop the data collection
process and write the buffer data to a file. The path and filename may be
specified in the command. If the filename command field contains an empty
string, the configuration parameter #CFE_ES_DEFAULT_PERF_DUMP_FILENAME is
Expand Down Expand Up @@ -731,7 +731,7 @@
allocates a section of the Critical Data Store memory for the application's use and
assigns the Application specified name to the memory area. The operator can find
and learn the characteristics of these Critical Data Stores by using the
\link #CFE_ES_DUMP_CDS_REG_CC Dump CDS Registry Command. \endlink This command will
\link #CFE_ES_DUMP_CDS_REGISTRY_CC Dump CDS Registry Command. \endlink This command will
dump the contents of the CDS Registry maintained by the Executive Services into a
file that can be downlinked and examined by the operator.

Expand Down Expand Up @@ -804,7 +804,7 @@
fail, regardless of whether the created blocks are in-use or not. The margin
on the memory pool can be monitored by viewing the 'free bytes' member of the
memory pool statistics. The memory pool statistics are dumped only when
commanded by way of the ES command #CFE_ES_TLM_POOL_STATS_CC.
commanded by way of the ES command #CFE_ES_SEND_MEM_POOL_STATS_CC.

A user of the ES memory pool begins by tailoring the memory pool for the
particular use, by defining a list of block sizes and allocating a block of
Expand Down Expand Up @@ -835,7 +835,7 @@
through the #CFE_ES_PutPoolBuf API, then the memory pool will create a second
block of that size and return a pointer to the second block. If both blocks
were then released through the #CFE_ES_PutPoolBuf API and the memory pool
statistics were dumped via the #CFE_ES_TLM_POOL_STATS_CC command, the number
statistics were dumped via the #CFE_ES_SEND_MEM_POOL_STATS_CC command, the number
of blocks created would be two. The number of 'free bytes' in the pool would
be the size of the pool minus the sum of the following items:
- the size of the two blocks created (even though they are not 'in-use').
Expand All @@ -856,7 +856,7 @@
by mission requirements).

An operator can obtain information about an Application's Memory Pool by using
the \link #CFE_ES_TLM_POOL_STATS_CC Telemeter Memory Pool Statistics Command.
the \link #CFE_ES_SEND_MEM_POOL_STATS_CC Telemeter Memory Pool Statistics Command.
\endlink

This command will cause Executive Services to extract pertinent statistics
Expand All @@ -878,7 +878,7 @@

<UL>
<LI> <B>Memory Pool Handle</B> - the handle, as provided by the operator in the
\link #CFE_ES_TLM_POOL_STATS_CC Telemeter Memory Pool Statistics Command. \endlink
\link #CFE_ES_SEND_MEM_POOL_STATS_CC Telemeter Memory Pool Statistics Command. \endlink
This repeating of the handle in telemetry insures the operator knows which Memory
Pool Statistics are being viewed <BR>
<LI> <B>Pool Size</B> - The total size of the memory pool (in bytes)<BR>
Expand Down
4 changes: 2 additions & 2 deletions docs/src/cfe_evs.dox
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@
however, these are only available for those events that are registered for filtering hence if you
have a message that is not registered for filtering and the message type (e.g. DEBUG) is disabled
then you won't know if the event was ever issued by an application. These counters are available
by sending a command to \link #CFE_EVS_FILE_WRITE_APP_DATA_CC write the EVS Application Data \endlink
by sending a command to \link #CFE_EVS_WRITE_APP_DATA_FILE_CC write the EVS Application Data \endlink
and transferring the file to the ground.


Expand Down Expand Up @@ -466,7 +466,7 @@
<TR><TD COLSPAN=2 WIDTH="100%"> <B>(Q)
How do I find out which events are registered for filtering?
</B><TR><TD WIDTH="5%"> &nbsp; <TD WIDTH="95%">
EVS provides a command (\link #CFE_EVS_FILE_WRITE_APP_DATA_CC \EVS_WRITEAPPDATA2FILE \endlink)
EVS provides a command (\link #CFE_EVS_WRITE_APP_DATA_FILE_CC \EVS_WRITEAPPDATA2FILE \endlink)
which generates a file containing all of the applications that have registered with EVS and
all of the filters that are registered for each application. Note that EVS merely generates
the file. The file must be transferred to the ground in order to view it.
Expand Down
2 changes: 1 addition & 1 deletion docs/src/cfe_sb.dox
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,7 @@
How is the memory pool handle (sent in SB housekeeping telemetry) intended to be used?
</B><TR><TD WIDTH="5%"> &nbsp; <TD WIDTH="95%">
The memory pool handle is used to analyze the SB memory pool statistics. The cFE ES
command (#CFE_ES_TLM_POOL_STATS_CC) to dump the memory pool statistics takes the pool handle
command (#CFE_ES_SEND_MEM_POOL_STATS_CC) to dump the memory pool statistics takes the pool handle
as a parameter. These statistics tell how the SB memory pool is configured and gives details
on margin. An improperly configured SB memory pool may inhibit communication. This may occur
if there is not enough margin to create a block of the size needed for a transfer. Refer to
Expand Down
2 changes: 1 addition & 1 deletion docs/src/cfe_time.dox
Original file line number Diff line number Diff line change
Expand Up @@ -774,7 +774,7 @@
to by the other systems.

\sa #CFE_TIME_ADD_ADJUST_CC, #CFE_TIME_SUB_ADJUST_CC, #CFE_TIME_SET_STCF_CC,
#CFE_TIME_ADD_1HZADJ_CC, #CFE_TIME_SUB_1HZADJ_CC, #CFE_TIME_SET_LEAPS_CC
#CFE_TIME_ADD_1HZ_ADJUSTMENT_CC, #CFE_TIME_SUB_1HZ_ADJUSTMENT_CC, #CFE_TIME_SET_LEAP_SECONDS_CC


Next: \ref cfetimeugsetmet <BR>
Expand Down
6 changes: 3 additions & 3 deletions docs/src/main.dox
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@

The Major, Minor, and Revision components of the version are provided as simple macros defined in the cfe_version.h
header file as part of the API definition; these macros must expand to simple integer values, so that they can be used
in simple #if directives by the macro preprocessor.
in simple \#if directives by the macro preprocessor.

The Mission Version is provided as a simple macro defined in the cfe_platform_cfg.h header file. As delivered in
official releases, these macros must expand to simple integer values, so that they can be used in simple macro
Expand Down Expand Up @@ -495,8 +495,8 @@
</UL>
<LI> Driver APIs
<UL>
<LI> #CFE_ES_RegisterDriver - Registers a Device Driver for a specified device
<LI> #CFE_ES_UnloadDriver - Removes a Device Driver for a specified device
<LI> \#CFE_ES_RegisterDriver - Registers a Device Driver for a specified device
<LI> \#CFE_ES_UnloadDriver - Removes a Device Driver for a specified device
</UL>
<LI> Critical Data Store APIs
<UL>
Expand Down
6 changes: 4 additions & 2 deletions fsw/cfe-core/src/inc/cfe_es.h
Original file line number Diff line number Diff line change
Expand Up @@ -528,8 +528,8 @@ void CFE_ES_ExitApp(uint32 ExitStatus);
** \arg #CFE_ES_RunStatus_APP_ERROR - \copydoc CFE_ES_RunStatus_APP_ERROR
**
** \returns
** \retcode #true \retdesc The application should continue executing \endcode
** \retcode #false \retdesc The application should terminate itself \endcode
** \retcode true \retdesc The application should continue executing \endcode
** \retcode false \retdesc The application should terminate itself \endcode
** \endreturns
**
** \sa #CFE_ES_ExitApp, #CFE_ES_RegisterApp
Expand Down Expand Up @@ -558,6 +558,8 @@ bool CFE_ES_RunLoop(uint32 *ExitStatus);
** wait indefinitely to avoid hanging a critical
** application because a non-critical app did not start.
**
** \param[in] MinSystemState Determine the state of the App
**
** \returns
** CFE_SUCCESS if state was successfully achieved
** CFE_ES_OPERATION_TIMED_OUT if the timeout was reached
Expand Down
4 changes: 2 additions & 2 deletions fsw/cfe-core/src/inc/cfe_es_events.h
Original file line number Diff line number Diff line change
Expand Up @@ -959,8 +959,8 @@
** This event message is generated in response to receiving an Executive Services
** \link #CFE_ES_START_PERF_DATA_CC Start Performance Analyzer Data Collection Command \endlink
**
** The \c 'd' field identifies the requested trigger mode. Valid values are #CFE_ES_PerfMode_t CFE_ES_PERF_TRIGGER_START (0),
** #CFE_ES_PerfMode_t CFE_ES_PERF_TRIGGER_CENTER (1), and #CFE_ES_PerfMode_t CFE_ES_PERF_TRIGGER_END (2)
** The \c 'd' field identifies the requested trigger mode. Valid values are \link #CFE_ES_PerfMode_t CFE_ES_PERF_TRIGGER_START (0) \endlink,
** \link #CFE_ES_PerfMode_t CFE_ES_PERF_TRIGGER_CENTER (1) \endlink, and \link #CFE_ES_PerfMode_t CFE_ES_PERF_TRIGGER_END (2) \endlink
**/
#define CFE_ES_PERF_STARTCMD_EID 57

Expand Down
Loading

0 comments on commit 9aedaab

Please sign in to comment.