All Projects → nasa → PSP

nasa / PSP

Licence: Apache-2.0 License
The Core Flight System (cFS) Platform Support Package (PSP)

Programming Languages

c
50402 projects - #5 most used programming language
CMake
9771 projects

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.

Version History

Development Build: v1.6.0-rc4+dev6

Development Build: v1.5.0-rc1+dev124

Development Build: v1.5.0-rc1+dev118

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 https://github.com/nasa/PSP/pull/289 and https://github.com/nasa/cFS/pull/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 https://github.com/nasa/PSP/pull/288 and https://github.com/nasa/cFS/pull/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 https://github.com/nasa/PSP/pull/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 https://github.com/nasa/PSP/pull/273

Development Build: v1.5.0-rc1+dev82

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 https://github.com/nasa/PSP/pull/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 https://github.com/nasa/PSP/pull/250

Development Build: 1.5.0-rc1+dev58

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 https://github.com/nasa/psp/pull/240

Development Build: 1.5.0-rc1+dev46

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 https://github.com/nasa/PSP/pull/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 https://github.com/nasa/PSP/pull/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 https://github.com/nasa/PSP/pull/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 https://github.com/nasa/PSP/pull/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 https://github.com/nasa/PSP/pull/206

Development Build: 1.5.0-rc1+dev14

Development Build: 1.5.0-rc1+dev6

Development Build: 1.4.0+dev76

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 https://github.com/nasa/PSP/pull/176

Development Build: 1.4.14

Development Build: 1.4.13

Development Build: 1.4.12

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 https://github.com/nasa/PSP/pull/160

Development Build: 1.4.10

Development Build: 1.4.9

Development Build: 1.4.8

Development Build: 1.4.7

Development Build: 1.4.6

Development Build: 1.4.5

Development Build: 1.4.4

Development Build: 1.4.3

Development Build: 1.4.2

Development Build: 1.4.1

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://cfs.gsfc.nasa.gov

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].