RTOS abstraction layer (ChibiOS/RT) More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "os_port.h"
#include "os_port_chibios.h"
#include "debug.h"
Go to the source code of this file.
Macros | |
#define | TRACE_LEVEL TRACE_LEVEL_OFF |
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... | |
__weak_func void * | osAllocMem (size_t size) |
Allocate a memory block. More... | |
__weak_func void | osFreeMem (void *p) |
Release a previously allocated memory block. More... | |
void | osIdleLoopHook (void) |
Idle loop hook. More... | |
Variables | |
const OsTaskParameters | OS_TASK_DEFAULT_PARAMS |
Detailed Description
RTOS abstraction layer (ChibiOS/RT)
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_chibios.c.
Macro Definition Documentation
◆ TRACE_LEVEL
#define TRACE_LEVEL TRACE_LEVEL_OFF |
Definition at line 30 of file os_port_chibios.c.
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()
__weak_func 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()
__weak_func 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.
◆ osIdleLoopHook()
void osIdleLoopHook | ( | void | ) |
Idle loop hook.
Definition at line 482 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
const OsTaskParameters OS_TASK_DEFAULT_PARAMS |
Definition at line 41 of file os_port_chibios.c.