chore: preserve current FreeRTOS and C card updates
This commit is contained in:
@@ -76,11 +76,29 @@ stemctl debug rp2350 freertos heap4 3 --device /dev/bus/usb/BBB/DDD
|
||||
|
||||
## Debugowanie Task 3
|
||||
|
||||
Automatyczny start: `heap4_fragmented_checkpoint`.
|
||||
Automatyczny start: `heap4_reset_checkpoint`. Karta prowadzi po ośmiu
|
||||
powtarzalnych stanach jednego procesu:
|
||||
|
||||
| Event | Symbol | Najważniejszy dowód Hazard3 |
|
||||
|---|---|---|
|
||||
| E01 | `heap4_reset_checkpoint` | `free=largest=4080`, 1 blok |
|
||||
| E02 | `heap4_alloc_a_checkpoint` | A(24), `consumed=48`, `free=4032` |
|
||||
| E03 | `heap4_alloc_b_checkpoint` | B(40), `consumed=64`, `free=3968` |
|
||||
| E04 | `heap4_alloc_c_checkpoint` | C(16), `consumed=32`, `free=3936` |
|
||||
| E05 | `heap4_free_a_checkpoint` | `free=3984`, 2 bloki |
|
||||
| E06 | `heap4_fragmented_checkpoint` | `free=4016`, 2 bloki, `free>largest` |
|
||||
| E07 | `heap4_coalesced_checkpoint` | `free=largest=4080`, 1 blok |
|
||||
| E08 | `task03_debug_checkpoint` | OOM `NULL`, hook=1, asserts=0, PASS=1 |
|
||||
|
||||
`BlockLink_t` ma na RV32 8 B, ale port wymaga wyrównania 16 B, dlatego
|
||||
`xHeapStructSize` wynosi 16 B. To rozróżnienie tłumaczy zużycie 48/64/32 B.
|
||||
|
||||
```gdb
|
||||
p g_fragmented_stats
|
||||
p g_final_stats
|
||||
p g_a_consumed
|
||||
p g_b_consumed
|
||||
p g_c_consumed
|
||||
p xFreeBytesRemaining
|
||||
p xMinimumEverFreeBytesRemaining
|
||||
p xStart
|
||||
@@ -91,6 +109,12 @@ b pvPortMalloc
|
||||
b vPortFree
|
||||
```
|
||||
|
||||
Scalanie sprawdzamy z replay E06: zatrzymujemy się przed `vPortFree(g_b)`,
|
||||
ustawiamy tymczasowy breakpoint na `prvInsertBlockIntoFreeList` i krokujemy.
|
||||
Upstream V11.3.0 scala najpierw poprzedni/lewy, a potem następny/prawy blok.
|
||||
Pełna macierz kroków diagramów jest w
|
||||
[`doc/hazard3-iteration-plan.md`](doc/hazard3-iteration-plan.md).
|
||||
|
||||
W UI: Termdebug po lewej; źródło i listing po prawej; bash pod Neovimem.
|
||||
`F5` continue, `F9` breakpoint, `F10` next, `F11` step, `Shift-F11`
|
||||
finish, `F8` stepi, `:StudentStack`, `:StudentMemory`, `:StudentLst`.
|
||||
|
||||
Reference in New Issue
Block a user