Go to the documentation of this file.
29 #ifndef _OS_PORT_CHIBIOS_H
30 #define _OS_PORT_CHIBIOS_H
36 #ifndef OS_STATIC_TASK_SUPPORT
37 #define OS_STATIC_TASK_SUPPORT DISABLED
38 #elif (OS_STATIC_TASK_SUPPORT != ENABLED && OS_STATIC_TASK_SUPPORT != DISABLED)
39 #error OS_STATIC_TASK_SUPPORT parameter is not valid
43 #define OS_INVALID_TASK_ID NULL
45 #define OS_SELF_TASK_ID NULL
48 #ifndef OS_TASK_PRIORITY_NORMAL
49 #define OS_TASK_PRIORITY_NORMAL NORMALPRIO
53 #ifndef OS_TASK_PRIORITY_HIGH
54 #define OS_TASK_PRIORITY_HIGH HIGHPRIO
58 #ifndef OS_MS_TO_SYSTICKS
59 #define OS_MS_TO_SYSTICKS(n) (n)
63 #ifndef OS_SYSTICKS_TO_MS
64 #define OS_SYSTICKS_TO_MS(n) (n)
68 #ifndef osGetSystemTime64
69 #define osGetSystemTime64() osGetSystemTime()
77 #define osEnterIsr() CH_IRQ_PROLOGUE(); chSysLockFromISR()
79 #define osExitIsr(flag) chSysUnlockFromISR(); CH_IRQ_EPILOGUE()
82 #if (CH_KERNEL_MAJOR < 3)
83 #define thread_t Thread
84 #define semaphore_t Semaphore
85 #define binary_semaphore_t BinarySemaphore
87 #define chThdTerminatedX chThdTerminated
88 #define chSemObjectInit chSemInit
89 #define chBSemObjectInit chBSemInit
90 #define chMtxObjectInit chMtxInit
91 #define chVTGetSystemTime chTimeNow
92 #define chSysLockFromISR chSysLockFromIsr
93 #define chSysUnlockFromISR chSysUnlockFromIsr
94 #define THD_WORKING_AREA_SIZE THD_WA_SIZE
systime_t osGetSystemTime(void)
Retrieve system time.
OsTaskId osCreateTask(const char_t *name, OsTaskCode taskCode, void *param, size_t stackSize, int_t priority)
Create a task.
void osReleaseSemaphore(OsSemaphore *semaphore)
Release the specified semaphore object.
bool_t osCreateMutex(OsMutex *mutex)
Create a mutex object.
bool_t osWaitForSemaphore(OsSemaphore *semaphore, systime_t timeout)
Wait for the specified semaphore to be available.
void osDeleteSemaphore(OsSemaphore *semaphore)
Delete a semaphore object.
void osFreeMem(void *p)
Release a previously allocated memory block.
void osSwitchTask(void)
Yield control to the next task.
void osStartKernel(void)
Start kernel.
void osAcquireMutex(OsMutex *mutex)
Acquire ownership of the specified mutex object.
#define binary_semaphore_t
mutex_t OsMutex
Mutex object.
bool_t osCreateSemaphore(OsSemaphore *semaphore, uint_t count)
Create a semaphore object.
void osResetEvent(OsEvent *event)
Set the specified event object to the nonsignaled state.
binary_semaphore_t OsEvent
Event object.
OsTaskId osCreateStaticTask(const char_t *name, OsTaskCode taskCode, void *param, OsTaskTcb *tcb, OsStackType *stack, size_t stackSize, int_t priority)
Create a task with statically allocated memory.
uint32_t OsStackType
Stack data type.
void osResumeAllTasks(void)
Resume scheduler activity.
void osDeleteEvent(OsEvent *event)
Delete an event object.
void osDeleteTask(OsTaskId taskId)
Delete a task.
bool_t osWaitForEvent(OsEvent *event, systime_t timeout)
Wait until the specified event is in the signaled state.
bool_t osSetEventFromIsr(OsEvent *event)
Set an event object to the signaled state from an interrupt service routine.
void osDeleteMutex(OsMutex *mutex)
Delete a mutex object.
uint32_t systime_t
System time.
void osSuspendAllTasks(void)
Suspend scheduler activity.
void * osAllocMem(size_t size)
Allocate a memory block.
void osReleaseMutex(OsMutex *mutex)
Release ownership of the specified mutex object.
void osDelayTask(systime_t delay)
Delay routine.
void(* OsTaskCode)(void *param)
Task routine.
bool_t osCreateEvent(OsEvent *event)
Create an event object.
void osInitKernel(void)
Kernel initialization.
thread_t * OsTaskId
Task identifier.
OS_TASK OsTaskTcb
Task control block.
void osSetEvent(OsEvent *event)
Set the specified event object to the signaled state.
semaphore_t OsSemaphore
Semaphore object.