diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b9d8cbbe..940d56e3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## Development Build: equuleus-rc1+dev195 +- Use string append and add newline +- Yield cpu to other tasks in SB Perf Test +- See and + ## Development Build: equuleus-rc1+dev187 - Use proper printf format for size_t - See diff --git a/modules/cfe_testcase/src/sb_performance_test.c b/modules/cfe_testcase/src/sb_performance_test.c index fc3135543..bf7f6c159 100644 --- a/modules/cfe_testcase/src/sb_performance_test.c +++ b/modules/cfe_testcase/src/sb_performance_test.c @@ -37,6 +37,9 @@ /* Number of messages to send during test */ uint32_t UT_BulkTestDuration = 1000; +/* Number of SB messages sent before yielding CPU (has to be power of 2 minus 1)*/ +static uint32_t UT_CpuYieldMask = 1024 - 1; + /* State structure for multicore test - shared between threads */ typedef struct UT_BulkMultiCoreSharedState { @@ -209,6 +212,13 @@ void RunSingleCmdSendRecv(void) UtAssert_UINT32_EQ(CmdPtr->Payload.Value, CmdMsg.Payload.Value); break; } + + /* Only yield CPU once in a while to avoid slowing down the test with too many context switches */ + if ((BulkCmd.SendCount & UT_CpuYieldMask) == 0) + { + /* Yield cpu to other task with same priority */ + OS_TaskDelay(0); + } } CFE_PSP_GetTime(&BulkCmd.EndTime); @@ -255,6 +265,13 @@ void RunSingleTlmSendRecv(void) UtAssert_UINT32_EQ(TlmPtr->Payload.Value, TlmMsg.Payload.Value); break; } + + /* Only yield CPU once in a while to avoid slowing down the test with too many context switches */ + if ((BulkTlm.SendCount & UT_CpuYieldMask) == 0) + { + /* Yield cpu to other task with same priority */ + OS_TaskDelay(0); + } } CFE_PSP_GetTime(&BulkTlm.EndTime); @@ -388,12 +405,19 @@ void UT_CommandTransmitterTask(void) CFE_Assert_STATUS_MUST_BE(CFE_SUCCESS); break; } + + /* Only yield CPU once in a while to avoid slowing down the test with too many context switches */ + if ((BulkCmd.SendCount & UT_CpuYieldMask) == 0) + { + /* Yield cpu to other task with same priority */ + OS_TaskDelay(0); + } } BulkCmd.XmitFinished = true; } -void UT_TelemtryTransmitterTask(void) +void UT_TelemetryTransmitterTask(void) { CFE_SB_Buffer_t * BufPtr; CFE_TEST_TestTlmMessage32_t *TlmMsgPtr; @@ -424,6 +448,13 @@ void UT_TelemtryTransmitterTask(void) CFE_Assert_STATUS_MUST_BE(CFE_SUCCESS); break; } + + /* Only yield CPU once in a while to avoid slowing down the test with too many context switches */ + if ((BulkTlm.SendCount & UT_CpuYieldMask) == 0) + { + /* Yield cpu to other task with same priority */ + OS_TaskDelay(0); + } } BulkTlm.XmitFinished = true; @@ -521,7 +552,7 @@ void TestBulkTransferMulti4(void) CFE_ES_CreateChildTask(&BulkCmd.TaskIdXmit, "CmdXmit", UT_CommandTransmitterTask, NULL, 32768, 150, 0), CFE_SUCCESS); UtAssert_INT32_EQ( - CFE_ES_CreateChildTask(&BulkTlm.TaskIdXmit, "TlmXmit", UT_TelemtryTransmitterTask, NULL, 32768, 150, 0), + CFE_ES_CreateChildTask(&BulkTlm.TaskIdXmit, "TlmXmit", UT_TelemetryTransmitterTask, NULL, 32768, 150, 0), CFE_SUCCESS); UtAssert_INT32_EQ( CFE_ES_CreateChildTask(&BulkCmd.TaskIdRecv, "CmdRecv", UT_CommandReceiverTask, NULL, 32768, 100, 0), diff --git a/modules/config/tool/CMakeLists.txt b/modules/config/tool/CMakeLists.txt index 491b2bd77..9c74cc586 100644 --- a/modules/config/tool/CMakeLists.txt +++ b/modules/config/tool/CMakeLists.txt @@ -47,7 +47,7 @@ foreach(SYSVAR ${TGTSYS_LIST}) set(PLATFORM_DEFINE_FILE ${MISSION_BINARY_DIR}/src/${OBJLIB_NAME}.c) set(PLATFORM_LIST_FILE ${MISSION_BINARY_DIR}/src/${OBJLIB_NAME}.list) list(APPEND PLATFORM_CONFIG_LIST $) - list(APPEND PLATFORM_OBJ_NAMES "CFE_PLATFORM(${SYSVAR})") + string(APPEND PLATFORM_OBJ_NAMES "CFE_PLATFORM(${SYSVAR})\n") add_custom_command( OUTPUT ${PLATFORM_DEFINE_FILE} diff --git a/modules/core_api/fsw/inc/cfe_version.h b/modules/core_api/fsw/inc/cfe_version.h index b95d3432a..e9070e3b3 100644 --- a/modules/core_api/fsw/inc/cfe_version.h +++ b/modules/core_api/fsw/inc/cfe_version.h @@ -26,7 +26,7 @@ #define CFE_VERSION_H /* Development Build Macro Definitions */ -#define CFE_BUILD_NUMBER 187 /**< @brief Development: Number of development git commits since CFE_BUILD_BASELINE */ +#define CFE_BUILD_NUMBER 195 /**< @brief Development: Number of development git commits since CFE_BUILD_BASELINE */ #define CFE_BUILD_BASELINE "equuleus-rc1" /**< @brief Development: Reference git tag for build number */ #define CFE_BUILD_DEV_CYCLE "equuleus-rc2" /**< @brief Development: Release name for current development cycle */ #define CFE_BUILD_CODENAME "Equuleus" /**< @brief: Development: Code name for the current build */