foxBMS
1.1.0
The foxBMS Battery Management System API Documentation
|
Implementation of the tasks used by the system, headers. More...
#include "general.h"
#include "FreeRTOS.h"
#include "event_groups.h"
#include "semphr.h"
#include "task.h"
Go to the source code of this file.
Data Structures | |
struct | OS_TIMER |
OS timer. More... | |
struct | OS_TASK_DEFINITION |
struct for FreeRTOS task definition More... | |
Macros | |
#define | OS_NUM_OF_MUTEXES 0 |
Number of mutexes for the engine TODO engine what?! More... | |
#define | OS_NUM_OF_EVENTS 0 |
Number of events for the engine TODO engine what?! More... | |
Typedefs | |
typedef enum OS_PRIORITY | OS_PRIORITY_e |
typedef for thread priority. The higher the value, the higher the priority. More... | |
typedef enum OS_BOOT_STATE | OS_BOOT_STATE_e |
enum of OS boot states More... | |
typedef struct OS_TIMER | OS_TIMER_s |
OS timer. More... | |
typedef struct OS_TASK_DEFINITION | OS_TASK_DEFINITION_s |
struct for FreeRTOS task definition More... | |
Enumerations | |
enum | OS_PRIORITY { OS_PRIORITY_IDLE , OS_PRIORITY_LOW , OS_PRIORITY_BELOW_NORMAL , OS_PRIORITY_NORMAL , OS_PRIORITY_ABOVE_NORMAL , OS_PRIORITY_HIGH , OS_PRIORITY_ABOVE_HIGH , OS_PRIORITY_VERY_HIGH , OS_PRIORITY_BELOW_REALTIME , OS_PRIORITY_REAL_TIME } |
typedef for thread priority. The higher the value, the higher the priority. More... | |
enum | OS_BOOT_STATE { OS_OFF , OS_CREATE_QUEUES , OS_CREATE_TASKS , OS_INIT_PRE_OS , OS_SCHEDULER_RUNNING , OS_ENGINE_RUNNING , OS_PRECYCLIC_INIT_HAS_FINISHED , OS_SYSTEM_RUNNING , OS_INIT_OS_FATALERROR_SCHEDULER , OS_INIT_OS_FATALERROR , OS_BOOT_STATE_MAX } |
enum of OS boot states More... | |
Functions | |
void | OS_StartScheduler (void) |
Starts the operating system scheduler. More... | |
void | OS_InitializeOperatingSystem (void) |
Initialization the RTOS interface. More... | |
void | vApplicationGetIdleTaskMemory (StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize) |
Supplies the memory for the idle task. More... | |
void | vApplicationIdleHook (void) |
Hook function for the idle task. More... | |
void | vApplicationStackOverflowHook (TaskHandle_t xTask, char *pcTaskName) |
Hook function for StackOverflowHandling. 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... | |
void | OS_TriggerTimer (volatile OS_TIMER_s *timer) |
Increments the system timer os_timer. More... | |
uint32_t | OS_GetTickCount (void) |
Returns OS based system tick value. More... | |
void | OS_DelayTask (uint32_t delay_ms) |
Delays a task in milliseconds. More... | |
void | OS_DelayTaskUntil (uint32_t *pPreviousWakeTime, uint32_t milliseconds) |
Delay a task until a specified time. More... | |
void | OS_SystemTickHandler (void) |
Handles the tick increment of operating systick timer. More... | |
Variables | |
volatile OS_BOOT_STATE_e | os_boot |
volatile OS_TIMER_s | os_timer |
uint32_t | os_schedulerStartTime |
Scheduler "zero" time for task phase control. More... | |
SemaphoreHandle_t | os_mutexes [] |
EventGroupHandle_t | os_events [] |
Implementation of the tasks used by the system, headers.
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.h.
#define OS_NUM_OF_EVENTS 0 |
#define OS_NUM_OF_MUTEXES 0 |
typedef enum OS_BOOT_STATE OS_BOOT_STATE_e |
enum of OS boot states
typedef enum OS_PRIORITY OS_PRIORITY_e |
typedef for thread priority. The higher the value, the higher the priority.
typedef struct OS_TASK_DEFINITION OS_TASK_DEFINITION_s |
struct for FreeRTOS task definition
typedef struct OS_TIMER OS_TIMER_s |
OS timer.
enum OS_BOOT_STATE |
enum of OS boot states
enum OS_PRIORITY |
typedef for thread priority. The higher the value, the higher the priority.
void OS_DelayTask | ( | uint32_t | delay_ms | ) |
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 |
void OS_EnterTaskCritical | ( | void | ) |
void OS_ExitTaskCritical | ( | void | ) |
uint32_t OS_GetTickCount | ( | void | ) |
void OS_InitializeOperatingSystem | ( | void | ) |
void OS_StartScheduler | ( | void | ) |
void OS_SystemTickHandler | ( | void | ) |
void OS_TriggerTimer | ( | volatile OS_TIMER_s * | timer | ) |
void vApplicationGetIdleTaskMemory | ( | StaticTask_t ** | ppxIdleTaskTCBBuffer, |
StackType_t ** | ppxIdleTaskStackBuffer, | ||
uint32_t * | pulIdleTaskStackSize | ||
) |
Supplies the memory for the idle task.
This is needed due to the usage of configSUPPORT_STATIC_ALLOCATION. This is an FreeRTOS function an does not adhere to foxBMS function naming convetions.
ppxIdleTaskTCBBuffer | TODO |
ppxIdleTaskStackBuffer | TODO |
pulIdleTaskStackSize | TODO |
void vApplicationIdleHook | ( | void | ) |
void vApplicationStackOverflowHook | ( | TaskHandle_t | xTask, |
char * | pcTaskName | ||
) |
|
extern |
|
extern |
handles for OS objects
|
extern |
handles for OS objects
|
extern |
|
extern |