Skip to content

Commit

Permalink
Merge pull request #1196 from nasa/integration-candidate
Browse files Browse the repository at this point in the history
cFE Integration candidate: 2021-03-02
  • Loading branch information
astrogeco authored Mar 4, 2021
2 parents 672b2dc + 9ab5798 commit 605cdd2
Show file tree
Hide file tree
Showing 35 changed files with 2,160 additions and 1,050 deletions.
62 changes: 36 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,17 @@ The detailed cFE user's guide can be viewed at <https://github.com/nasa/cFS/blob

## Version History

### Development Build: 6.8.0-rc1+dev365
### Development Build: v6.8.0-rc1+dev382

- Refactors the SB buffer descriptor object `CFE_SB_BufferD_t` and simplify the zero-copy buffer paradigm. Combines the zero-copy and the normal CFE buffer descriptor into a single unified `CFE_SB_BufferD_t` object. Results in a simpler zero-copy design that is similarto the the standard, non-zero-copy message path. All message descriptor objects are now tracked in a list by SB. All changes are internal to SB. This does not affect API or behavior of any existing APIs (but see note). Corrects a minor issue where the `MsgSendErrorCounter` would get incremented if there were no subscribers, but only in the zero copy API.
- Replaces `int_32` with `CFE_Status_t` for all error message codes
- Removes references to `cfeesugshellsrv` from user guide
- Adds null pointer checks and size checks to validate method parameters. Returning the input instead of an error code
- Removes use of `LogEnabled` element in HK telemetry for EVS logic since log is always enabled now. On failures, reset area or semaphore will panic.
- Fixes various build warnings when `BUILDTYPE=release`.
- See <https://github.com/nasa/cFE/pull/1196>

### Development Build: v6.8.0-rc1+dev365

- Implements a generic FS facility to perform file writes as a background job. Applications wanting to use this need to instantiate a state object (metadata) in global memory and two callback APIs, one to get a data record, another to send events. The following file requests are changed to use this facility:
- ES ER Log dump
Expand All @@ -29,7 +39,7 @@ The detailed cFE user's guide can be viewed at <https://github.com/nasa/cFS/blob
- Replaces `UT_Stub_SetForceFail` with `UT_Stub_SetDefaultReturnValue`. No behavior change.
- See <https://github.com/nasa/cFE/pull/1171>

### Development Build: 6.8.0-rc1+dev348
### Development Build: v6.8.0-rc1+dev348

- Corrects reference to PSP header file location. Build now succesfully completes the build succeeds again when using `add_psp_module()` in custom CMakeLists file.
- Replace "send" with "write" in names for commands that write files. For example, `CFE_SB_**SEND**_ROUTING_INFO_CC` is now `CFE_SB_**WRITE**_ROUTING_INFO_CC`. Updates function names, command code names and comments.
Expand Down Expand Up @@ -57,7 +67,7 @@ The detailed cFE user's guide can be viewed at <https://github.com/nasa/cFS/blob
- Adds Code QL analysis to continuous integration workflow.
- See <https://github.com/nasa/cFE/pull/1150>

### Development Build: 6.8.0-rc1+dev290
### Development Build: v6.8.0-rc1+dev290

- Documentation: Add Security.md with instructions to report vulnerability
- Documentation: Update cpuname/MISSION_CPUNAMES documentation
Expand Down Expand Up @@ -91,7 +101,7 @@ The detailed cFE user's guide can be viewed at <https://github.com/nasa/cFS/blob
- Make `CFE_ES_WriteToSysLog` stub unit test more informative by adding `UtDebug` output
- See <https://github.com/nasa/cFE/pull/1109>

### Development Build: 6.8.0-rc1+dev248
### Development Build: v6.8.0-rc1+dev248

- Replace `OS_FileSysStatVolume()` with`OS_fsBlocksFree()` which will be deprecated. This call reports the number of total blocks, not just the free blocks, making the check more accurate and removing the need for a workaround for desktop machines.
- Instead of accessing `OS_time_t` values directly, use the OSAL-provided conversion and access methods. This provides independence and abstraction from the specific `OS_time_t` definition and allows OSAL to transition to a 64 bit value.
Expand All @@ -100,22 +110,22 @@ The detailed cFE user's guide can be viewed at <https://github.com/nasa/cFS/blob
- Fixes deprecation directive typos
- See <https://github.com/nasa/cFE/pull/1088>

