55extern volatile uint32_t
msTicks;
83createTask (uint32_t taskStack[],
void (*taskFunc) (
void),
84 unsigned int priority,
TCB *userAllocatedTCB,
Fault handling interface for SRTOS.
Core configuration parameters for SRTOS.
#define MAX_PRIORITIES
Number of unique task priority levels supported by the scheduler.
Memory-mapped register addresses and hardware access macros for the STM32F411VET6.
This struct is the Task Control Block (TCB), which is what stores a task's properties.
uint32_t * stackFrameLowerBoundAddr
This header files contains kernel functions that help control system behvaior.
volatile uint32_t msTicks
msTicks contains the amount of ticks that have occured since the scheduler started.
TaskNode * readyTasksList[MAX_PRIORITIES]
This is a list of linked lists that contain the ready tasks.
void taskDelay(uint32_t ticksToDelay)
This function will delay a task's execution for ticksToDelay ms.
uint32_t * initTaskStackFrame(uint32_t taskStack[], void(*taskFunc)(void))
Initializes a task's stack frame.
void startScheduler()
Start the scheduler.
STATUS
This enum is used to indicate whether an operation was sucessful or not.
void PendSV_Handler()
This interrupt will be pended when a context switch is needed.
void SVC_Handler()
This interrupt will be executed when the scheduler is started.
void SysTick_Handler()
This interrupt handler will be called every 1 ms, checking if any tasks need to be unblocked or block...
uint32_t getCurTaskWordsAvailable()
This function will return the minimum number of words left on the stack.
void handleStackOverflow()
This function will be called when a stack overflow is detected. This function will only be called if ...
void setPendSVPending()
This function will be called when a context-switch is needed.
STATUS createTask(uint32_t taskStack[], void(*taskFunc)(void), unsigned int priority, TCB *userAllocatedTCB, TaskNode *userAllocatedTaskNode)
Add a task to the scheduler's ready list.