- Class g_rgb
Define a unified srtucture for different kind of resources.
Re-write the message resource routines
- Global gk_Create_PCBs
Include into the KCB
System signal should be implmented when no free PCB is available
- Global gk_CreateTask
- TCBInherPriority has no sense
- Global gk_ECB_GetFree
- System signal should be implmented when no free ECB is available
- Global gk_ECB_List_Unlink
- Verify when a resource is unlinked (semaphore and queue message)
- Global gk_ECB_Unlink
Check if it useful, otherwise delete the function
Implement G_FALSE when no linked
- Global gk_ECBTL_Link
- Check if time is a valid time
- Global gk_ECBTL_Unlink
- Implement G_FALSE when no a time event
- Global gk_ENTRY_BAD_TASK_RETURN (void)
- implement a safe rescate of the system
- Global gk_Get_LCB
System signal should be implmented when no free LCB is available
Rewrite all the LCB support
Write the destroy LCB structure
- Global gk_INIT_IRQ
Include Disabled but ready interrupt Type
Utilize the gk_SetTaskISR in order to be coherent if the user define a ISR in the main function
- Global gk_INIT_KERNEL (void)
Modify to allow executing with normal drivers instead of reduced ones
use alt_dcache_flush_all(); after mutex to flush cache
- Global gk_ISR_COMPLETE
- Include completes but task remains ready.
- Global gk_ISR_RELEASE
- Verify if task is waiting to enable the interrupt, otherwise change the Type of the ISR
- Global gk_KCBASL_GetSCB
- Check if this function is necessary
- Global gk_KERNEL_TASK_COMPLETE (void)
- Check if IRQ is enabled when all ISR are complete
- Global gk_KERNEL_TASK_COMPLETE (void)
- Check if IRQ is enabled when all ISR are complete
- Global gk_LCBFPL_Link
- Check if index is correct and return G_FASEL if not.
- Global gk_LCBFPL_Unlink
- Check if Processor ID is valid and return G_FALSE
- Global gk_LCBL_Link
Check everything about this function
Define the G_FALSE return
- Global gk_LCBL_UnLink
- Implement G_FALSE returns
- Global gk_PCB_GetNextTCB
- Check if it is necessary or delete this function
- Global gk_RCB_GetFree
- ystem signal should be implmented when no free RCB is available
- Global gk_RCBASL_Link
-
- Global gk_RCBASL_Unlink
- Return G_FALSE when it is not linked
- Global gk_RCBFL_Link
- Return G_FALSE when it is not unused
- Global gk_RCBGEL_Link
- Check priority for different structures
- Global gk_RCBWEL_Link
- Considered when no free ECB are available
- Global gk_RRDS_GetFree
System signal should be implmented when no free RRDS is available
verify correctness !!!!!
verify correctness !!!!!
- Global gk_RRDSASL_GetSCB
- Check if this function is necessary and valid for the union RRDS
- Global gk_RRDSASL_UnLink
- Check if it is linked and return G_FALSE if it is not
- Global gk_RRDSFL_Link (GS_RRDS *prrds)
Check the RRDS according structure (queue, semaphore)
Check if RRDS is to ECB or TCB too (I am not sure)
- Global gk_RRDSFL_Link (GS_RRDS *prrds)
Check the RRDS according structure (queue, semaphore)
Check if RRDS is to ECB or TCB too (I am not sure)
- Global gk_SCBAPSL_Link
- Check if the function is necesary, otherwise delete
- Global gk_SCBFL_Link
- Check is ECB signal is ready for linking to free list without links.
- Global gk_SetLowestProcessor
- Check for error and return G_FALSE
- Global gk_SetTaskISR
Check if IRQ number or TCB pointer al valid.
Implement the reverse function to convert a ISR into a task
- Global gk_TASK_GRANTED_PRIORITY_GET
- Check according the type of reource
- Global gk_TASK_INHERENCE_PRIORITY_SET
- Verify kind of resource
- Global gk_TASK_IS_BLOCKED
- Implement for different resources
- Global gk_TASK_Kill
- Implement G_FALSE return
- Global gk_TASK_PRIORITY_SET
- Check if state is valid
- Global gk_TASK_RELEASE
- Check Ready and Running state to trigger the abort signal
- Global gk_TASK_RESOURCE_CREATE
- Eliminate the code replacing where it is used
- Global gk_TASK_RESOURCE_DESTROY
- Eliminate replacing the code where it is used
- Global gk_TASK_RESOURCE_GRANT
- Eliminate the function replacing the code
- Global gk_TASK_RESOURCE_UNGRANT
- Eliminate replacing the code
- Global gk_TASK_RESOURCE_UNWAIT
- Eliminate the code replacing it where it is called from
- Global gk_TASK_RESOURCE_WAIT
- Eliminate this function replacing the code where it is called from
- Global gk_TASK_STK_Init
- Implement validity checks
- Global gk_TCB_List_Unlink
- Check unlink for different resources (semaphore and messages) when they are granted
- Global gk_TCB_Unlink
- Implement the G_FALSE when no linked
- Global gk_TCBAEL_Link
- Check validity of XCB
- Global gk_TCBASL_Unlink
- Define the G_FALSE return when signal is not associated with the TCB
- Global gk_TCBPSL_Unlink
- Return G_FALSE when it is not associated SCB to TCB
- Global gk_TCBRDYL_Link
- Implement G_FALSE return
- Global gk_TCBRDYL_Unlink
- Implement G_FALSE return when error
- Global gk_TCBRUNL_Link
- Implement G_FALSE return
- Global gk_TCBRUNL_Unlink
- Include G_FALSE when TCB is not in RUN list
- Global gk_TCBWL_Link
- Define the types of waiting states
- Global gk_TCBWL_Unlink
- Implement G_FALSE return when is not waiting
- Global gk_TIME_CALLBACK
raise a signal when it is blocked
- Global gk_timeout_ECB_SEM_post
- Eliminate the TASK_RESOURCE routines
- Global gk_timeout_ECB_SEM_wait
- Replace gk_TASK_RESOURCE_UNWAIT
- Class gs_ecb
- Check if all the states and type are needed
- Class gs_lcb
Check correctness for multiple list scheduling
define types
Include maximun number of running tasks and current running tasks to control exclusion
- Class gs_mcb
- Check if gs_mcb structure is required
- Class gs_pcb
- Define the type for processors
- Class gs_rrds
- Define a unified srtucture for different kind of resources.
- Class gs_scb
- define the rest of signal types required.
- Class gs_tcb
- Check if fields can be grouped into an union to save fields for differetn type of TCBs. For instance, period and ISR links are not requiered for the same type of task.
- Global gu_Clock
- Analise to use gt_tm as time format for user
- Global gu_Convert_Time
- Define if gt_time should be used for user
- Global gu_Get_CPU_ID
Check if return can be changed to INT32
Change to user API files
- Global gu_get_frozen_threshold
-
- Global gu_get_irq_status
- Change to return status of one IRQ in order to cover more than a INT32 scope
- Global gu_Get_Next_Occurrence_Time
- Change to user API files
- Global gu_get_now
- Analise if gu_Clock is more adecuate
- Global gu_sem_destroy
- Analyse to remove all list and trigger signal to tasks
- Global gu_sem_getvalue
- Check if this function is necessary
- Global gu_sem_post
- Check if semaphore is granted to the task doing the post
- Global gu_Set_Default_Task_List
- Check if list is a valid list and return accordingly
- Global gu_Set_Default_Task_Type
- Check validity of type previous to change it
- Global gu_SetTaskDeadline
- Implement the change of the deadline in the currrent invocation. It should considered the difference with the current deadline
- Global gu_SetTaskISR
Check if IRQ number or TCB pointer al valid.
Implement the reverse function to convert a ISR into a task
- Global gu_SetTaskList
Check if index is valid
Unlinks from current list and link to the new link accordingly.
- Global gu_SetTaskPeriod
- Implement the change of the period in the currrent invocation. It should considered the difference with the current period
- Global gu_SetTaskReadyPriority
Unlink and link if task is ready
Put priority as level and priority
- Global gu_SetTaskRunPriority
Unlink and link if task is running
Put priority as level and priority
- Global gu_SetTaskType
- Validate type previous to assign
- Global gu_signal_create
Check SCB availability
Include signal for the rest of control blocks
Define signals for different events and resources
ASigne TaskArg to the argument different from Type
- Global gu_signal_destroy
- Check everything of this function
- Global gu_StartTaskwithOffset
Include start of a ISR
Include start of an IDLE task??
- Global gu_TASK_IS_BLOCKED
- Check correcteness for diferent resources (semaphore and message queue)
- Global gu_TASK_Kill
- Check that all the structures are adequatelly treated
- Global gu_TASK_RESUME
- Check that GRTOS is running
- Global gu_TASK_Sleep_Time
- Check if it can be implemented only with gk_KERNEL_TASK_SUSPEND instead of gk_KERNEL_TASK_SUSPEND_CURRENT
- Global gu_TASK_SUSPEND
- Check gk_KERNEL_TASK_SUSPEND with current task
- Global OPTIMEZE_CODE
explain correctelly
explain correctelly
- Global RCB_IsValid
- Find a way to determine validity when it is not an array
- Global RRDS_IsValid
- Find a way when it is not an array of control blocks
- Global SCB_IsValid
-
- Class T_MESSAGE_RESOURCE
- Check if T_MESSAGE_RESOURCE structure is required