This proof demonstrates the memory safety of the TaskCreate function.
We initialize task lists, but we set other data structures to
unconstrained (arbitrary) values, including the data structures
pxCurrentTCB
, uxCurrentNumberOfTasks
, pcName
and pxCreateTask
.
STACK_DEPTH is set to a fixed number (10) since it is not possible to
specify a range.
This proof is a work-in-progress. Proof assumptions are described in the harness. The proof also assumes the following functions are memory safe and have no side effects relevant to the memory safety of this function:
- prvTraceGetObjectHandle
- prvTraceGetTaskNumber
- prvTraceSetObjectName
- prvTraceSetPriorityProperty
- prvTraceStoreKernelCall
- prvTraceStoreTaskReady
- pxPortInitialiseStack
- vPortEnterCritical
- vPortExitCritical
- vPortGenerateSimulatedInterrupt