diff --git a/CMakeLists.txt b/CMakeLists.txt index 075dc51f7..bdf3fdc40 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -175,10 +175,7 @@ if(FSFW_BUILD_TESTS) configure_file(unittests/testcfg/TestsConfig.h.in tests/TestsConfig.h) if(FSFW_OSAL MATCHES "freertos") - message( - STATUS - "${MSG_PREFIX} Downloading FreeRTOS with FetchContent" - ) + message(STATUS "${MSG_PREFIX} Downloading FreeRTOS with FetchContent") include(FetchContent) set(FreeRTOS_PORT posix) @@ -251,8 +248,6 @@ if(FSFW_FETCH_CONTENT_TARGETS) set_target_properties(Catch2 PROPERTIES DEBUG_POSTFIX "") endif() - - endif() set(FSFW_CORE_INC_PATH "inc") diff --git a/src/fsfw/osal/freertos/BinSemaphUsingTask.h b/src/fsfw/osal/freertos/BinSemaphUsingTask.h index 340633314..d1b82703d 100644 --- a/src/fsfw/osal/freertos/BinSemaphUsingTask.h +++ b/src/fsfw/osal/freertos/BinSemaphUsingTask.h @@ -54,7 +54,7 @@ class BinarySemaphoreUsingTask : public SemaphoreIF { * - @c returnvalue::FAILED on failure */ ReturnValue_t acquireWithTickTimeout(TimeoutType timeoutType = TimeoutType::BLOCKING, - TickType_t timeoutTicks = portMAX_DELAY); + TickType_t timeoutTicks = portMAX_DELAY); /** * Get handle to the task related to the semaphore. diff --git a/src/fsfw/osal/freertos/TaskManagement.cpp b/src/fsfw/osal/freertos/TaskManagement.cpp index b09ff721b..144985b9a 100644 --- a/src/fsfw/osal/freertos/TaskManagement.cpp +++ b/src/fsfw/osal/freertos/TaskManagement.cpp @@ -3,12 +3,12 @@ void TaskManagement::vRequestContextSwitchFromTask() { vTaskDelay(0); } void TaskManagement::requestContextSwitch(CallContext callContext = CallContext::TASK) { -// if (callContext == CallContext::ISR) { -// // This function depends on the partmacro.h definition for the specific device -// vRequestContextSwitchFromISR(); -// } else { - vRequestContextSwitchFromTask(); -// } + // if (callContext == CallContext::ISR) { + // // This function depends on the partmacro.h definition for the specific device + // vRequestContextSwitchFromISR(); + // } else { + vRequestContextSwitchFromTask(); + // } } TaskHandle_t TaskManagement::getCurrentTaskHandle() { return xTaskGetCurrentTaskHandle(); } diff --git a/src/fsfw/osal/freertos/TaskManagement.h b/src/fsfw/osal/freertos/TaskManagement.h index 44c8c0f39..7a6b1700a 100644 --- a/src/fsfw/osal/freertos/TaskManagement.h +++ b/src/fsfw/osal/freertos/TaskManagement.h @@ -11,7 +11,7 @@ * Architecture dependant portmacro.h function call. * Should be implemented in bsp. */ -//extern "C" void vRequestContextSwitchFromISR(); +// extern "C" void vRequestContextSwitchFromISR(); /*! * Used by functions to tell if they are being called from @@ -53,7 +53,7 @@ TaskHandle_t getCurrentTaskHandle(); * @return Smallest value of stack remaining since the task was started in * words. */ -//size_t getTaskStackHighWatermark(TaskHandle_t task = nullptr); +// size_t getTaskStackHighWatermark(TaskHandle_t task = nullptr); }; // namespace TaskManagement diff --git a/src/fsfw/pus/Service11TelecommandScheduling.tpp b/src/fsfw/pus/Service11TelecommandScheduling.tpp index 540f6c689..ac08f02ca 100644 --- a/src/fsfw/pus/Service11TelecommandScheduling.tpp +++ b/src/fsfw/pus/Service11TelecommandScheduling.tpp @@ -2,12 +2,12 @@ #include +#include "fsfw/globalfunctions/CRC.h" #include "fsfw/objectmanager/ObjectManager.h" #include "fsfw/serialize/SerializeAdapter.h" #include "fsfw/serviceinterface.h" -#include "fsfw/tmtcservices/AcceptsTelecommandsIF.h" #include "fsfw/tmtcpacket/pus/tc/PusTcIF.h" -#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/tmtcservices/AcceptsTelecommandsIF.h" static constexpr auto DEF_END = SerializeIF::Endianness::BIG; @@ -180,7 +180,7 @@ inline ReturnValue_t Service11TelecommandScheduling::doInsertActivi if (CRC::crc16ccitt(data, size) != 0) { return CONTAINED_TC_CRC_MISSMATCH; } - + // store currentPacket and receive the store address store_address_t addr{}; if (tcStore->addData(&addr, data, size) != returnvalue::OK || diff --git a/unittests/CatchRunner.cpp b/unittests/CatchRunner.cpp index 8478efbf6..a25d523d6 100644 --- a/unittests/CatchRunner.cpp +++ b/unittests/CatchRunner.cpp @@ -10,28 +10,31 @@ #define CATCH_CONFIG_COLOUR_WINDOWS -#include #include +#include + #ifdef FSFW_OSAL_FREERTOS - #include - #include "task.h" +#include + +#include "task.h" #endif extern int customSetup(); extern int customTeardown(); - #ifdef FSFW_OSAL_FREERTOS struct Taskparameters { - int argc; char** argv;TaskHandle_t catchTask; + int argc; + char** argv; + TaskHandle_t catchTask; } taskParameters; -void unittestTaskFunction( void *pvParameters ) { +void unittestTaskFunction(void* pvParameters) { Taskparameters* parameters = (Taskparameters*)pvParameters; - + int result = Catch::Session().run(parameters->argc, parameters->argv); - + vTaskDelay(pdMS_TO_TICKS(10)); vTaskSuspendAll(); vTaskDelete(parameters->catchTask); @@ -40,26 +43,27 @@ void unittestTaskFunction( void *pvParameters ) { } #endif - int main(int argc, char* argv[]) { customSetup(); int result = 0; - #ifdef FSFW_OSAL_FREERTOS - xTaskCreate( unittestTaskFunction, /* The function that implements the task. */ - "Unittests", /* The text name assigned to the task - for debug only as it is not used by the kernel. */ - configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */ - &taskParameters, /* The parameter passed to the task - not used in this simple case. */ - 1, /* The priority assigned to the task. */ - &taskParameters.catchTask); /* The task handle is not required, so NULL is passed. */ +#ifdef FSFW_OSAL_FREERTOS + xTaskCreate( + unittestTaskFunction, /* The function that implements the task. */ + "Unittests", /* The text name assigned to the task - for debug only as it is not used by the + kernel. */ + configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */ + &taskParameters, /* The parameter passed to the task - not used in this simple case. */ + 1, /* The priority assigned to the task. */ + &taskParameters.catchTask); /* The task handle is not required, so NULL is passed. */ taskParameters.argc = argc; taskParameters.argv = argv; vTaskStartScheduler(); - #else +#else // Catch internal function call result = Catch::Session().run(argc, argv); - #endif +#endif // global clean-up customTeardown(); diff --git a/unittests/CatchSetup.cpp b/unittests/CatchSetup.cpp index cbed8029e..fc5bb3f57 100644 --- a/unittests/CatchSetup.cpp +++ b/unittests/CatchSetup.cpp @@ -6,8 +6,6 @@ #include #endif - - #include "fsfw/objectmanager/ObjectManager.h" #include "fsfw/serviceinterface/ServiceInterface.h" #include "fsfw/storagemanager/StorageManagerIF.h" diff --git a/unittests/osal/TestClock.cpp b/unittests/osal/TestClock.cpp index 663bcf331..bdfefde63 100644 --- a/unittests/osal/TestClock.cpp +++ b/unittests/osal/TestClock.cpp @@ -1,12 +1,11 @@ #include #include +#include #include #include #include -#include - #include "CatchDefinitions.h" TEST_CASE("OSAL::Clock Test", "[OSAL::Clock Test]") { diff --git a/unittests/testcfg/freertos/FreeRTOSConfig.h b/unittests/testcfg/freertos/FreeRTOSConfig.h index 2f58e3545..049bbc25e 100644 --- a/unittests/testcfg/freertos/FreeRTOSConfig.h +++ b/unittests/testcfg/freertos/FreeRTOSConfig.h @@ -1,101 +1,101 @@ #ifndef FREERTOS_CONFIG_H #define FREERTOS_CONFIG_H -#define configUSE_PREEMPTION 1 +#define configUSE_PREEMPTION 1 #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 -#define configUSE_TICKLESS_IDLE 0 -#define configTICK_RATE_HZ 1000 -#define configMAX_PRIORITIES 5 -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) PTHREAD_STACK_MIN ) -#define configMAX_TASK_NAME_LEN 16 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 1 -#define configUSE_TASK_NOTIFICATIONS 1 -#define configTASK_NOTIFICATION_ARRAY_ENTRIES 3 -#define configUSE_MUTEXES 1 -#define configUSE_RECURSIVE_MUTEXES 0 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configUSE_ALTERNATIVE_API 0 /* Deprecated! */ -#define configQUEUE_REGISTRY_SIZE 20 -#define configUSE_QUEUE_SETS 0 -#define configUSE_TIME_SLICING 0 -#define configUSE_NEWLIB_REENTRANT 0 -#define configENABLE_BACKWARD_COMPATIBILITY 1 +#define configUSE_TICKLESS_IDLE 0 +#define configTICK_RATE_HZ 1000 +#define configMAX_PRIORITIES 5 +#define configMINIMAL_STACK_SIZE ((unsigned short)PTHREAD_STACK_MIN) +#define configMAX_TASK_NAME_LEN 16 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 1 +#define configUSE_TASK_NOTIFICATIONS 1 +#define configTASK_NOTIFICATION_ARRAY_ENTRIES 3 +#define configUSE_MUTEXES 1 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configUSE_ALTERNATIVE_API 0 /* Deprecated! */ +#define configQUEUE_REGISTRY_SIZE 20 +#define configUSE_QUEUE_SETS 0 +#define configUSE_TIME_SLICING 0 +#define configUSE_NEWLIB_REENTRANT 0 +#define configENABLE_BACKWARD_COMPATIBILITY 1 #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 5 -#define configUSE_MINI_LIST_ITEM 1 -#define configSTACK_DEPTH_TYPE uint16_t -#define configMESSAGE_BUFFER_LENGTH_TYPE size_t -#define configHEAP_CLEAR_MEMORY_ON_FREE 1 +#define configUSE_MINI_LIST_ITEM 1 +#define configSTACK_DEPTH_TYPE uint16_t +#define configMESSAGE_BUFFER_LENGTH_TYPE size_t +#define configHEAP_CLEAR_MEMORY_ON_FREE 1 /* Memory allocation related definitions. */ -#define configSUPPORT_STATIC_ALLOCATION 0 -#define configSUPPORT_DYNAMIC_ALLOCATION 1 -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 1024 * 1024 ) ) -#define configAPPLICATION_ALLOCATED_HEAP 1 -#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0 +#define configSUPPORT_STATIC_ALLOCATION 0 +#define configSUPPORT_DYNAMIC_ALLOCATION 1 +#define configTOTAL_HEAP_SIZE ((size_t)(1024 * 1024)) +#define configAPPLICATION_ALLOCATED_HEAP 1 +#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0 /* Hook function related definitions. */ -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configCHECK_FOR_STACK_OVERFLOW 0 -#define configUSE_MALLOC_FAILED_HOOK 0 -#define configUSE_DAEMON_TASK_STARTUP_HOOK 0 -#define configUSE_SB_COMPLETED_CALLBACK 0 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_DAEMON_TASK_STARTUP_HOOK 0 +#define configUSE_SB_COMPLETED_CALLBACK 0 /* Run time and task stats gathering related definitions. */ -#define configGENERATE_RUN_TIME_STATS 0 -#define configUSE_TRACE_FACILITY 0 -#define configUSE_STATS_FORMATTING_FUNCTIONS 0 +#define configGENERATE_RUN_TIME_STATS 0 +#define configUSE_TRACE_FACILITY 0 +#define configUSE_STATS_FORMATTING_FUNCTIONS 0 /* Co-routine related definitions. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES 1 +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES 1 /* Software timer related definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY 3 -#define configTIMER_QUEUE_LENGTH 10 -#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY 3 +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE /* Interrupt nesting behaviour configuration. */ -#define configKERNEL_INTERRUPT_PRIORITY [dependent of processor] -#define configMAX_SYSCALL_INTERRUPT_PRIORITY [dependent on processor and application] -#define configMAX_API_CALL_INTERRUPT_PRIORITY [dependent on processor and application] +#define configKERNEL_INTERRUPT_PRIORITY [dependent of processor] +#define configMAX_SYSCALL_INTERRUPT_PRIORITY [dependent on processor and application] +#define configMAX_API_CALL_INTERRUPT_PRIORITY [dependent on processor and application] /* Define to trap errors during development. */ //#define configASSERT( ( x ) ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ ) /* FreeRTOS MPU specific definitions. */ #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0 -#define configTOTAL_MPU_REGIONS 8 /* Default value. */ -#define configTEX_S_C_B_FLASH 0x07UL /* Default value. */ -#define configTEX_S_C_B_SRAM 0x07UL /* Default value. */ -#define configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY 1 -#define configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS 1 -#define configENABLE_ERRATA_837070_WORKAROUND 1 +#define configTOTAL_MPU_REGIONS 8 /* Default value. */ +#define configTEX_S_C_B_FLASH 0x07UL /* Default value. */ +#define configTEX_S_C_B_SRAM 0x07UL /* Default value. */ +#define configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY 1 +#define configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS 1 +#define configENABLE_ERRATA_837070_WORKAROUND 1 /* ARMv8-M secure side port related definitions. */ -#define secureconfigMAX_SECURE_CONTEXTS 5 +#define secureconfigMAX_SECURE_CONTEXTS 5 /* Optional functions - most linkers will remove unused functions anyway. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_xResumeFromISR 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_xTaskGetSchedulerState 1 -#define INCLUDE_xTaskGetCurrentTaskHandle 1 -#define INCLUDE_uxTaskGetStackHighWaterMark 0 -#define INCLUDE_uxTaskGetStackHighWaterMark2 0 -#define INCLUDE_xTaskGetIdleTaskHandle 0 -#define INCLUDE_eTaskGetState 0 -#define INCLUDE_xEventGroupSetBitFromISR 1 -#define INCLUDE_xTimerPendFunctionCall 0 -#define INCLUDE_xTaskAbortDelay 0 -#define INCLUDE_xTaskGetHandle 0 -#define INCLUDE_xTaskResumeFromISR 1 +#define INCLUDE_vTaskPrioritySet 1 +#define INCLUDE_uxTaskPriorityGet 1 +#define INCLUDE_vTaskDelete 1 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_xResumeFromISR 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_vTaskDelay 1 +#define INCLUDE_xTaskGetSchedulerState 1 +#define INCLUDE_xTaskGetCurrentTaskHandle 1 +#define INCLUDE_uxTaskGetStackHighWaterMark 0 +#define INCLUDE_uxTaskGetStackHighWaterMark2 0 +#define INCLUDE_xTaskGetIdleTaskHandle 0 +#define INCLUDE_eTaskGetState 0 +#define INCLUDE_xEventGroupSetBitFromISR 1 +#define INCLUDE_xTimerPendFunctionCall 0 +#define INCLUDE_xTaskAbortDelay 0 +#define INCLUDE_xTaskGetHandle 0 +#define INCLUDE_xTaskResumeFromISR 1 /* A header file that defines trace macro can be included here. */