pico]OS
1.0.4
|
Functions | |
POSEXTERN void POSCALL | posTaskYield (void) |
POSEXTERN void POSCALL | posTaskSleep (UINT_t ticks) |
POSEXTERN POSTASK_t POSCALL | posTaskCreate (POSTASKFUNC_t funcptr, void *funcarg, VAR_t priority, void *stackstart) |
POSEXTERN void POSCALL | posInit (POSTASKFUNC_t firstfunc, void *funcarg, VAR_t priority, void *stackFirstTask, void *stackIdleTask) |
POSEXTERN POSTASK_t POSCALL | posTaskCreate (POSTASKFUNC_t funcptr, void *funcarg, VAR_t priority, UINT_t stacksize) |
POSEXTERN void POSCALL | posInit (POSTASKFUNC_t firstfunc, void *funcarg, VAR_t priority, UINT_t taskStackSize, UINT_t idleStackSize) |
POSEXTERN POSTASK_t POSCALL | posTaskCreate (POSTASKFUNC_t funcptr, void *funcarg, VAR_t priority) |
POSEXTERN void POSCALL | posInit (POSTASKFUNC_t firstfunc, void *funcarg, VAR_t priority) |
POSEXTERN void POSCALL | posTaskExit (void) |
POSEXTERN POSTASK_t POSCALL | posTaskGetCurrent (void) |
POSEXTERN VAR_t POSCALL | posTaskUnused (POSTASK_t taskhandle) |
POSEXTERN VAR_t POSCALL | posTaskSetPriority (POSTASK_t taskhandle, VAR_t priority) |
POSEXTERN VAR_t POSCALL | posTaskGetPriority (POSTASK_t taskhandle) |
POSEXTERN void POSCALL | posTaskSchedLock (void) |
POSEXTERN void POSCALL | posTaskSchedUnlock (void) |
POSEXTERN void *POSCALL | posTaskGetUserspace (void) |
POSEXTERN POSIDLEFUNC_t POSCALL | posInstallIdleTaskHook (POSIDLEFUNC_t idlefunc) |
POSEXTERN void POSCALL posInit | ( | POSTASKFUNC_t | firstfunc, |
void * | funcarg, | ||
VAR_t | priority, | ||
void * | stackFirstTask, | ||
void * | stackIdleTask | ||
) |
Operating System Initialization. This function initializes the operating system and starts the first tasks: The idle task and the first user task.
firstfunc | pointer to the first task function that will run in the multitasking environment. |
funcarg | optional argument passed to the first task. |
priority | task priority. Must be in the range 0 .. POSCFG_MAX_PRIO_LEVEL - 1. The higher the number, the higher the priority. |
stackFirstTask | pointer to the stack memory for the first task. |
stackIdleTask | pointer to the stack memory for the idle task. |
POSEXTERN void POSCALL posInit | ( | POSTASKFUNC_t | firstfunc, |
void * | funcarg, | ||
VAR_t | priority, | ||
UINT_t | taskStackSize, | ||
UINT_t | idleStackSize | ||
) |
Operating System Initialization. This function initializes the operating system and starts the first tasks: The idle task and the first user task.
firstfunc | pointer to the first task function that will run in the multitasking environment. |
funcarg | optional argument passed to the first task. |
priority | task priority. Must be in the range 0 .. POSCFG_MAX_PRIO_LEVEL - 1. The higher the number, the higher the priority. |
taskStackSize | size of the stack memory for the first task. |
idleStackSize | size of the stack memory for the idle task. |
POSEXTERN void POSCALL posInit | ( | POSTASKFUNC_t | firstfunc, |
void * | funcarg, | ||
VAR_t | priority | ||
) |
Operating System Initialization. This function initializes the operating system and starts the first tasks: The idle task and the first user task.
firstfunc | pointer to the first task function that will run in the multitasking environment. |
funcarg | optional argument passed to the first task. |
priority | task priority. Must be in the range 0 .. POSCFG_MAX_PRIO_LEVEL - 1. The higher the number, the higher the priority. |
POSEXTERN POSIDLEFUNC_t POSCALL posInstallIdleTaskHook | ( | POSIDLEFUNC_t | idlefunc | ) |
Task function. Install or remove an optional idle task hook function. The hook function is called every time the system is idle. It is possible to use this hook to implement your own idle task; in this case the function does not need to return to the system. You may insert a call to posTaskYield into your idle task loop to get a better task performance.
idlefunc | function pointer to the new idle task handler. If this parameter is set to NULL, the idle task function hook is removed again. |
POSEXTERN POSTASK_t POSCALL posTaskCreate | ( | POSTASKFUNC_t | funcptr, |
void * | funcarg, | ||
VAR_t | priority, | ||
void * | stackstart | ||
) |
Task function. Creates a new task. The stack memory is managed by the user.
funcptr | pointer to the function that shall be executed by the new task. |
funcarg | optional argument passed to function. |
priority | task priority. Must be in the range 0 .. POSCFG_MAX_PRIO_LEVEL - 1. The higher the number, the higher the priority. |
stackstart | pointer to the stack memory for the new task. |
POSEXTERN POSTASK_t POSCALL posTaskCreate | ( | POSTASKFUNC_t | funcptr, |
void * | funcarg, | ||
VAR_t | priority, | ||
UINT_t | stacksize | ||
) |
Task function. Creates a new task. The stack memory is managed by the achitecture specific portion of the operating system, the size can be set by the user.
funcptr | pointer to the function that shall be executed by the new task. |
funcarg | optional argument passed to function. |
priority | task priority. Must be in the range 0 .. POSCFG_MAX_PRIO_LEVEL - 1. The higher the number, the higher the priority. |
stacksize | size of the stack memory. This parameter is passed to the architecture specific portion of the operating system. |
POSEXTERN POSTASK_t POSCALL posTaskCreate | ( | POSTASKFUNC_t | funcptr, |
void * | funcarg, | ||
VAR_t | priority | ||
) |
Task function. Creates a new task. The stack memory is fixed, its size is set by the architecture specific portion of the operating system.
funcptr | pointer to the function that shall be executed by the new task. |
funcarg | optional argument passed to function. |
priority | task priority. Must be in the range 0.. POSCFG_MAX_PRIO_LEVEL - 1. The higher the number, the higher the priority. |
POSEXTERN void POSCALL posTaskExit | ( | void | ) |
Task function. Terminate execution of a task.
POSEXTERN POSTASK_t POSCALL posTaskGetCurrent | ( | void | ) |
Task function. Get the handle to the currently running task.
Task function. Get the priority of a task.
taskhandle | handle to the task. |
POSEXTERN void* POSCALL posTaskGetUserspace | ( | void | ) |
Task function. Returns a pointer to the user memory in the current task control block.
POSEXTERN void POSCALL posTaskSchedLock | ( | void | ) |
Task function. Locks the scheduler. When this function is called, no task switches will be done any more, until the counterpart function posTaskSchedUnlock is called. This function is usefull for short critical sections that require exclusive access to variables. Note that interrupts still remain enabled.
POSEXTERN void POSCALL posTaskSchedUnlock | ( | void | ) |
Task function. Unlocks the scheduler. This function is called to leave a critical section. If a context switch request is pending, the context switch will happen directly after calling this function.
Task function. Change the priority of a task. Note that in a non-roundrobin scheduling environment every priority level can only exist once.
taskhandle | handle to the task. |
priority | new priority. Must be in the range 0 .. POSCFG_MAX_PRIO_LEVEL - 1. The higher the number, the higher the priority. |
POSEXTERN void POSCALL posTaskSleep | ( | UINT_t | ticks | ) |
Task function. Delay task execution for a couple of timer ticks.
Task function. Tests if a task is yet in use by the operating system. This function can be used to test if a task has been fully terminated (and the stack memory is no more in use).
taskhandle | handle to the task. |
POSEXTERN void POSCALL posTaskYield | ( | void | ) |
Task function. This function can be called to give off processing time so other tasks ready to run will be scheduled (= cooparative multitasking).