kopia lustrzana https://github.com/mobilinkd/NucleoTNC
Use tickless idle, and add stack overflow detection.
rodzic
9ecd997cad
commit
660ebffb73
|
@ -107,7 +107,9 @@
|
|||
#define configUSE_16_BIT_TICKS 0
|
||||
#define configUSE_MUTEXES 1
|
||||
#define configQUEUE_REGISTRY_SIZE 8
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
|
||||
#define configUSE_TICKLESS_IDLE 1
|
||||
|
||||
/* Co-routine definitions. */
|
||||
#define configUSE_CO_ROUTINES 0
|
||||
|
@ -174,4 +176,17 @@ standard names. */
|
|||
/* Section where parameter definitions can be added (for instance, to override default ones in FreeRTOS.h) */
|
||||
/* USER CODE END Defines */
|
||||
|
||||
#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__)
|
||||
void PreSleepProcessing(uint32_t *ulExpectedIdleTime);
|
||||
void PostSleepProcessing(uint32_t *ulExpectedIdleTime);
|
||||
#endif /* defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) */
|
||||
|
||||
/* The configPRE_SLEEP_PROCESSING() and configPOST_SLEEP_PROCESSING() macros
|
||||
allow the application writer to add additional code before and after the MCU is
|
||||
placed into the low power state respectively. */
|
||||
#if configUSE_TICKLESS_IDLE == 1
|
||||
#define configPRE_SLEEP_PROCESSING PreSleepProcessing
|
||||
#define configPOST_SLEEP_PROCESSING PostSleepProcessing
|
||||
#endif /* configUSE_TICKLESS_IDLE == 1 */
|
||||
|
||||
#endif /* FREERTOS_CONFIG_H */
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
#include "task.h"
|
||||
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include "main.h"
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
|
@ -66,6 +67,10 @@
|
|||
|
||||
/* USER CODE END FunctionPrototypes */
|
||||
|
||||
/* Pre/Post sleep processing prototypes */
|
||||
void PreSleepProcessing(uint32_t *ulExpectedIdleTime);
|
||||
void PostSleepProcessing(uint32_t *ulExpectedIdleTime);
|
||||
|
||||
/* GetIdleTaskMemory prototype (linked to static allocation support) */
|
||||
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
|
||||
|
||||
|
@ -73,6 +78,29 @@ void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackTy
|
|||
void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize );
|
||||
|
||||
/* Hook prototypes */
|
||||
void vApplicationStackOverflowHook(xTaskHandle xTask, signed char *pcTaskName);
|
||||
|
||||
/* USER CODE BEGIN 4 */
|
||||
__weak void vApplicationStackOverflowHook(xTaskHandle xTask, signed char *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. */
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE END 4 */
|
||||
|
||||
/* USER CODE BEGIN PREPOSTSLEEP */
|
||||
__weak void PreSleepProcessing(uint32_t *ulExpectedIdleTime)
|
||||
{
|
||||
/* place for user code */
|
||||
}
|
||||
|
||||
__weak void PostSleepProcessing(uint32_t *ulExpectedIdleTime)
|
||||
{
|
||||
/* place for user code */
|
||||
}
|
||||
/* USER CODE END PREPOSTSLEEP */
|
||||
|
||||
/* USER CODE BEGIN GET_IDLE_TASK_MEMORY */
|
||||
static StaticTask_t xIdleTaskTCBBuffer;
|
||||
|
|
Ładowanie…
Reference in New Issue