From f152ff83df8d94045ac28878de9bb67cdabceb94 Mon Sep 17 00:00:00 2001 From: Joseph Hickey Date: Wed, 10 Jan 2024 14:47:31 -0500 Subject: [PATCH 1/3] Fix #426, conditional module inclusion Add a cmake file that extends the PSP_TARGET_MODULE_LIST conditionally. Initially, this can check for a minimum target system version and only include modules that are known to work on that version. This can be used to make the RTEMS 4.11 build work again. --- CMakeLists.txt | 2 +- fsw/pc-rtems/psp_conditional_modules.cmake | 8 ++++++++ fsw/pc-rtems/psp_module_list.cmake | 7 +++++-- 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 fsw/pc-rtems/psp_conditional_modules.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d601212..a6d904c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,7 @@ target_include_directories(psp_module_api INTERFACE # Translate the CFE_PSP_TARGETNAME to a set of additional modules to build file(STRINGS "${CMAKE_CURRENT_LIST_DIR}/fsw/${CFE_PSP_TARGETNAME}/psp_module_list.cmake" PSP_TARGET_MODULE_LIST REGEX "^[a-zA-Z]") +include("${CMAKE_CURRENT_LIST_DIR}/fsw/${CFE_PSP_TARGETNAME}/psp_conditional_modules.cmake" OPTIONAL) # The PSP is currently built in modular parts, consisting of a platform-specific # module(s) combined with a shared component which is built for multiple targets. @@ -72,4 +73,3 @@ if (ENABLE_UNIT_TESTS) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ut-stubs) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/unit-test-coverage) endif () - diff --git a/fsw/pc-rtems/psp_conditional_modules.cmake b/fsw/pc-rtems/psp_conditional_modules.cmake new file mode 100644 index 00000000..b559d224 --- /dev/null +++ b/fsw/pc-rtems/psp_conditional_modules.cmake @@ -0,0 +1,8 @@ +# The sysmon module only works in RTEMS >= 5. +# Ideally this check should be VERSION_GREATER_EQUAL 5, but that conditional does +# not exist in all versions of cmake. +if(CMAKE_SYSTEM_VERSION VERSION_GREATER 4.99) + + list(APPEND PSP_TARGET_MODULE_LIST rtems_sysmon) + +endif() \ No newline at end of file diff --git a/fsw/pc-rtems/psp_module_list.cmake b/fsw/pc-rtems/psp_module_list.cmake index ec59c6a7..f93fe1e6 100644 --- a/fsw/pc-rtems/psp_module_list.cmake +++ b/fsw/pc-rtems/psp_module_list.cmake @@ -1,5 +1,9 @@ # This is a list of modules that is included as a fixed/base set -# when this PSP is selected. They must exist under fsw/modules +# when this PSP is selected. They must exist under fsw/modules. + +# NOTE: This set is REQUIRED for all versions of the platform. +# If a module only works on some versions of the platform, add +# if to psp_conditional_modules.cmake instead soft_timebase timebase_posix_clock @@ -7,4 +11,3 @@ eeprom_notimpl ram_direct port_notimpl iodriver -rtems_sysmon \ No newline at end of file From 12cf76ed03d27ace1e0fd8b36f508d131c23feb1 Mon Sep 17 00:00:00 2001 From: Dylan Date: Wed, 27 Dec 2023 10:01:40 -0500 Subject: [PATCH 2/3] Fix #412, updating PSP to use new versioning system. --- fsw/mcp750-vxworks/inc/psp_version.h | 25 +++++++++++++++---------- fsw/pc-linux/inc/psp_version.h | 25 +++++++++++++++---------- fsw/pc-rtems/inc/psp_version.h | 25 +++++++++++++++---------- fsw/shared/src/cfe_psp_version.c | 2 +- 4 files changed, 46 insertions(+), 31 deletions(-) diff --git a/fsw/mcp750-vxworks/inc/psp_version.h b/fsw/mcp750-vxworks/inc/psp_version.h index d00c32a8..a5a3c934 100644 --- a/fsw/mcp750-vxworks/inc/psp_version.h +++ b/fsw/mcp750-vxworks/inc/psp_version.h @@ -28,14 +28,21 @@ * Development Build Macro Definitions */ #define CFE_PSP_IMPL_BUILD_NUMBER 102 -#define CFE_PSP_IMPL_BUILD_BASELINE "v1.6.0-rc4" +#define CFE_PSP_IMPL_BUILD_BASELINE "equuleus-rc1" +#define CFE_PSP_BUILD_DEV_CYCLE "equuleus-rc2" /**< @brief Development: Release name for current development cycle */ +#define CFE_PSP_BUILD_CODENAME "Equuleus" /**< @brief: Development: Code name for the current build */ /* * Version Macros, see \ref cfsversions for definitions. */ #define CFE_PSP_IMPL_MAJOR_VERSION 1 /*!< @brief Major version number */ #define CFE_PSP_IMPL_MINOR_VERSION 4 /*!< @brief Minor version number */ -#define CFE_PSP_IMPL_REVISION 99 /*!< @brief Revision version number. Value of 99 indicates a development version.*/ +#define CFE_PSP_IMPL_REVISION 0 /*!< @brief Revision version number. Value of 0 indicates a development version.*/ + +/** + * @brief Last official release. + */ +#define CFE_PSP_LAST_OFFICIAL "v1.4.0" /*! * @brief Mission revision. @@ -46,8 +53,6 @@ */ #define CFE_PSP_IMPL_MISSION_REV 0xFF -#define CFE_PSP_IMPL_CODENAME "Draco" - /* * Tools to construct version string */ @@ -61,12 +66,12 @@ */ #define CFE_PSP_IMPL_VERSION CFE_PSP_IMPL_BUILD_BASELINE "+dev" CFE_PSP_IMPL_STR(CFE_PSP_IMPL_BUILD_NUMBER) -/*! @brief DEVELOPMENT Build Version String. - * @details Reports the current development build's baseline, number, and name. Also includes a note about the latest - * official version. @n See @ref cfsversions for format differences between development and release versions. +/** + * @brief Max Version String length. + * + * Maximum length that a tblCRCTool version string can be. + * */ -#define CFE_PSP_IMPL_VERSION_STRING \ - " PSP DEVELOPMENT BUILD " CFE_PSP_IMPL_VERSION \ - ", Last Official Release: psp v1.4.0" /* For full support please use this version */ +#define CFE_PSP_CFG_MAX_VERSION_STR_LEN 256 #endif diff --git a/fsw/pc-linux/inc/psp_version.h b/fsw/pc-linux/inc/psp_version.h index d00c32a8..a5a3c934 100644 --- a/fsw/pc-linux/inc/psp_version.h +++ b/fsw/pc-linux/inc/psp_version.h @@ -28,14 +28,21 @@ * Development Build Macro Definitions */ #define CFE_PSP_IMPL_BUILD_NUMBER 102 -#define CFE_PSP_IMPL_BUILD_BASELINE "v1.6.0-rc4" +#define CFE_PSP_IMPL_BUILD_BASELINE "equuleus-rc1" +#define CFE_PSP_BUILD_DEV_CYCLE "equuleus-rc2" /**< @brief Development: Release name for current development cycle */ +#define CFE_PSP_BUILD_CODENAME "Equuleus" /**< @brief: Development: Code name for the current build */ /* * Version Macros, see \ref cfsversions for definitions. */ #define CFE_PSP_IMPL_MAJOR_VERSION 1 /*!< @brief Major version number */ #define CFE_PSP_IMPL_MINOR_VERSION 4 /*!< @brief Minor version number */ -#define CFE_PSP_IMPL_REVISION 99 /*!< @brief Revision version number. Value of 99 indicates a development version.*/ +#define CFE_PSP_IMPL_REVISION 0 /*!< @brief Revision version number. Value of 0 indicates a development version.*/ + +/** + * @brief Last official release. + */ +#define CFE_PSP_LAST_OFFICIAL "v1.4.0" /*! * @brief Mission revision. @@ -46,8 +53,6 @@ */ #define CFE_PSP_IMPL_MISSION_REV 0xFF -#define CFE_PSP_IMPL_CODENAME "Draco" - /* * Tools to construct version string */ @@ -61,12 +66,12 @@ */ #define CFE_PSP_IMPL_VERSION CFE_PSP_IMPL_BUILD_BASELINE "+dev" CFE_PSP_IMPL_STR(CFE_PSP_IMPL_BUILD_NUMBER) -/*! @brief DEVELOPMENT Build Version String. - * @details Reports the current development build's baseline, number, and name. Also includes a note about the latest - * official version. @n See @ref cfsversions for format differences between development and release versions. +/** + * @brief Max Version String length. + * + * Maximum length that a tblCRCTool version string can be. + * */ -#define CFE_PSP_IMPL_VERSION_STRING \ - " PSP DEVELOPMENT BUILD " CFE_PSP_IMPL_VERSION \ - ", Last Official Release: psp v1.4.0" /* For full support please use this version */ +#define CFE_PSP_CFG_MAX_VERSION_STR_LEN 256 #endif diff --git a/fsw/pc-rtems/inc/psp_version.h b/fsw/pc-rtems/inc/psp_version.h index d00c32a8..a5a3c934 100644 --- a/fsw/pc-rtems/inc/psp_version.h +++ b/fsw/pc-rtems/inc/psp_version.h @@ -28,14 +28,21 @@ * Development Build Macro Definitions */ #define CFE_PSP_IMPL_BUILD_NUMBER 102 -#define CFE_PSP_IMPL_BUILD_BASELINE "v1.6.0-rc4" +#define CFE_PSP_IMPL_BUILD_BASELINE "equuleus-rc1" +#define CFE_PSP_BUILD_DEV_CYCLE "equuleus-rc2" /**< @brief Development: Release name for current development cycle */ +#define CFE_PSP_BUILD_CODENAME "Equuleus" /**< @brief: Development: Code name for the current build */ /* * Version Macros, see \ref cfsversions for definitions. */ #define CFE_PSP_IMPL_MAJOR_VERSION 1 /*!< @brief Major version number */ #define CFE_PSP_IMPL_MINOR_VERSION 4 /*!< @brief Minor version number */ -#define CFE_PSP_IMPL_REVISION 99 /*!< @brief Revision version number. Value of 99 indicates a development version.*/ +#define CFE_PSP_IMPL_REVISION 0 /*!< @brief Revision version number. Value of 0 indicates a development version.*/ + +/** + * @brief Last official release. + */ +#define CFE_PSP_LAST_OFFICIAL "v1.4.0" /*! * @brief Mission revision. @@ -46,8 +53,6 @@ */ #define CFE_PSP_IMPL_MISSION_REV 0xFF -#define CFE_PSP_IMPL_CODENAME "Draco" - /* * Tools to construct version string */ @@ -61,12 +66,12 @@ */ #define CFE_PSP_IMPL_VERSION CFE_PSP_IMPL_BUILD_BASELINE "+dev" CFE_PSP_IMPL_STR(CFE_PSP_IMPL_BUILD_NUMBER) -/*! @brief DEVELOPMENT Build Version String. - * @details Reports the current development build's baseline, number, and name. Also includes a note about the latest - * official version. @n See @ref cfsversions for format differences between development and release versions. +/** + * @brief Max Version String length. + * + * Maximum length that a tblCRCTool version string can be. + * */ -#define CFE_PSP_IMPL_VERSION_STRING \ - " PSP DEVELOPMENT BUILD " CFE_PSP_IMPL_VERSION \ - ", Last Official Release: psp v1.4.0" /* For full support please use this version */ +#define CFE_PSP_CFG_MAX_VERSION_STR_LEN 256 #endif diff --git a/fsw/shared/src/cfe_psp_version.c b/fsw/shared/src/cfe_psp_version.c index 769143df..bb6f0583 100644 --- a/fsw/shared/src/cfe_psp_version.c +++ b/fsw/shared/src/cfe_psp_version.c @@ -44,7 +44,7 @@ const char *CFE_PSP_GetVersionString(void) *-----------------------------------------------------------------*/ const char *CFE_PSP_GetVersionCodeName(void) { - return CFE_PSP_IMPL_CODENAME; + return CFE_PSP_BUILD_CODENAME; } /*---------------------------------------------------------------- From a65cfe0bbcaf9bd3400f1e248fe332957fde0ff0 Mon Sep 17 00:00:00 2001 From: Dylan Date: Wed, 17 Jan 2024 13:55:46 -0500 Subject: [PATCH 3/3] Updating documentation and version numbers for equuleus-rc1+dev38 --- CHANGELOG.md | 5 +++++ fsw/mcp750-vxworks/inc/psp_version.h | 2 +- fsw/pc-linux/inc/psp_version.h | 2 +- fsw/pc-rtems/inc/psp_version.h | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c994b4a2..6ffcc498 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## Development Build: equuleus-rc1+dev38 +- updating PSP to use new versioning system +- conditional module inclusion +- See and + ## Development Build: v1.6.0-rc4+dev117 - Align mismatched function prototype/implem. parameter names - See diff --git a/fsw/mcp750-vxworks/inc/psp_version.h b/fsw/mcp750-vxworks/inc/psp_version.h index 44e30be1..a7f9e50a 100644 --- a/fsw/mcp750-vxworks/inc/psp_version.h +++ b/fsw/mcp750-vxworks/inc/psp_version.h @@ -27,7 +27,7 @@ /* * Development Build Macro Definitions */ -#define CFE_PSP_IMPL_BUILD_NUMBER 115 +#define CFE_PSP_IMPL_BUILD_NUMBER 38 #define CFE_PSP_IMPL_BUILD_BASELINE "equuleus-rc1" #define CFE_PSP_BUILD_DEV_CYCLE "equuleus-rc2" /**< @brief Development: Release name for current development cycle */ #define CFE_PSP_BUILD_CODENAME "Equuleus" /**< @brief: Development: Code name for the current build */ diff --git a/fsw/pc-linux/inc/psp_version.h b/fsw/pc-linux/inc/psp_version.h index a5a3c934..a7f9e50a 100644 --- a/fsw/pc-linux/inc/psp_version.h +++ b/fsw/pc-linux/inc/psp_version.h @@ -27,7 +27,7 @@ /* * Development Build Macro Definitions */ -#define CFE_PSP_IMPL_BUILD_NUMBER 102 +#define CFE_PSP_IMPL_BUILD_NUMBER 38 #define CFE_PSP_IMPL_BUILD_BASELINE "equuleus-rc1" #define CFE_PSP_BUILD_DEV_CYCLE "equuleus-rc2" /**< @brief Development: Release name for current development cycle */ #define CFE_PSP_BUILD_CODENAME "Equuleus" /**< @brief: Development: Code name for the current build */ diff --git a/fsw/pc-rtems/inc/psp_version.h b/fsw/pc-rtems/inc/psp_version.h index 44e30be1..a7f9e50a 100644 --- a/fsw/pc-rtems/inc/psp_version.h +++ b/fsw/pc-rtems/inc/psp_version.h @@ -27,7 +27,7 @@ /* * Development Build Macro Definitions */ -#define CFE_PSP_IMPL_BUILD_NUMBER 115 +#define CFE_PSP_IMPL_BUILD_NUMBER 38 #define CFE_PSP_IMPL_BUILD_BASELINE "equuleus-rc1" #define CFE_PSP_BUILD_DEV_CYCLE "equuleus-rc2" /**< @brief Development: Release name for current development cycle */ #define CFE_PSP_BUILD_CODENAME "Equuleus" /**< @brief: Development: Code name for the current build */