### Development Build: 6.8.0-rc1+dev236
### Development Build: v6.8.0-rc1+dev236

- Resolved doxygen warnings for osalguide and updated header file references
- Corrects the documentation for the CFE_SB_GetPipeName() unit test stub function.
- Adds a new github actions workflow file to run cppcheck
- See <https://github.com/nasa/cFE/pull/1066>

### Development Build: 6.8.0-rc1+dev228
### Development Build: v6.8.0-rc1+dev228

- Remove use of `osapi-os-loader.h` from ES UT.
- Use volatile `sig_atomic_t` for system state to avoid race issue if uint32 isn't atomic on a system
- Set the flags parameter on the OS_ModuleLoad() properly to allow an app to be properly unloaded, which in turn allows the reload command to work as expected. Fixes problem where unload comand resulted in continuous restarting of the same app code.
- Replaced `Test_MSG_PrintMsg` with `UT_DisplayPkt`. Also removed unused `Test_MSG_Sum`.
- See <https://github.com/nasa/cFE/pull/1047>

### Development Build: 6.8.0-rc1+dev218
### Development Build: v6.8.0-rc1+dev218

- Adds `CFE_SB_TransmitMsg`, `CFE_SB_TransmitBuffer`, `CFE_SB_ReceiveBuffer`
- Main change is to utilize `CFE_SB_Buffer_t` and `CFE_MSG_Message_t` in a consistent manner to facilitate alignment
Expand All @@ -126,7 +136,7 @@ The detailed cFE user's guide can be viewed at <https://github.com/nasa/cFS/blob
- See <https://github.com/nasa/cFE/pull/1045>


### Development Build: 6.8.0-rc1+dev204
### Development Build: v6.8.0-rc1+dev204

- Backward compatible API change. Replace many uses of generic uint16 and uint32 with a more purpose-specific type. Replace all sizes with size_t across the API.
- Rename `UT_SetForceFail` to `UT_SetDefaultReturnValue` since some functions that retain more than 1 value are not necessarily failing
Expand All @@ -137,7 +147,7 @@ The detailed cFE user's guide can be viewed at <https://github.com/nasa/cFS/blob
- Changes the type of the AppID parameter on "Cleanup" routines from `uint32` to `CFE_ES_ResourceID_t`.
- See <https://github.com/nasa/cFE/pull/1027>

### Development Build: 6.8.0-rc1+dev179
### Development Build: v6.8.0-rc1+dev179

- Adds macros for more compact calls to `CFE_EVS_SendEvent`, making the type be part of the function name.
- The sample configs leap seconds default value is now up to date. (As of Oct 2020)
Expand All @@ -147,7 +157,7 @@ The detailed cFE user's guide can be viewed at <https://github.com/nasa/cFS/blob
- Includes `cfe_private.h` for stubs that implement related elements.
- See <https://github.com/nasa/cFE/pull/1008>

### Development Build: 6.8.0-rc1+dev164
### Development Build: v6.8.0-rc1+dev164

- Keeps task names under 16 chars to make more debugger friendly, regardless
of the OSAL limit. Task name shows up as `ES_BG_TASK`
Expand All @@ -158,7 +168,7 @@ of the OSAL limit. Task name shows up as `ES_BG_TASK`
- Cast fixed width types to the type used in the `printf` call. Removes `printf` type warnings on the 32-bit RTEMS build.
- See <https://github.com/nasa/cFE/pull/991>

### Development Build: 6.8.0-rc1+dev150
### Development Build: v6.8.0-rc1+dev150

- Provide new Library API similar to App API
- Allows the existing CFE_ES_AppInfo_t structure to be extended to libraries as well as applications by introducing a new value (3) for the Type field.
Expand All @@ -177,19 +187,19 @@ of the OSAL limit. Task name shows up as `ES_BG_TASK`
- Individual events for deleting destinations when deleting a pipe removed to avoid a race condition around a 10-20% performance hit to hash via rough comparison on a linux box, no memory impact
- See <https://github.com/nasa/cFE/pull/975>

### Development Build: 6.8.0-rc1+dev139
### Development Build: v6.8.0-rc1+dev139

