Add some tick interrupt overflow protection to the timers module. This is not tested yet and still a work in progress.

This commit is contained in:
Richard Barry 2011-02-10 19:09:35 +00:00
parent 671ca2724e
commit 7ee534e4c2
5 changed files with 124 additions and 27 deletions

View file

@ -1191,6 +1191,21 @@ void vTaskIncrementTick( void ) PRIVILEGED_FUNCTION;
*/
void vTaskPlaceOnEventList( const xList * const pxEventList, portTickType xTicksToWait ) PRIVILEGED_FUNCTION;
/*
* THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN
* INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.
*
* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED.
*
* This function performs nearly the same function as vTaskPlaceOnEventList().
* The difference being that this function does not permit tasks to block
* indefinitely, whereas vTaskPlaceOnEventList() does.
*
* @return pdTRUE if the task being removed has a higher priority than the task
* making the call, otherwise pdFALSE.
*/
void vTaskPlaceOnEventListRestricted( const xList * const pxEventList, portTickType xTicksToWait ) PRIVILEGED_FUNCTION;
/*
* THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN
* INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.

View file

@ -67,10 +67,11 @@ extern "C" {
#endif
/* IDs for commands that can be sent/received on the timer queue. */
#define tmrCOMMAND_START 0
#define tmrCOMMAND_STOP 1
#define tmrCOMMAND_CHANGE_PERIOD 2
#define tmrCOMMAND_DELETE 3
#define trmCOMMAND_PROCESS_TIMER_OVERFLOW 0 /* For use by the kernel only! */
#define tmrCOMMAND_START 1
#define tmrCOMMAND_STOP 2
#define tmrCOMMAND_CHANGE_PERIOD 3
#define tmrCOMMAND_DELETE 4
/*-----------------------------------------------------------
* MACROS AND DEFINITIONS