Skip to content
/ PSP Public

The Core Flight System (cFS) Platform Support Package (PSP)

License

Notifications You must be signed in to change notification settings

nasa/PSP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Static Analysis Format Check

Core Flight System : Framework : Platform Support Package

This repository contains NASA's Platform Support Package (PSP), which is a framework component of the Core Flight System.

This is a collection of APIs abstracting platform specific functionality to be located in the psp subdirectory of a cFS Mission Tree. The Core Flight System is bundled at https://github.com/nasa/cFS, which includes build and execution instructions.

Changelog

Development Build: v1.6.0-rc4+dev41

  • Add CFE_PSP_StatusToString and CFE_PSP_STATUS_C
  • See nasa/cFS#505

Development Build: v1.6.0-rc4+dev38

Development Build: v1.6.0-rc4+dev34

  • Update codeql workflow for reusable updates
  • Add cpu affinity example
  • Update RTEMS CMake Platform File
  • See #343 and nasa/cFS#471

Development Build: v1.6.0-rc4+dev21

Development Build: v1.6.0-rc4+dev14

  • Remove explicit filename doxygen comments
  • Apply header guard standard
  • See #326 and nasa/cFS#432

Development Build: v1.6.0-rc4+dev6

  • Sleep before exit when printing
  • Check the address in PSP get segment stubs
  • Set Build Baseline for cFS-Caelum-rc4: v1.6.0-rc4
  • See #318 and nasa/cFS#390

Development Build: v1.5.0-rc1+dev124

  • Relax strict of check before calling "Init" function of module, only check that module type is not invalid
  • Remove override of add_psp_module for coverage test
  • See #307 and nasa/cFS#351

Development Build: v1.5.0-rc1+dev118

  • Implement Coding Standards in CodeQL
  • rename doc to docs
  • See #296 and nasa/cFS#265

Development Build: v1.5.0-rc1+dev112

  • Cleans up stale code from the previous methods of generating 1Hz. Adds a new PSP module that instantiates an OSAL abstract timebase for use with cFE services. This single module is used across all psp implementations (mcp750, pc-linux, pc-rtems). Results in 1Hz timing tick on MCP750 will be more accurate. No changes to Linux or RTEMS
  • Fixes segfaults when CFE_PSP_Port routines are invoked on Linux.
  • Converts cfe_psp_ram.c and cfe_psp_port.c into modular components and removes from the "shared" directory. The existing implementations become the corresponding "direct" module, and are enabled based on the psp module selection. Adds a "notimpl" variant where all the functions return CFE_PSP_ERR_NOT_IMPLEMENTED. This is used on Linux or any other system where direct access is not possible. Renames the existing eeprom_stub module to be eeprom_notimpl for consistency and to avoid confusion with the unit test stubs.
  • Implements two PSP modules to provide CFE_PSP_GetTime and CFE_PSP_GetTimeBase, one for POSIX-compliant RTOS using clock_gettime() and the other specifically for PowerPC processors on VxWorks that have the vxTimeBaseGet() routine. Clarifies and documents the difference and use cases for CFE_PSP_GetTime and CFE_PSP_GetTimeBase. No impact to behavior.
  • Adds a coverage test for the VxWorks PSP timebase module and provides an example of how this can be implemented for other modules.
  • See #289 and nasa/cFS#238

Development Build: v1.5.0-rc1+dev101

  • Removes unnecessary global config structure Target_PspConfigData and associated elements in favor of the new version API.
  • The mem pool stats TLM command now works on 64-bit Linux and sends out the expected telemetry packet. Converts CFE_PSP_MemoryTable to internal object (instead of external) that should only be accessed via the PSP API. Replace uint32s with size_t. Use full range (SIZE_MAX) in the Linux/RTEMS implementation.
  • See #288 and nasa/cFS#233

Development Build: v1.5.0-rc1+dev95

  • Includes cfe_psp_version.c in the cmake source list, which was mistakenly omitted previously.
  • Applied the patch and confirmed that CS Cmake unit tests build. Unit tests relying on CFE_PSP_GetKernelTextSegmentInfo will build.
  • See #279

Development Build: v1.5.0-rc1+dev90

  • Addresses the issue of incompatible/non-portable code blobs in the "shared" directory. It uses the same modular init pattern as is used elsewhere in cFE: CMake generates a list of "base" modules correlating with the selected PSP (i.e. pc-linux, mcp750-vxworks, etc) and these modules are then initialized (in order) before the rest of PSP runs. The "direct write" EEPROM is not used unconditionally. Instead the proper eeprom implementation module is selected based on which PSP is selected. MCP750 uses direct write, pc-linux uses an mmap file, and pc-rtems uses a stub (not implemented).
  • Replaces " used on non-system header #includes with <>
  • Adds a contributing guide that links to the main cFS contributing guide.
  • See #273

Development Build: v1.5.0-rc1+dev82

  • HOTFIX 20210312, updates to work with older CMake
  • See #268

Development Build: v1.5.0-rc1+dev76

  • Fix #246, remove unused code.
  • Fix #254, use CMake to publish interface details
  • Fix #256, add PSP version API
  • Fix #258, Add Testing Tools to the Security Policy
  • See #260

Development Build: 1.5.0-rc1+dev68

  • Updates continuous integration workflow by adding static analysis with timeout and code format check. Adds status badges to ReadMe and removes old TravisCI artifacts.
  • Adds CodeQL analysis to continuous integration
  • Apply standard formatting to psp codebase. Only changes whitespace.
  • Adds missing "+dev" to development version output
  • See #250