- For all resource types which have names, IDs are not re-issued after deletion, helping ensure safety as previously deleted IDs will not validate. Provides a consistent Name-ID translation API for all resource types. Enforces consistent argument/name validation on all resource types, and also enforces name uniqueness where relevant.
- Enhancement to use the full 16 bits of resource ID space, which avoids repeating ID values that have already been used. This significantly decreases the likelihood that a previously deleted ID will alias a newly allocated/valid ID.
- See <https://github.com/nasa/cFE/pull/959>

### Development Build: 6.8.0-rc1+dev129
### Development Build: v6.8.0-rc1+dev129

- Rather than having a second pool implementation only for CDS, use the generic pool implementation. This also uses the abstract resource identifiers to identify CDS blocks, rather than a direct reference.
- Add the system-specific module suffix (.o, .so, .obj, etc) and the default CFE core executable name to the configdata structure.
- See <https://github.com/nasa/cFE/pull/944>

### Development Build: 6.8.0-rc1+dev122
### Development Build: v6.8.0-rc1+dev122

- Adds the field `UnregAppID` to track whether an "unregistered" event was generated, un-overloading the EventCount field to serve its primary purpose of counting actual events generated from a valid/registered AppID.
- Move the AppID lookup execution to be early in the `CFE_SB_SendMsgFull` implementation. This avoids double locking between SB+ES and avoids a block-scope local variable.
Expand All @@ -200,12 +210,12 @@ of the OSAL limit. Task name shows up as `ES_BG_TASK`
- This creates the new `CFE_Status_t` typedef for function's return status codes. Also adds a note to `CFE_TBL_GetStatus` since its behavior will likely change in the future in the hopes of not having a non-zero "info" status.
- See <https://github.com/nasa/cFE/pull/936>

### Development Build: 6.8.0-rc1+dev109
### Development Build: v6.8.0-rc1+dev109

- Add a new typedef `CFE_ES_ResourceID_t` that can replace `uint32` for all ID storage and manipulation. Initially this is just an alias to `uint32` for backward compatibility.
- See <https://github.com/nasa/cFE/pull/916>

### Development Build: 6.8.0-rc1+dev105
### Development Build: v6.8.0-rc1+dev105

- Removes dependency on CCSDS version define.
- Removes old name and id defines.
Expand All @@ -216,15 +226,15 @@ of the OSAL limit. Task name shows up as `ES_BG_TASK`

- See <https://github.com/nasa/cFE/pull/912>

### Development Build: 6.8.0-rc1+dev91
### Development Build: v6.8.0-rc1+dev91

- Sets Revision to 99 for development build.
- Installs unit test to target directory.
- Returns processor ID to default to unbreak toolchain
- Applies the appid/taskid/counterid pattern to Library resources.
- See <https://github.com/nasa/cFE/pull/891>

### Development Build: 6.8.0-rc1+dev81
### Development Build: v6.8.0-rc1+dev81

- Deconflict CFE_ES_LIB_ALREADY_LOADED and CFE_ES_ERR_SYS_LOG_TRUNCATED EIDs
- Scrub all CFE references/uses of OSAL IDs to use the proper osal_id_t type. Any place that an OSAL ID is stored in memory or passed in an API call are changed to the osal_id_t type, rather than uint32. Conversions between this and other types (e.g. bare integer) is done using the OSAL-supplied conversion helpers.
Expand All @@ -235,7 +245,7 @@ of the OSAL limit. Task name shows up as `ES_BG_TASK`
- See <https://github.com/nasa/cFE/pull/876>


### Development Build: 6.8.0-rc1+dev65
### Development Build: v6.8.0-rc1+dev65

- In the next major CFE release, this code will be no longer supported at all. It should be removed early in the cycle to avoid needing to maintain this compatibility code.
- The CFE_ES_FindCDSInRegistry function had an unusual loop control structure with mixed types of signed and unsigned. This has the possibility of being infinite if the MaxNumRegEntries is zero due to the way the end condition is structured. Simplify to be like other loops and use unsigned int control variable.
Expand All @@ -245,7 +255,7 @@ of the OSAL limit. Task name shows up as `ES_BG_TASK`
- HOTFIX 20200902 - Fix SB Test_CleanupApp_API AppID.
- See <https://github.com/nasa/cFE/pull/861>

### Development Build: 6.8.0-rc1+dev42
### Development Build: v6.8.0-rc1+dev42

