Integrate rvctl with rv32i and host debug profiles

This commit is contained in:
mpabi
2026-05-01 22:23:08 +02:00
parent 339d7d6872
commit 2204f82268
5 changed files with 505 additions and 106 deletions
+84
View File
@@ -220,6 +220,12 @@ Komendy:
- `series cards tasks list SERIES CARD`
- `series cards tasks show SERIES CARD TASK`
- `series cards tasks switch SERIES CARD TASK`
- `env list`
- `env sync`
- `env build rv32i|host`
- `debug rv32i|host [TASK|CARD TASK|SERIES CARD TASK]`
- `run host [TASK|CARD TASK|SERIES CARD TASK]`
- `shell rv32i|host [CARD|SERIES CARD]`
- `tasks list [CARD|SERIES CARD]`
- `tasks show TASK|CARD TASK|SERIES CARD TASK`
- `tasks switch TASK|CARD TASK|SERIES CARD TASK`
@@ -560,6 +566,84 @@ Ta komenda działa tak samo jak pełna forma:
./rvctl series cards tasks switch inf bss 4
```
## `env list`
Pokazuje profile środowiska kontenerowego obsługiwane przez `rvctl`.
```bash
./rvctl env list
```
Profile:
- `rv32i` - RISC-V/Hazard3, `nvim`, `tmux`, `gdb-multiarch`
- `host` - natywny kontener z `clang`, `gcc`, `gdb`, opcjonalnie `lldb`
## `env sync`
Klonuje albo aktualizuje repo `rv32i-hazard3-student-env` do katalogu
`~/dev/workspace/rv/tools/rv32i-hazard3-student-env`.
```bash
./rvctl env sync
./rvctl env sync --dry-run
```
## `env build rv32i|host`
Buduje wybrany profil `docker compose`.
```bash
./rvctl env build rv32i
./rvctl env build host
./rvctl env build host --dry-run
```
## `debug rv32i|host`
Uruchamia debugowanie zadania w kontenerze. Selektor może być pełny albo krótki.
```bash
./rvctl debug rv32i inf bss 1
./rvctl debug host inf bss 1
./rvctl debug rv32i 4
./rvctl debug host 4
```
`rv32i` uruchamia symulator Hazard3, `gdb-multiarch` i `nvim`. `host` kompiluje
zadanie natywnie i otwiera `gdb` obok `nvim`. Profil `host` jest przeznaczony
dla tasków C z funkcją `main`; taski czysto asemblerowe debugujemy w profilu
`rv32i`.
Przełączniki:
- `--task TASK` - nadpisuje zadanie z selektora albo z `workspace.json`
- `--instance NAME` - ustawia nazwę instancji kontenera/tmuxa
- `--editor nvim|vim` - wybiera edytor w kontenerze
- `--dry-run` - pokazuje komendę bez uruchamiania Dockera
## `run host`
Buduje i uruchamia wybrane zadanie natywnie w kontenerze `host`.
```bash
./rvctl run host inf bss 1
./rvctl run host 4
```
Profil `rv32i` pracuje obecnie przez `debug rv32i`, bo wymaga symulatora
Hazard3 i połączenia GDB.
## `shell rv32i|host`
Otwiera shell w wybranym profilu kontenera z podmontowaną kartą.
```bash
./rvctl shell rv32i inf bss
./rvctl shell host inf bss
./rvctl shell host --dry-run
```
## `list-series`
Alias kompatybilności dla `series list`.