RTOS abstraction layer (CMX-RTX) More...
#include "cxfuncs.h"
Go to the source code of this file.
Data Structures | |
struct | OsTaskParameters |
Task parameters. More... | |
struct | OsEvent |
Event object. More... | |
struct | OsSemaphore |
Semaphore object. More... | |
struct | OsMutex |
Mutex object. More... | |
Macros | |
#define | OS_MAX_SEMAPHORES 64 |
#define | OS_INVALID_SEMAPHORE_ID 255 |
#define | OS_INVALID_TASK_ID 0 |
#define | OS_SELF_TASK_ID 0 |
#define | OS_TASK_PRIORITY_NORMAL 3 |
#define | OS_TASK_PRIORITY_HIGH 2 |
#define | OS_MS_TO_SYSTICKS(n) (n) |
#define | OS_SYSTICKS_TO_MS(n) (n) |
#define | osGetSystemTime64() osGetSystemTime() |
#define | osEnterTask() |
#define | osExitTask() |
#define | osEnterIsr() |
#define | osExitIsr(flag) |
Typedefs | |
typedef uint32_t | systime_t |
System time. More... | |
typedef uint8_t | OsTaskId |
Task identifier. More... | |
typedef void(* | OsTaskCode) (void *arg) |
Task routine. More... | |
Functions | |
void | osInitKernel (void) |
Kernel initialization. More... | |
void | osStartKernel (void) |
Start kernel. More... | |
OsTaskId | osCreateTask (const char_t *name, OsTaskCode taskCode, void *arg, const OsTaskParameters *params) |
Create a task. More... | |
void | osDeleteTask (OsTaskId taskId) |
Delete a task. More... | |
void | osDelayTask (systime_t delay) |
Delay routine. More... | |
void | osSwitchTask (void) |
Yield control to the next task. More... | |
void | osSuspendAllTasks (void) |
Suspend scheduler activity. More... | |
void | osResumeAllTasks (void) |
Resume scheduler activity. More... | |
bool_t | osCreateEvent (OsEvent *event) |
Create an event object. More... | |
void | osDeleteEvent (OsEvent *event) |
Delete an event object. More... | |
void | osSetEvent (OsEvent *event) |
Set the specified event object to the signaled state. More... | |
void | osResetEvent (OsEvent *event) |
Set the specified event object to the nonsignaled state. More... | |
bool_t | osWaitForEvent (OsEvent *event, systime_t timeout) |
Wait until the specified event is in the signaled state. More... | |
bool_t | osSetEventFromIsr (OsEvent *event) |
Set an event object to the signaled state from an interrupt service routine. More... | |
bool_t | osCreateSemaphore (OsSemaphore *semaphore, uint_t count) |
Create a semaphore object. More... | |
void | osDeleteSemaphore (OsSemaphore *semaphore) |
Delete a semaphore object. More... | |
bool_t | osWaitForSemaphore (OsSemaphore *semaphore, systime_t timeout) |
Wait for the specified semaphore to be available. More... | |
void | osReleaseSemaphore (OsSemaphore *semaphore) |
Release the specified semaphore object. More... | |
bool_t | osCreateMutex (OsMutex *mutex) |
Create a mutex object. More... | |
void | osDeleteMutex (OsMutex *mutex) |
Delete a mutex object. More... | |
void | osAcquireMutex (OsMutex *mutex) |
Acquire ownership of the specified mutex object. More... | |
void | osReleaseMutex (OsMutex *mutex) |
Release ownership of the specified mutex object. More... | |
systime_t | osGetSystemTime (void) |
Retrieve system time. More... | |
void * | osAllocMem (size_t size) |
Allocate a memory block. More... | |
void | osFreeMem (void *p) |
Release a previously allocated memory block. More... | |
Variables | |
const OsTaskParameters | OS_TASK_DEFAULT_PARAMS |
Detailed Description
RTOS abstraction layer (CMX-RTX)
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- Version
- 2.4.4
Definition in file os_port_cmx_rtx.h.
Macro Definition Documentation
◆ OS_INVALID_SEMAPHORE_ID
#define OS_INVALID_SEMAPHORE_ID 255 |
Definition at line 43 of file os_port_cmx_rtx.h.
◆ OS_INVALID_TASK_ID
#define OS_INVALID_TASK_ID 0 |
Definition at line 45 of file os_port_cmx_rtx.h.
◆ OS_MAX_SEMAPHORES
#define OS_MAX_SEMAPHORES 64 |
Definition at line 37 of file os_port_cmx_rtx.h.
◆ OS_MS_TO_SYSTICKS
Definition at line 61 of file os_port_cmx_rtx.h.
◆ OS_SELF_TASK_ID
#define OS_SELF_TASK_ID 0 |
Definition at line 47 of file os_port_cmx_rtx.h.
◆ OS_SYSTICKS_TO_MS
Definition at line 66 of file os_port_cmx_rtx.h.
◆ OS_TASK_PRIORITY_HIGH
#define OS_TASK_PRIORITY_HIGH 2 |
Definition at line 56 of file os_port_cmx_rtx.h.
◆ OS_TASK_PRIORITY_NORMAL
#define OS_TASK_PRIORITY_NORMAL 3 |
Definition at line 51 of file os_port_cmx_rtx.h.
◆ osEnterIsr
#define osEnterIsr | ( | ) |
Definition at line 79 of file os_port_cmx_rtx.h.
◆ osEnterTask
#define osEnterTask | ( | ) |
Definition at line 75 of file os_port_cmx_rtx.h.
◆ osExitIsr
#define osExitIsr | ( | flag | ) |
Definition at line 81 of file os_port_cmx_rtx.h.
◆ osExitTask
#define osExitTask | ( | ) |
Definition at line 77 of file os_port_cmx_rtx.h.
◆ osGetSystemTime64
#define osGetSystemTime64 | ( | void | ) | osGetSystemTime() |
Definition at line 71 of file os_port_cmx_rtx.h.
Typedef Documentation
◆ OsTaskCode
typedef void(* OsTaskCode) (void *arg) |
Task routine.
Definition at line 150 of file os_port_cmx_rtx.h.
◆ OsTaskId
typedef uint8_t OsTaskId |
Task identifier.
Definition at line 100 of file os_port_cmx_rtx.h.
◆ systime_t
typedef uint32_t systime_t |
System time.
Definition at line 93 of file os_port_cmx_rtx.h.
Function Documentation
◆ osAcquireMutex()
void osAcquireMutex | ( | OsMutex * | mutex | ) |
Acquire ownership of the specified mutex object.
- Parameters
-
[in] mutex Pointer to the mutex object
Definition at line 396 of file os_port_chibios.c.
◆ osAllocMem()
void* osAllocMem | ( | size_t | size | ) |
Allocate a memory block.
- Parameters
-
[in] size Bytes to allocate
- Returns
- A pointer to the allocated memory block or NULL if there is insufficient memory available
Definition at line 443 of file os_port_chibios.c.
◆ osCreateEvent()
Create an event object.
- Parameters
-
[in] event Pointer to the event object
- Returns
- The function returns TRUE if the event object was successfully created. Otherwise, FALSE is returned
Definition at line 176 of file os_port_chibios.c.
◆ osCreateMutex()
Create a mutex object.
- Parameters
-
[in] mutex Pointer to the mutex object
- Returns
- The function returns TRUE if the mutex was successfully created. Otherwise, FALSE is returned
Definition at line 370 of file os_port_chibios.c.
◆ osCreateSemaphore()
bool_t osCreateSemaphore | ( | OsSemaphore * | semaphore, |
uint_t | count | ||
) |
Create a semaphore object.
- Parameters
-
[in] semaphore Pointer to the semaphore object [in] count The maximum count for the semaphore object. This value must be greater than zero
- Returns
- The function returns TRUE if the semaphore was successfully created. Otherwise, FALSE is returned
Definition at line 289 of file os_port_chibios.c.
◆ osCreateTask()
OsTaskId osCreateTask | ( | const char_t * | name, |
OsTaskCode | taskCode, | ||
void * | arg, | ||
const OsTaskParameters * | params | ||
) |
Create a task.
- Parameters
-
[in] name NULL-terminated string identifying the task [in] taskCode Pointer to the task entry function [in] arg Argument passed to the task function [in] params Task parameters
- Returns
- Task identifier referencing the newly created task
Definition at line 80 of file os_port_chibios.c.
◆ osDelayTask()
void osDelayTask | ( | systime_t | delay | ) |
Delay routine.
- Parameters
-
[in] delay Amount of time for which the calling task should block
Definition at line 129 of file os_port_chibios.c.
◆ osDeleteEvent()
void osDeleteEvent | ( | OsEvent * | event | ) |
Delete an event object.
- Parameters
-
[in] event Pointer to the event object
Definition at line 191 of file os_port_chibios.c.
◆ osDeleteMutex()
void osDeleteMutex | ( | OsMutex * | mutex | ) |
Delete a mutex object.
- Parameters
-
[in] mutex Pointer to the mutex object
Definition at line 385 of file os_port_chibios.c.
◆ osDeleteSemaphore()
void osDeleteSemaphore | ( | OsSemaphore * | semaphore | ) |
Delete a semaphore object.
- Parameters
-
[in] semaphore Pointer to the semaphore object
Definition at line 304 of file os_port_chibios.c.
◆ osDeleteTask()
void osDeleteTask | ( | OsTaskId | taskId | ) |
Delete a task.
- Parameters
-
[in] taskId Task identifier referencing the task to be deleted
Definition at line 110 of file os_port_chibios.c.
◆ osFreeMem()
void osFreeMem | ( | void * | p | ) |
Release a previously allocated memory block.
- Parameters
-
[in] p Previously allocated memory block to be freed
Definition at line 464 of file os_port_chibios.c.
◆ osGetSystemTime()
systime_t osGetSystemTime | ( | void | ) |
Retrieve system time.
- Returns
- Number of milliseconds elapsed since the system was last started
Definition at line 424 of file os_port_chibios.c.
◆ osInitKernel()
void osInitKernel | ( | void | ) |
Kernel initialization.
Definition at line 53 of file os_port_chibios.c.
◆ osReleaseMutex()
void osReleaseMutex | ( | OsMutex * | mutex | ) |
Release ownership of the specified mutex object.
- Parameters
-
[in] mutex Pointer to the mutex object
Definition at line 408 of file os_port_chibios.c.
◆ osReleaseSemaphore()
void osReleaseSemaphore | ( | OsSemaphore * | semaphore | ) |
Release the specified semaphore object.
- Parameters
-
[in] semaphore Pointer to the semaphore object
Definition at line 356 of file os_port_chibios.c.
◆ osResetEvent()
void osResetEvent | ( | OsEvent * | event | ) |
Set the specified event object to the nonsignaled state.
- Parameters
-
[in] event Pointer to the event object
Definition at line 214 of file os_port_chibios.c.
◆ osResumeAllTasks()
void osResumeAllTasks | ( | void | ) |
Resume scheduler activity.
Definition at line 162 of file os_port_chibios.c.
◆ osSetEvent()
void osSetEvent | ( | OsEvent * | event | ) |
Set the specified event object to the signaled state.
- Parameters
-
[in] event Pointer to the event object
Definition at line 202 of file os_port_chibios.c.
◆ osSetEventFromIsr()
Set an event object to the signaled state from an interrupt service routine.
- Parameters
-
[in] event Pointer to the event object
- Returns
- TRUE if setting the event to signaled state caused a task to unblock and the unblocked task has a priority higher than the currently running task
Definition at line 270 of file os_port_chibios.c.
◆ osStartKernel()
void osStartKernel | ( | void | ) |
Start kernel.
Definition at line 64 of file os_port_chibios.c.
◆ osSuspendAllTasks()
void osSuspendAllTasks | ( | void | ) |
Suspend scheduler activity.
Definition at line 151 of file os_port_chibios.c.
◆ osSwitchTask()
void osSwitchTask | ( | void | ) |
Yield control to the next task.
Definition at line 140 of file os_port_chibios.c.
◆ osWaitForEvent()
Wait until the specified event is in the signaled state.
- Parameters
-
[in] event Pointer to the event object [in] timeout Timeout interval
- Returns
- The function returns TRUE if the state of the specified object is signaled. FALSE is returned if the timeout interval elapsed
Definition at line 229 of file os_port_chibios.c.
◆ osWaitForSemaphore()
bool_t osWaitForSemaphore | ( | OsSemaphore * | semaphore, |
systime_t | timeout | ||
) |
Wait for the specified semaphore to be available.
- Parameters
-
[in] semaphore Pointer to the semaphore object [in] timeout Timeout interval
- Returns
- The function returns TRUE if the semaphore is available. FALSE is returned if the timeout interval elapsed
Definition at line 318 of file os_port_chibios.c.
Variable Documentation
◆ OS_TASK_DEFAULT_PARAMS
|
extern |
Definition at line 41 of file os_port_chibios.c.