- Removes reference from documentation.
- CFE_SB_SendMsg stub now behaves the same as CFE_SB_TimeStampMsg (copies message pointer from local). No longer need to emulate CFE_SB_InitMsg from test code, set the API/stub data buffers directly.
Expand All @@ -254,30 +264,30 @@ of the OSAL limit. Task name shows up as `ES_BG_TASK`
- Replaced CFE_MISSION_SPACECRAFT_ID use with CFE_PSP_GetSpacecraftId() and updated unit test
- See <https://github.com/nasa/cFE/pull/849>

### Development Build: 6.8.0-rc1+dev28
### Development Build: v6.8.0-rc1+dev28

- Add msg stubs, update SB_UT to use them, and remove msg module include from unit tests
- Collapses time options down to just 32 bit second, 16 bit subsecond, always big endian. Removes old defines, and triggers an error if the configuration is set to a format that was removed.
- Enables source selection and out-of-tree mission-defined overrides in the msg directory
- Unit tests added from within unit tests will not execute, replaced this pattern with direct calls to the main subtest setup routine.
- See <https://github.com/nasa/cFE/pull/833>

### Development Build: 6.8.0-rc1+dev13
### Development Build: v6.8.0-rc1+dev13

- Deprecates `CFE_SB_GetLastSenderId()` API by introducing new `CFE_OMIT_DEPRECATED_6_8` tag
- Documentation update remove deleted requiremements
- Add a new *cfe_assert* module for functional testing by making it possible to load the UT assert object code as a CFE library. These are compiled as separate, independent modules and only loaded on demand. Also includes a draft example for cFE testing, which calls some basic ES AppId functions.
- See <https://github.com/nasa/cFE/pull/816>

### Development Build: 6.7.0+dev292
### Development Build: v6.7.0+dev292

- Add missing include path to the target/h and wrn/coreip directory.
Set and clarify difference between WIND_HOME and WIND_BASE variables.
Remove unrelated comment about CEXP (remnant from RTEMS). No more errors about missing headers.
- Version reporting is does not span multiple lines.
- See <https://github.com/nasa/cFE/pull/792>

### Development Build: 6.7.0+dev289
### Development Build: v6.7.0+dev289

