Tobias Reinhard
4eb2fa573e
Wrote contracts for lock release operations.
2022-11-16 14:18:03 -05:00
Tobias Reinhard
54523ecdce
Included global variables pxCurrentTCBs and pxYieldingPendings in interrupt invariant.
2022-11-16 13:53:22 -05:00
Tobias Reinhard
d63a8f83cd
Renamed predicate encapsulating access permissions to core local variables to coreLocalInterruptInv_p.
2022-11-16 11:31:12 -05:00
Tobias Reinhard
327423ef67
TCB of currently scheduled task on core C is interrupt protected on core C. Updated invariants to reflect that.
2022-11-16 11:25:37 -05:00
Tobias Reinhard
360afe4374
Cleaned up lock predicate header.
2022-11-16 10:37:12 -05:00
Tobias Reinhard
d95976ebe5
Added info about available tasks to lock predicate.
2022-11-16 10:28:31 -05:00
Tobias Reinhard
7a5119e324
Nightly build of Nov 14, 2022 broke old proof for vTaskCreate. Ignoring these proofs for now.
2022-11-15 09:31:56 -05:00
Tobias Reinhard
d2f10a6b25
vTaskSwitchContexxt assumes that that interrupts have been deactivated.
2022-11-15 08:28:21 -05:00
Tobias Reinhard
a7fdaca373
Reverted manual rewrites involving const pointers. Automatic rewrites are in place.
2022-11-13 14:52:14 -05:00
Tobias Reinhard
a470fec6d0
Added automatic deletion of void casts (used to suppress warnings) and linked to filed VeriFast issue 335.
2022-11-13 14:46:17 -05:00
Tobias Reinhard
7c9711cb88
Reverted manual VF rewrites concerning const pointers. Respective rewrites are applied during preprocessing.
2022-11-11 15:44:23 -05:00
Tobias Reinhard
29e14be203
Verified minimal contract for xTaskGetCurrentTaskHandle.
2022-11-10 14:36:04 -05:00
Tobias Reinhard
63d8c5afa8
Rewrote side-effectful assertion such that VeriFast can process it.
2022-11-10 12:51:20 -05:00
Tobias Reinhard
7e75d7aa8f
Refined lock predicates and contracts for lock macros to match expected locking discipline.
2022-11-10 12:50:48 -05:00
Tobias Reinhard
3d4ad64692
Switched to new verification target vTaskSwitchContext.
2022-11-07 14:42:11 -05:00
Tobias Reinhard
9fa8c76447
Paused partial proof for xTaskCreate.
2022-11-07 14:40:08 -05:00
Tobias Reinhard
91eb6eefaa
Included reference to core ID in interrupt predicates and added distinction between global and core local variables.
2022-11-07 14:21:42 -05:00
Tobias Reinhard
06d2611aa9
Made config macros from FreeRTOSConfig.h available to VeriFast proof.
2022-11-04 16:16:08 -04:00
Tobias Reinhard
8897e3fe6e
Added specification for enabling and disabling interrupts.
2022-11-04 15:49:24 -04:00
Tobias Reinhard
66d71c5b47
Started to verify taskENTER_CRITICAL.
2022-11-04 14:23:39 -04:00
Tobias Reinhard
5c9750eac4
Verified vListInitialiseItem.
2022-11-04 11:24:25 -04:00
Tobias Reinhard
94e0f21574
Added rewrite to remove const qualifiers from pointers.
2022-11-04 11:15:15 -04:00
Tobias Reinhard
2404a2f253
Added flag to skip very expensive part of the proof for prvInitialiseNewTask.
...
When the symbol `VERIFAST_SKIP_BITVECTOR_PROOF__STACK_ALIGNMENT` is defined in the preprocessor script, we skip the verification of the stack alignment. This part of the proof involves bit vector arithmetic and hence takes long to verify.
2022-11-03 15:40:12 -04:00
Tobias Reinhard
e064c380d7
Added name tags to assembly dummy macros.
2022-11-03 12:04:57 -04:00
Tobias Reinhard
97c2583eb3
Verified prvInitialiseNewTask.
2022-11-02 16:09:16 -04:00
Tobias Reinhard
0e84d8906f
Updated stack depth requirements in preconditions to match precondition of pxPortInitialiseStack
2022-11-02 14:16:29 -04:00
Tobias Reinhard
f793c96031
Adapted part of pxPortInitialiseStack proof to new stack predicate.
2022-11-02 12:09:15 -04:00
Tobias Reinhard
800a7204bc
Adapted first half of prvInitialiseNewTask to new stack predicate.
2022-11-01 16:06:53 -04:00
Tobias Reinhard
af090b252d
Added new stack predicate that reflects the forced alignment of the stack pointer.
2022-11-01 15:24:42 -04:00
Tobias Reinhard
ead381f413
Verified alignment check of stack top pointer.
2022-10-28 13:59:45 -04:00
Tobias Reinhard
06b924d818
Verified alignment properties of stack top pointer.
2022-10-28 13:24:01 -04:00
Tobias Reinhard
551d1da628
Renamed TCB_p predicate into uninit_TCB_p.
2022-10-27 12:58:18 -04:00
Tobias Reinhard
e238d791ab
Moved stack predicate and lemmas to separate header.
2022-10-27 12:51:24 -04:00
Tobias Reinhard
2bcdc31ff8
Deleted deprecated version of pointer size axiom.
2022-10-27 12:45:38 -04:00
Tobias Reinhard
2b82220cec
Refined stack predicate, validated it and verified pxPortInitialiseStack impl from RP2040 port.
2022-10-27 12:43:10 -04:00
Tobias Reinhard
b185c29a7b
Typo.
2022-10-26 10:30:05 -04:00
Tobias Reinhard
b5f0b2f74d
Added snippet from RP2040 port.c to verification code base to allow verification of contract from portable.h
2022-10-26 10:08:29 -04:00
Tobias Reinhard
8bb4f13ae5
Introduced new type-safe macro for unsigned pdFALSE and pdTRUE.
2022-10-26 09:14:11 -04:00
Tobias Reinhard
d3813796b3
Justified memset-ing pxNewTCB->ucNotifyState in prvInitialiseNewTask.
2022-10-26 08:33:47 -04:00
Tobias Reinhard
a78bc21b26
Simplified proof state in prvInitialiseNewTask.
2022-10-26 08:11:47 -04:00
Tobias Reinhard
40931d229d
Justified memset of TCB fields in prvInitialiseNewTask.
...
Fields: `pxNewTCB->ucNotifyState` and `pxNewTCB->ulNotifiedValue`
2022-10-25 16:56:28 -04:00
Tobias Reinhard
8a8f0ab9b1
Proved memory safety of name-writing loop in prvInitialiseNewTask.
2022-10-25 14:57:26 -04:00
Tobias Reinhard
82be7cb23a
Temporarily eliminated runtime assertion.
2022-10-25 14:40:50 -04:00
Tobias Reinhard
8b958c7834
Axiomatized knowledge about RP2040 architecture and added tmp workaround for over/underflows.
2022-10-25 14:34:01 -04:00
Tobias Reinhard
06bc0fbb2d
Resolved VF reporting type errors for memset call and disproved some overflows and underflows.
2022-10-25 13:58:06 -04:00
Tobias Reinhard
1042ea8cf8
Refined task control block predicate TCB_p such that it can be used to justify memset-ing the stack.
2022-10-25 13:22:10 -04:00
Tobias Reinhard
80134a65ed
VeriFast cannot handle casts of side-effectful expressions.
2022-10-25 12:49:33 -04:00
Tobias Reinhard
5a7916bff0
Added predicates to reason about TCB_t and substructures.
2022-10-24 16:17:41 -04:00
Tobias Reinhard
f1a0170309
Initialized memory safety proof for xTaskCreate.
2022-10-24 12:29:55 -04:00
Tobias Reinhard
47e6fa7398
Resolved VF parse errors: const pointers.
2022-10-22 14:02:04 -04:00