mirror of
https://github.com/kelvinlawson/atomthreads.git
synced 2026-01-11 18:33:16 +01:00
Add Doxygen header for timer module
This commit is contained in:
@@ -27,6 +27,46 @@
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* \file
|
||||
* Timer and system tick library.
|
||||
*
|
||||
*
|
||||
* This module implements kernel system tick / clock functionality and timer
|
||||
* functionality for kernel and application code.
|
||||
*
|
||||
* \par Timer callbacks
|
||||
* Application and kernel code uses this module to request callbacks at a
|
||||
* specific number of system ticks in the future. atomTimerRegister() can be
|
||||
* called with a structure filled out requesting callbacks in a specific
|
||||
* number of ticks. When the timer expires the requested callback function is
|
||||
* called.
|
||||
*
|
||||
* \par Thread delays
|
||||
* Application threads can use atomTimerDelay() to request that the thread
|
||||
* delay for the specified number of system ticks. The thread will be put in
|
||||
* the timer list and taken off the ready queue. When the timer expires the
|
||||
* thread will be made ready-to-run again. This internally uses the same
|
||||
* atomTimerRegister() function that is used for registering all timers.
|
||||
*
|
||||
* \par System tick / Clock
|
||||
* This module also implements the system tick. At a predefined interval
|
||||
* (SYSTEM_TICKS_PER_SEC) architecture ports arrange for atomTimerTick() to be
|
||||
* called. The tick increments the system tick count, which can be queried by
|
||||
* application code using atomTimeGet(). On this tick, the registered timer
|
||||
* list is checked for any timers which have expired. Those which have expired
|
||||
* have their callback functions called. It is also on this system tick that
|
||||
* round-robin rescheduling time-slices occur. On exit from the tick interrupt
|
||||
* handler the kernel checks whether there are two or more threads
|
||||
* ready-to-run at the same priority, and if so uses round-robin to schedule
|
||||
* in the next thread. This is in contrast to other (non-timer-tick)
|
||||
* interrupts which do not allow for round-robin rescheduling to occur, as
|
||||
* they should only occur on a new timer tick.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include "atom.h"
|
||||
#include "atomuser.h"
|
||||
|
||||
Reference in New Issue
Block a user