- Update `CFE_SB_TimeStampMsg` to save the message pointer argument `UT_Stub_CopyFromLocal` so that unit tests can check it
- Only affects build system. Fully backward compatible. The defaults are applied if a user has nothing specifically configured in their `targets.cmake`. The defaults will select osal, cfe-core, and psp as before. The user now has the option to explicitly configure and control the inclusion of these modules and also provide mission-specific search paths to override them as desired.
Expand Down Expand Up @@ -434,13 +444,13 @@ Behavior Change: App unit tests requiring this will not fail to build due to und
- Fix strlen in CFE_ES_TaskInit <https://github.com/nasa/cFE/pull/23>
- Minor bug fixes (see <https://github.com/nasa/cFE/pull/378>)

### **_OFFICIAL RELEASE: 6.7.0 - Aquila_**
### **_OFFICIAL RELEASE: v6.7.0 - Aquila_**

- This is a point release from an internal repository
- Changes are detailed in [cFS repo](https://github.com/nasa/cFS) release documentation
- Apache 2.0

### **_OFFICIAL RELEASE: 6.6.0a_**
### **_OFFICIAL RELEASE: v6.6.0a_**

- This is a point release from an internal repository
- Apache 2.0
Expand Down
13 changes: 8 additions & 5 deletions cmake/sample_defs/cpu1_cfe_es_startup.scr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
CFE_LIB, /cf/sample_lib.so, SAMPLE_LIB_Init, SAMPLE_LIB, 0, 0, 0x0, 0;
CFE_APP, /cf/sample_app.so, SAMPLE_APP_Main, SAMPLE_APP, 50, 16384, 0x0, 0;
CFE_APP, /cf/ci_lab.so, CI_Lab_AppMain, CI_LAB_APP, 60, 16384, 0x0, 0;
CFE_APP, /cf/to_lab.so, TO_Lab_AppMain, TO_LAB_APP, 70, 16384, 0x0, 0;
CFE_APP, /cf/sch_lab.so, SCH_Lab_AppMain, SCH_LAB_APP, 80, 16384, 0x0, 0;
CFE_LIB, sample_lib, SAMPLE_LIB_Init, SAMPLE_LIB, 0, 0, 0x0, 0;
CFE_APP, sample_app, SAMPLE_APP_Main, SAMPLE_APP, 50, 16384, 0x0, 0;
CFE_APP, ci_lab, CI_Lab_AppMain, CI_LAB_APP, 60, 16384, 0x0, 0;
CFE_APP, to_lab, TO_Lab_AppMain, TO_LAB_APP, 70, 16384, 0x0, 0;
CFE_APP, sch_lab, SCH_Lab_AppMain, SCH_LAB_APP, 80, 16384, 0x0, 0;
!
! Startup script fields:
! 1. Object Type -- CFE_APP for an Application, or CFE_LIB for a library.
Expand All @@ -27,4 +27,7 @@ CFE_APP, /cf/sch_lab.so, SCH_Lab_AppMain, SCH_LAB_APP, 80, 16384, 0x0, 0;
! vxWorks = .o ( ci.o )
! RTEMS with S-record Loader = .s3r ( ci.s3r )
! RTEMS with CEXP Loader = .o ( ci.o )
! 3. The filename field (2) no longer requires a fully-qualified filename; the path and extension
! may be omitted. If omitted, the standard virtual path (/cf) and a platform-specific default
! extension will be used, which is derived from the build system.

46 changes: 29 additions & 17 deletions cmake/sample_defs/cpu1_platform_cfg.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,35 @@
#ifndef _cfe_platform_cfg_
#define _cfe_platform_cfg_


/**
** \cfeescfg Default virtual path for persistent storage
**
** \par Description:
** This configures the default location in the virtual file system
** for persistent/non-volatile storage. Files such as the startup
** script, app/library dynamic modules, and configuration tables are
** expected to be stored in this directory.
**
*/
#define CFE_PLATFORM_ES_NONVOL_DISK_MOUNT_STRING "/cf"

/**
** \cfeescfg Default virtual path for volatile storage
**
** \par Description:
** The #CFE_PLATFORM_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path
** for the CFE RAM disk. This is a parameter for missions that do not want to
** use the default value of "/ram", or for missions that need to have a different
** value for different CPUs or Spacecraft.
** Note that the vxWorks OSAL cannot currently handle names that have more than one
** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but
** "/disks/ram" will not.
** Multiple separators can be used with the posix or RTEMS ports.
**
*/
#define CFE_PLATFORM_ES_RAM_DISK_MOUNT_STRING "/ram"

/**
** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold
**
Expand Down Expand Up @@ -682,23 +711,6 @@
#define CFE_PLATFORM_ES_RAM_DISK_PERCENT_RESERVED 30


/**
** \cfeescfg RAM Disk Mount string
**
** \par Description:
** The #CFE_PLATFORM_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path
** for the CFE RAM disk. This is a parameter for missions that do not want to
** use the default value of "/ram", or for missions that need to have a different
** value for different CPUs or Spacecraft.
** Note that the vxWorks OSAL cannot currently handle names that have more than one
** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but
** "/disks/ram" will not.
** Multiple separators can be used with the posix or RTEMS ports.
**
*/
#define CFE_PLATFORM_ES_RAM_DISK_MOUNT_STRING "/ram"


/**
** \cfeescfg Define Critical Data Store Size
**
Expand Down
12 changes: 11 additions & 1 deletion cmake/target/inc/target_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,17 @@ typedef const struct
uint32 RamDiskTotalSectors; /***< RAM disk number of sectors */

/**
* Default value for start up file
* Default value for nonvolatile file system mount point
*/
const char *NonvolMountPoint;

/**
* Default value for volatile file system mount point
*/
const char *RamdiskMountPoint;

/**
* File name of startup script
*/
const char *NonvolStartupFile;

Expand Down
5 changes: 3 additions & 2 deletions cmake/target/src/target_config.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,10 @@ Target_CfeConfigData GLOBAL_CFE_CONFIGDATA =
.SystemNotify = CFE_ES_ProcessAsyncEvent,

/*
* Default values for Startup file.
* This is a suggested value, but the PSP may provide a different file
* Default values for various file paths
*/
.NonvolMountPoint = CFE_PLATFORM_ES_NONVOL_DISK_MOUNT_STRING,
.RamdiskMountPoint = CFE_PLATFORM_ES_RAM_DISK_MOUNT_STRING,
.NonvolStartupFile = CFE_PLATFORM_ES_NONVOL_STARTUP_FILE,

/*
Expand Down
Loading

0 comments on commit 605cdd2

Please sign in to comment.