xilplmi
Vitis Drivers API Documentation
xplmi_task.c File Reference

Overview

This file contains code Task handling.

MODIFICATION HISTORY:
Ver   Who  Date        Changes


1.00 kc 02/06/2019 Initial release 1.01 kc 07/16/2019 Added PERF macro to print task times 1.02 kc 02/17/2020 Task dispatcher updated with round robin from FCFS bsv 04/04/2020 Code clean up 1.03 kc 07/28/2020 WDT support added to set PLM live status bm 10/14/2020 Code clean up td 10/19/2020 MISRA C Fixes 1.04 kc 11/30/2020 Disable interrupts while updating shared data 1.05 skd 03/12/2021 Added provision to skip scheduling a task if it is already present in queue ma 03/24/2021 Reduced minimum digits of time stamp decimals to 3 skd 03/31/2021 Adding non periodic tasks even if a task with the same handler exists, to ensure no interrupt task handlers get missed bm 04/03/2021 Move task creation out of interrupt context bsv 04/08/2021 Moved Task Time prints to DEBUG_DETAILED to reduce logs on console 1.06 td 07/08/2021 Fix doxygen warnings ma 07/12/2021 Minor updates to task related code ma 08/05/2021 Add separate task for each IPI channel 1.07 bm 02/04/2022 Fix race condition in task dispatch loop bsv 03/05/2022 Fix exception while deleting two consecutive tasks of same priority bsv 03/11/2022 Restore race condition fix that got disturbed by previous patch 1.08 ng 11/11/2022 Updated doxygen comments 2.00 ng 12/27/2023 Reduced log level for less frequent prints ng 01/28/2024 optimized u8 variables

 

Functions

XPlmi_TaskNode * XPlmi_TaskCreate (TaskPriority_t Priority, int(*Handler)(void *Arg), void *PrivData)
 This function creates the task and initializes its fields with the user parameters. More...
 
XPlmi_TaskNode * XPlmi_GetTaskInstance (int(*Handler)(void *Arg), const void *PrivData, const u32 IntrId)
 This function returns the instance of the task with matching handler and private data or with matching interrupt id. More...
 
void XPlmi_TaskTriggerNow (XPlmi_TaskNode *Task)
 This function adds the task to the task queue so that it can be triggered based on its priority. More...
 
void XPlmi_TaskInit (void)
 This function initializes the task queues list. More...
 
void XPlmi_TaskDispatchLoop (void)
 This function will be checking for tasks in the queue based on the priority. More...