start tutorial
This commit is contained in:
71
WORKSHOP.md
Normal file
71
WORKSHOP.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Workshop Plan (60 Minutes)
|
||||
|
||||
## Goal
|
||||
|
||||
Von Rust-Basics zu echter Hardware auf STM32F103C8 Bluepill:
|
||||
|
||||
- LED blinken
|
||||
- Button einlesen
|
||||
- Analogwert einlesen
|
||||
- Ausgabe live über `probe-rs` / RTT sehen
|
||||
|
||||
## Timing
|
||||
|
||||
1. 00:00-00:10: Setup + Probe Smoke Test (`00`)
|
||||
2. 00:10-00:28: Rust Basics (`01`-`03`)
|
||||
3. 00:28-00:36: Erstes `no_std` Firmware-Projekt (`04`)
|
||||
4. 00:36-00:44: LED Blinky (`05`)
|
||||
5. 00:44-00:50: Button Input (`06`)
|
||||
6. 00:50-00:56: Analog Readout (`07`)
|
||||
7. 00:56-01:00: Integration (`08`)
|
||||
|
||||
## Rules During Workshop
|
||||
|
||||
1. Bearbeite nur `task/`.
|
||||
2. Nutze `solution/` nur als Hilfe bei Blockern.
|
||||
3. Falls >3 Minuten blockiert: Diff vergleichen, minimalen Fix übernehmen, weiter.
|
||||
4. Bei Embedded-Schritten: Board vor jedem `cargo run` korrekt verkabeln.
|
||||
|
||||
## Repo Management During Workshop
|
||||
|
||||
1. `main` enthält Aufgaben und Referenzlösungen.
|
||||
2. Instructor kann Wiederherstellungspunkte als Tags setzen:
|
||||
- `step-00-start` ... `step-08-solution`
|
||||
3. Teilnehmer arbeiten auf lokalem Branch:
|
||||
- `participant/<name>`
|
||||
4. Wenn eine Aufgabe nicht weitergeht:
|
||||
- minimalen Diff aus `solution/` übernehmen und fortfahren.
|
||||
|
||||
## Step Contract
|
||||
|
||||
Jeder Schritt enthält:
|
||||
|
||||
- `README.md` mit Ziel, Ablauf, Done-Check
|
||||
- `task/` (Aufgabe)
|
||||
- `solution/` (Referenz)
|
||||
|
||||
## Script Contract
|
||||
|
||||
- `scripts/setup-live.sh`
|
||||
- `scripts/verify-host.sh`
|
||||
- `scripts/verify-probe.sh`
|
||||
- `scripts/run-step.sh <step-id> <task|solution>`
|
||||
- `scripts/check-step.sh <step-id>`
|
||||
|
||||
## Target Contract (Embedded Steps 04-08)
|
||||
|
||||
- Target: `thumbv7m-none-eabi`
|
||||
- Runner: `probe-rs run --chip STM32F103C8`
|
||||
- Logging: `defmt-rtt` + `panic-probe`
|
||||
|
||||
## Acceptance Scenarios
|
||||
|
||||
1. Steps `01`-`03`: `cargo run` funktioniert für `task/` und `solution/`.
|
||||
2. Steps `04`-`08`: `cargo build --release` funktioniert für `task/` und `solution/`.
|
||||
3. Probe-Verbindung:
|
||||
- `probe-rs list` erkennt ST-Link.
|
||||
4. Behavior:
|
||||
- `05`: LED blinkt
|
||||
- `06`: Press/Release Logs
|
||||
- `07`: ADC-Wert reagiert auf Eingang
|
||||
- `08`: integriertes Verhalten läuft stabil
|
||||
Reference in New Issue
Block a user