Development Build: 1.5.0-rc1+dev58

  • Add Security.md with instructions on reporting vulnerabilities.
  • Rename UT_ClearForceFail as UT_ClearDefaultValue to reflect nasa/osal#724
  • Remove unused elements in CFE_PSP_ModuleType_t enum to avoids irregular enum warning
  • See #243

Development Build: 1.5.0-rc1+dev50

  • Instead of accessing OS_time_t member 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.
  • See #240

Development Build: 1.5.0-rc1+dev46

  • Add cppcheck GitHub Actions workflow file
  • See #234

Development Build: 1.5.0-rc1+dev42

  • Updates the Readme for RTEMS and adds README_RTEMS_5.txt. The changes include removing references to the CEXP module loader, and describing the development environment setup for RTEMS 5.
  • Remove obsolete OS_TaskRegister comment.
  • See #226

Development Build: 1.5.0-rc1+dev36

  • Rename UT_SetForceFail to UT_SetDefaultReturnValue since some functions that retain more than 1 value are not necessarily failing.
  • Use of the size_t type instead of uint32 in unit-tests to avoid a compiler type mismatch error on some platforms.
  • See #221

Development Build: 1.5.0-rc1+dev30

    • Use event callback mechanism to invoke pthread_setname_np() such that the OS kernel is informed of the OSAL task name. /proc filesystem on Linux now has actual task name, instead of all being core-cpu1. The pthread_setname_np API requires _GNU_SOURCE to be defined when compiling - this can be local to PSP.
  • Set REVISION to "99" to indicate development version
  • See #213

Development Build: 1.5.0-rc1+dev24

  • Improves the module ID lookup when getting the CFE core text segment info. VxWorks PSP should use the real module name, not assume cfe-core.o when getting text segment info
  • See #209

Development Build: 1.5.0-rc1+dev19

  • Use the osal_id_t typedef whenever dealing with an OSAL ID value.
  • Resolves build error regarding redefinition of PPC macros in the coverage test, when building on the actual ppc/vxworks target.
  • See #206

Development Build: 1.5.0-rc1+dev14

  • Sets the stub config data spacecraft id to historical value 0x42, was 42.
  • Installs unit test to target directories.
  • See #196

Development Build: 1.5.0-rc1+dev6

  • Adds CFE_PSP_GetProcessorName
  • Removes classic make artifacts
  • See #190

Development Build: 1.4.0+dev76

  • Provide a new framework and perform PSP coverage tests. New coverage test executable is built and several files within PSP are targeted.
  • See #184

Development Build: 1.4.0+dev71

  • Restructure code to make more amicable for rebuilding in a unit test environment. No major changes, primarily just shifting code between locations/headers to support unit testing.
  • Adds a char element Version to CFE_PSP_VersionInfo_t containing the version number expressed as a string. Defines new macros for the Build Number and the Build Baseline.
  • See #176

Development Build: 1.4.14

  • Changes the PSP reference to be compatible with the change in nasa/osal#449 making the BSP modules more generic and changes the name.
  • See #175

Development Build: 1.4.13

  • Changes the PSP reference to be compatible with the change in nasa/osal#449 making the BSP modules more generic and changes the name.
  • See #167

Development Build: 1.4.12

  • Replace 'OS_VolumeTable' with OS_FileSysAddFixedMap() in all PSPs.
  • See #166

Development Build: 1.4.11

  • Removes non-termination string warnings when building with GCC9.
  • Exception handling is now implemented on POSIX. There is no longer a separate handler for SIGINT - it is now treated as an exception and goes through the normal process which ends up "restarting" CFE. On pc-linux causes the process to exit normally. There is now a mechanism to capture the CTRL+C exception code and use it during normal test cycles.
  • See #160

Development Build: 1.4.10

  • Implements full-precision microsecond conversion
  • See #155

Development Build: 1.4.9

  • RTEMS builds successfully without errors
  • Build script uses a proper CMakeLists.txt instead of the aux_source directory
  • Minor updates (see #153)

Development Build: 1.4.8

  • Minor updates (see #151)

Development Build: 1.4.7

  • Fixed some build warnings for MCP750
  • Minor updates (see #142)

Development Build: 1.4.6

  • Minor updates (see #141)

Development Build: 1.4.5

  • Simplifies array handling in VxWorks
  • Minor updates (see #138)

Development Build: 1.4.4

  • Minor updates (see #132)

Development Build: 1.4.3

  • Minor updates (see #130)

Development Build: 1.4.2

  • Minor updates (see #127)

Development Build: 1.4.1

  • Minor updates (see #115)

1.4.0 OFFICIAL RELEASE - Aquila

  • This is a point release from an internal repository
  • Changes are detailed in cFS repo release documentation
  • Released as part of cFE 6.7.0, Apache 2.0

1.3.0a OFFICIAL RELEASE

The open source release does not include all PSPs that have been developed. Only the three PSPs included are managed by the community CCB. PSPs developed by other organizations can be requested through the mechanisms listed below. Note the framework PSPs delivered may change in the future as platforms become obsolete.

Known issues

See all open issues and closed to milestones later than this version.

Getting Help

For best results, submit issues:questions or issues:help wanted requests at https://github.com/nasa/cFS.

Official cFS page: http:https://cfs.gsfc.nasa.gov