diff --git a/source/.mcuxpressoide_packages_support/info.properties b/source/.mcuxpressoide_packages_support/info.properties index 6386b73..fb8ca66 100644 --- a/source/.mcuxpressoide_packages_support/info.properties +++ b/source/.mcuxpressoide_packages_support/info.properties @@ -1,5 +1,5 @@ #MCUXpresso IDE -#Thu Mar 23 12:14:05 EET 2023 +#Thu Mar 23 12:55:50 EET 2023 product.name=MCUXpresso IDE v11.5.1 [Build 7266] [2022-04-13] product.version=11.5.1 product.build=7266 diff --git a/source/test/freertos/FreeRTOSConfig.h b/source/test/freertos/FreeRTOSConfig.h index b01a612..ec2abf9 100644 --- a/source/test/freertos/FreeRTOSConfig.h +++ b/source/test/freertos/FreeRTOSConfig.h @@ -73,7 +73,7 @@ *----------------------------------------------------------*/ #define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 //1 +#define configUSE_IDLE_HOOK 1 #define configUSE_TICK_HOOK 0 #define configCPU_CLOCK_HZ ( SystemCoreClock ) #define configTICK_RATE_HZ ( ( portTickType ) 1000 ) @@ -86,9 +86,9 @@ #define configIDLE_SHOULD_YIELD 1 #define configUSE_MUTEXES 1 #define configQUEUE_REGISTRY_SIZE 8 -#define configCHECK_FOR_STACK_OVERFLOW 0 //2 +#define configCHECK_FOR_STACK_OVERFLOW 2 #define configUSE_RECURSIVE_MUTEXES 1 -#define configUSE_MALLOC_FAILED_HOOK 0 //1 +#define configUSE_MALLOC_FAILED_HOOK 1 #define configUSE_APPLICATION_TASK_TAG 0 #define configUSE_COUNTING_SEMAPHORES 1 #define configGENERATE_RUN_TIME_STATS 0 diff --git a/source/test/freertos/src/FreeRTOSCommonHooks.c b/source/test/freertos/src/FreeRTOSCommonHooks.c new file mode 100644 index 0000000..11cd74c --- /dev/null +++ b/source/test/freertos/src/FreeRTOSCommonHooks.c @@ -0,0 +1,94 @@ +/* + * @brief Common FreeRTOS functions shared among platforms + * + * @note + * Copyright(C) NXP Semiconductors, 2012 + * All rights reserved. + * + * @par + * Software that is described herein is for illustrative purposes only + * which provides customers with programming information regarding the + * LPC products. This software is supplied "AS IS" without any warranties of + * any kind, and NXP Semiconductors and its licensor disclaim any and + * all warranties, express or implied, including all implied warranties of + * merchantability, fitness for a particular purpose and non-infringement of + * intellectual property rights. NXP Semiconductors assumes no responsibility + * or liability for the use of the software, conveys no license or rights under any + * patent, copyright, mask work right, or any other intellectual property rights in + * or to any products. NXP Semiconductors reserves the right to make changes + * in the software without notification. NXP Semiconductors also makes no + * representation or warranty that such application will be suitable for the + * specified use without further testing or modification. + * + * @par + * Permission to use, copy, modify, and distribute this software and its + * documentation is hereby granted, under NXP Semiconductors' and its + * licensor's relevant copyrights in the software, without fee, provided that it + * is used in conjunction with NXP Semiconductors microcontrollers. This + * copyright, permission, and disclaimer notice must appear in all copies of + * this code. + */ + +#include "FreeRTOS.h" +#include "task.h" +#include "portable.h" + +#include "chip.h" + +/***************************************************************************** + * Private types/enumerations/variables + ****************************************************************************/ + +/***************************************************************************** + * Public types/enumerations/variables + ****************************************************************************/ + +/***************************************************************************** + * Private functions + ****************************************************************************/ + +/***************************************************************************** + * Public functions + ****************************************************************************/ + +/* Delay for the specified number of milliSeconds */ +void FreeRTOSDelay(uint32_t ms) +{ + portTickType xDelayTime; + + xDelayTime = xTaskGetTickCount(); + vTaskDelayUntil(&xDelayTime, ms); +} + +/* FreeRTOS malloc fail hook */ +void vApplicationMallocFailedHook(void) +{ + DEBUGSTR("DIE:ERROR:FreeRTOS: Malloc Failure!\r\n"); + taskDISABLE_INTERRUPTS(); + for (;; ) {} +} + +/* FreeRTOS application idle hook */ +void vApplicationIdleHook(void) +{ + /* Best to sleep here until next systick */ + __WFI(); +} + +/* FreeRTOS stack overflow hook */ +void vApplicationStackOverflowHook(TaskHandle_t pxTask, char *pcTaskName) +{ + (void) pxTask; + (void) pcTaskName; + + DEBUGOUT("DIE:ERROR:FreeRTOS: Stack overflow in task %s\r\n", pcTaskName); + /* Run time stack overflow checking is performed if + configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook + function is called if a stack overflow is detected. */ + taskDISABLE_INTERRUPTS(); + for (;; ) {} +} + +/* FreeRTOS application tick hook */ +void vApplicationTickHook(void) +{}