foxBMS - Unit Tests
1.5.0
The foxBMS Unit Tests API Documentation
|
FreeRTOS specific implementation of the tasks and resources used by the system. More...
Go to the source code of this file.
Functions | |
void | OS_InitializeScheduler (void) |
Initialization function for the scheduler. More... | |
void | OS_StartScheduler (void) |
Starts the operating system scheduler. More... | |
void | vApplicationGetIdleTaskMemory (StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize) |
void | vApplicationIdleHook (void) |
Hook function for the idle task. More... | |
void | OS_EnterTaskCritical (void) |
Enter Critical interface function for use in FreeRTOS-Tasks and FreeRTOS-ISR. More... | |
void | OS_ExitTaskCritical (void) |
Exit Critical interface function for use in FreeRTOS-Tasks and FreeRTOS-ISR. More... | |
uint32_t | OS_GetTickCount (void) |
Returns OS based system tick value. More... | |
void | OS_DelayTaskUntil (uint32_t *pPreviousWakeTime, uint32_t milliseconds) |
Delay a task until a specified time. More... | |
void | OS_MarkTaskAsRequiringFpuContext (void) |
Marks the current task as requiring FPU context. More... | |
OS_STD_RETURN_e | OS_WaitForNotification (uint32_t *pNotifiedValue, uint32_t timeout) |
Wait for a notification. More... | |
OS_STD_RETURN_e | OS_NotifyFromIsr (TaskHandle_t taskToNotify, uint32_t notifiedValue) |
Notify a task. More... | |
OS_STD_RETURN_e | OS_WaitForNotificationIndexed (uint32_t indexToWaitOn, uint32_t *pNotifiedValue, uint32_t timeout) |
Wait for a notification, with index. More... | |
OS_STD_RETURN_e | OS_NotifyIndexedFromIsr (TaskHandle_t taskToNotify, uint32_t indexToNotify, uint32_t notifiedValue) |
Notify a task, with index. More... | |
OS_STD_RETURN_e | OS_ClearNotificationIndexed (uint32_t indexToClear) |
Clear pending notification of a task, with index. More... | |
OS_STD_RETURN_e | OS_ReceiveFromQueue (OS_QUEUE xQueue, void *const pvBuffer, uint32_t ticksToWait) |
Receive an item from a queue. More... | |
OS_STD_RETURN_e | OS_SendToBackOfQueue (OS_QUEUE xQueue, const void *const pvItemToQueue, uint32_t ticksToWait) |
Post an item to the back the provided queue. More... | |
OS_STD_RETURN_e | OS_SendToBackOfQueueFromIsr (OS_QUEUE xQueue, const void *const pvItemToQueue, long *const pxHigherPriorityTaskWoken) |
Post an item to the back the provided queue during an ISR. More... | |
uint32_t | OS_GetNumberOfStoredMessagesInQueue (OS_QUEUE xQueue) |
Check if messages are waiting for queue. More... | |
FreeRTOS specific implementation of the tasks and resources used by the system.
SPDX-License-Identifier: BSD-3-Clause
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
We kindly request you to use one or more of the following phrases to refer to foxBMS in your hardware, software, documentation or advertising materials:
Definition in file os_freertos.c.
OS_STD_RETURN_e OS_ClearNotificationIndexed | ( | uint32_t | indexToClear | ) |
Clear pending notification of a task, with index.
This function needs to implement the wrapper to OS specific task notification clearing. It clears the pending notification for the calling task. This function must not be called from within an interrupt service routine (due to the FreeRTOS compatibility of the the wrapper). This function clears a pending notification corresponding to the index passed as parameter.
indexToClear | Index of the notification to clear |
Definition at line 235 of file os_freertos.c.
void OS_DelayTaskUntil | ( | uint32_t * | pPreviousWakeTime, |
uint32_t | milliseconds | ||
) |
Delay a task until a specified time.
TODO
pPreviousWakeTime | Pointer to a variable that holds the time at which the task was last unblocked. PreviousWakeTime must be initialized with the current time prior to its first use (PreviousWakeTime = OS_osSysTick()). |
milliseconds | time delay value in milliseconds |
Definition at line 146 of file os_freertos.c.
void OS_EnterTaskCritical | ( | void | ) |
Enter Critical interface function for use in FreeRTOS-Tasks and FreeRTOS-ISR.
checks the function context (task/thread mode or interrupt (handler) mode) and calls the corresponding enter-critical function
Definition at line 134 of file os_freertos.c.
void OS_ExitTaskCritical | ( | void | ) |
Exit Critical interface function for use in FreeRTOS-Tasks and FreeRTOS-ISR.
Checks the function context (task/thread mode or interrupt (handler) mode) and calls the corresponding exit-critical function
Definition at line 138 of file os_freertos.c.
uint32_t OS_GetNumberOfStoredMessagesInQueue | ( | OS_QUEUE | xQueue | ) |
Check if messages are waiting for queue.
This function needs to implement the wrapper to OS specific queue posting.
xQueue | queue handle that should be posted to. |
Definition at line 289 of file os_freertos.c.
uint32_t OS_GetTickCount | ( | void | ) |
Returns OS based system tick value.
TODO
Definition at line 142 of file os_freertos.c.
void OS_InitializeScheduler | ( | void | ) |
Initialization function for the scheduler.
Definition at line 75 of file os_freertos.c.
void OS_MarkTaskAsRequiringFpuContext | ( | void | ) |
Marks the current task as requiring FPU context.
In order to avoid corruption of the registers of the floating point unit during a task switch, every task that uses the FPU has to call this function at its start.
This instructs the underlying operating system to store the context of the FPU when switching a task.
This function has to be called from within a task.
Definition at line 156 of file os_freertos.c.
OS_STD_RETURN_e OS_NotifyFromIsr | ( | TaskHandle_t | taskToNotify, |
uint32_t | notifiedValue | ||
) |
Notify a task.
This function needs to implement the wrapper to OS specific task notification. This function is to be called from within an interrupt service routine (due to the FreeRTOS compatibility of the the wrapper). This function makes a notification to the task whose handle is is passed as parameter. Typically the notification is made in an interrupt. The value to notify is passed to the notified task.
taskToNotify | Handle of task to notify. |
notifiedValue | Value to pass to the notified task |
Definition at line 176 of file os_freertos.c.
OS_STD_RETURN_e OS_NotifyIndexedFromIsr | ( | TaskHandle_t | taskToNotify, |
uint32_t | indexToNotify, | ||
uint32_t | notifiedValue | ||
) |
Notify a task, with index.
This function needs to implement the wrapper to OS specific task notification. This function is to be called from within an interrupt service routine (due to the FreeRTOS compatibility of the the wrapper). This function makes a notification with an index to the task whose handle is passed as parameter. Typically the notification is made in an interrupt. The value to notify and the index are passed to the notified task.
taskToNotify | Handle of task to notify |
indexToNotify | Index to notify |
notifiedValue | Value to pass to the notified task |
Definition at line 214 of file os_freertos.c.
OS_STD_RETURN_e OS_ReceiveFromQueue | ( | OS_QUEUE | xQueue, |
void *const | pvBuffer, | ||
uint32_t | ticksToWait | ||
) |
Receive an item from a queue.
This function needs to implement the wrapper to OS specific queue posting. The queue needs to be implement in a FreeRTOS compatible way. This function must not be called from within an interrupt service routine (due to the FreeRTOS compatibility of the the wrapper).
xQueue | FreeRTOS compatible queue handle that should be posted to |
pvBuffer | Pointer to the buffer into which the received item is posted to. |
ticksToWait | ticks to wait |
Definition at line 248 of file os_freertos.c.
OS_STD_RETURN_e OS_SendToBackOfQueue | ( | OS_QUEUE | xQueue, |
const void *const | pvItemToQueue, | ||
uint32_t | ticksToWait | ||
) |
Post an item to the back the provided queue.
This function needs to implement the wrapper to OS specific queue posting. The queue needs to be implement in a FreeRTOS compatible way.
xQueue | FreeRTOS compatible queue handle that should be posted to. |
pvItemToQueue | Pointer to the item to be posted in the queue. |
ticksToWait | ticks to wait |
Definition at line 261 of file os_freertos.c.
OS_STD_RETURN_e OS_SendToBackOfQueueFromIsr | ( | OS_QUEUE | xQueue, |
const void *const | pvItemToQueue, | ||
long *const | pxHigherPriorityTaskWoken | ||
) |
Post an item to the back the provided queue during an ISR.
This function needs to implement the wrapper to OS specific queue posting.
xQueue | queue handle that should be posted to. |
pvItemToQueue | Pointer to the item to be posted in the queue. |
pxHigherPriorityTaskWoken | Indicates whether a context switch is required or not. If the parameter is a NULL_PTR, the context switch will happen at the next tick. |
Definition at line 273 of file os_freertos.c.
void OS_StartScheduler | ( | void | ) |
Starts the operating system scheduler.
Definition at line 81 of file os_freertos.c.
OS_STD_RETURN_e OS_WaitForNotification | ( | uint32_t * | pNotifiedValue, |
uint32_t | timeout | ||
) |
Wait for a notification.
This function needs to implement the wrapper to OS specific blocking task and waiting for notification. This function must not be called from within an interrupt service routine (due to the FreeRTOS compatibility of the the wrapper). This function blocks the current tasks and wait for a notification. Typically the notification is made in an interrupt. The notified value is passed by the notifying function. The tasks unblocks when the notification is received or when timeout milliseconds have passed.
pNotifiedValue | Value passed by the notify function |
timeout | ticks to wait before unblocking task if no notification is received |
Definition at line 160 of file os_freertos.c.
OS_STD_RETURN_e OS_WaitForNotificationIndexed | ( | uint32_t | indexToWaitOn, |
uint32_t * | pNotifiedValue, | ||
uint32_t | timeout | ||
) |
Wait for a notification, with index.
This function needs to implement the wrapper to OS specific blocking task and waiting for notification. This function must not be called from within an interrupt service routine (due to the FreeRTOS compatibility of the the wrapper). This function blocks the current tasks and wait for a notification and a specific index. Typically the notification is made in an interrupt. The notified value and index are passed by the notifying function. The tasks unblocks when the notification is received or when timeout milliseconds have passed.
indexToWaitOn | index to wait on |
pNotifiedValue | Value passed by the notify function |
timeout | ticks to wait before unblocking task if no notification is received |
Definition at line 194 of file os_freertos.c.
void vApplicationGetIdleTaskMemory | ( | StaticTask_t ** | ppxIdleTaskTCBBuffer, |
StackType_t ** | ppxIdleTaskStackBuffer, | ||
uint32_t * | pulIdleTaskStackSize | ||
) |
Buffer for the Idle Task's structure
Stack for the Idle task
Definition at line 87 of file os_freertos.c.
void vApplicationIdleHook | ( | void | ) |
Hook function for the idle task.
This is an FreeRTOS function an does not adhere to foxBMS function naming conventions
Definition at line 123 of file os_freertos.c.