doc: renamed project
This commit is contained in:
committed by
Sylvan Arnold
parent
244e516bd8
commit
32618389d1
166
pico-sensor/src/FreeRTOShooks.c
Normal file
166
pico-sensor/src/FreeRTOShooks.c
Normal file
@@ -0,0 +1,166 @@
|
||||
/*
|
||||
* FreeRTOShooks.c
|
||||
*
|
||||
* Copyright (c) 2019, 2020, Erich Styger
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*
|
||||
* This is a default FreeRTOS hooks file you can use in your application.
|
||||
*/
|
||||
|
||||
#include "McuLibconfig.h"
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
#include "McuTimeDate.h"
|
||||
|
||||
/*
|
||||
** ===================================================================
|
||||
** Event : McuRTOS_vApplicationStackOverflowHook (module Events)
|
||||
**
|
||||
** Component : McuRTOS [McuRTOS]
|
||||
** Description :
|
||||
** if enabled, this hook will be called in case of a stack
|
||||
** overflow.
|
||||
** Parameters :
|
||||
** NAME - DESCRIPTION
|
||||
** pxTask - Task handle
|
||||
** * pcTaskName - Pointer to task name
|
||||
** Returns : Nothing
|
||||
** ===================================================================
|
||||
*/
|
||||
void McuRTOS_vApplicationStackOverflowHook(TaskHandle_t pxTask, char *pcTaskName)
|
||||
{
|
||||
/* This will get called if a stack overflow is detected during the context
|
||||
switch. Set configCHECK_FOR_STACK_OVERFLOWS to 2 to also check for stack
|
||||
problems within nested interrupts, but only do this for debug purposes as
|
||||
it will increase the context switch time. */
|
||||
(void)pxTask;
|
||||
(void)pcTaskName;
|
||||
taskDISABLE_INTERRUPTS();
|
||||
/* Write your code here ... */
|
||||
#if McuLib_CONFIG_CPU_IS_ARM_CORTEX_M
|
||||
__asm volatile("bkpt #0");
|
||||
#elif McuLib_CONFIG_CPU_IS_RISC_V
|
||||
__asm volatile( "ebreak" );
|
||||
#endif
|
||||
for(;;) {}
|
||||
}
|
||||
|
||||
/*
|
||||
** ===================================================================
|
||||
** Event : McuRTOS_vApplicationMallocFailedHook (module Events)
|
||||
**
|
||||
** Component : McuRTOS [McuRTOS]
|
||||
** Description :
|
||||
** If enabled, the McuRTOS will call this hook in case memory
|
||||
** allocation failed.
|
||||
** Parameters : None
|
||||
** Returns : Nothing
|
||||
** ===================================================================
|
||||
*/
|
||||
void McuRTOS_vApplicationMallocFailedHook(void)
|
||||
{
|
||||
/* Called if a call to pvPortMalloc() fails because there is insufficient
|
||||
free memory available in the McuRTOS heap. pvPortMalloc() is called
|
||||
internally by McuRTOS API functions that create tasks, queues, software
|
||||
timers, and semaphores. The size of the McuRTOS heap is set by the
|
||||
configTOTAL_HEAP_SIZE configuration constant in FreeRTOSConfig.h. */
|
||||
taskDISABLE_INTERRUPTS();
|
||||
/* Write your code here ... */
|
||||
#if McuLib_CONFIG_CPU_IS_ARM_CORTEX_M
|
||||
__asm volatile("bkpt #0");
|
||||
#elif McuLib_CONFIG_CPU_IS_RISC_V
|
||||
__asm volatile( "ebreak" );
|
||||
#endif
|
||||
for(;;) {}
|
||||
}
|
||||
|
||||
/*
|
||||
** ===================================================================
|
||||
** Event : McuRTOS_vApplicationTickHook (module Events)
|
||||
**
|
||||
** Component : McuRTOS [FreeRTOS]
|
||||
** Description :
|
||||
** If enabled, this hook will be called by the RTOS for every
|
||||
** tick increment.
|
||||
** Parameters : None
|
||||
** Returns : Nothing
|
||||
** ===================================================================
|
||||
*/
|
||||
void McuRTOS_vApplicationTickHook(void)
|
||||
{
|
||||
McuTimeDate_AddTick();
|
||||
}
|
||||
|
||||
/*
|
||||
** ===================================================================
|
||||
** Event : McuRTOS_vApplicationIdleHook (module Events)
|
||||
**
|
||||
** Component : McuRTOS [FreeRTOS]
|
||||
** Description :
|
||||
** If enabled, this hook will be called when the RTOS is idle.
|
||||
** This might be a good place to go into low power mode.
|
||||
** Parameters : None
|
||||
** Returns : Nothing
|
||||
** ===================================================================
|
||||
*/
|
||||
void McuRTOS_vApplicationIdleHook(void)
|
||||
{
|
||||
/* Called whenever the RTOS is idle (from the IDLE task).
|
||||
Here would be a good place to put the CPU into low power mode. */
|
||||
__asm volatile("wfi");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** ===================================================================
|
||||
** Description :
|
||||
** Used in tickless idle mode only, but required in this mode.
|
||||
** Hook for the application to enter low power mode.
|
||||
** Parameters :
|
||||
** NAME - DESCRIPTION
|
||||
** expectedIdleTicks - expected idle
|
||||
** time, in ticks
|
||||
** Returns : Nothing
|
||||
** ===================================================================
|
||||
*/
|
||||
void McuRTOS_vOnPreSleepProcessing(TickType_t expectedIdleTicks)
|
||||
{
|
||||
(void)expectedIdleTicks; /* not used */
|
||||
#if McuLib_CONFIG_CPU_IS_ARM_CORTEX_M
|
||||
/* example for ARM Cortex-M (enable SetOperationMode() in CPU component): */
|
||||
/* Cpu_SetOperationMode(DOM_WAIT, NULL, NULL); */ /* Processor Expert way to get into WAIT mode */
|
||||
/* or to wait for interrupt: */
|
||||
__asm volatile("dsb");
|
||||
__asm volatile("wfi");
|
||||
__asm volatile("isb");
|
||||
#elif McuLib_CONFIG_CPU_IS_RISC_V
|
||||
#warning "NYI"
|
||||
#elif 0
|
||||
/* example for S08/S12/ColdFire V1 (enable SetWaitMode() in CPU): */
|
||||
Cpu_SetWaitMode();
|
||||
#elif 0
|
||||
/* example for ColdFire V2: */
|
||||
__asm("stop #0x2000"); */
|
||||
#else
|
||||
#error "you *must* enter low power mode (wait for interrupt) here!"
|
||||
#endif
|
||||
/* Write your code here ... */
|
||||
}
|
||||
|
||||
/*
|
||||
** ===================================================================
|
||||
** Description :
|
||||
** Event called after the CPU woke up after low power mode.
|
||||
** This event is optional.
|
||||
** Parameters :
|
||||
** NAME - DESCRIPTION
|
||||
** expectedIdleTicks - expected idle
|
||||
** time, in ticks
|
||||
** Returns : Nothing
|
||||
** ===================================================================
|
||||
*/
|
||||
void McuRTOS_vOnPostSleepProcessing(TickType_t expectedIdleTicks)
|
||||
{
|
||||
(void)expectedIdleTicks; /* not used (yet?) */
|
||||
/* Write your code here ... */
|
||||
}
|
||||
Reference in New Issue
Block a user