CS 452/652 Spring 2025 - Lecture 23
TC2 Debrief, Recap
July 24, 2025 prev
TC2 Debrief
- Demo Mindset!
- smooth initialization/startup important for demo
- activate in loop, then calibrate, then park (one train at a time)
- activate in exit, then calibrate, then park (multiplet trains)
- train tracking / sensor attribution
- recovery from deadspots - use lower- and upper-bound timer
- simple collision detection & avoidance
- path reservation, turnout switching
- in-path reverse needs very good velocity estimation
- routing, path finding
- technical debt
- kernel, debugging, UI
- routing/reservation in lieu of simple collisin detection?
- modularity
Recap
Hardware
- Raspberry Pi 4, Broadcom 2711, ARMv8
- memory model, assembly, device access (timer, UART)
- serial communication including CTS
- system registers, interrupt controller, exception vectors
- memory & CPU caches
Real-world Components
- Märklin tracks & trains
- control interface & quirks
- velocity and acceleration models
- failures
Systems Software
- cross compilation, linking, loading, initialization
- freestanding runtime environment
- slab allocation, free list, intrusive linkage
- ABI details
- concurrency and race conditions
- data representation
Operating System
- polling loop vs. task scheduling
- context switching: system call vs. interrupts
- scheduling, priorities, idle
- send-receive-reply message passing
Software Development
- sizable software system
- full control and responsibility
- challenging development environment
- optimization
- performance & measurements
- experimentation
Software Design & Control
- server & worker patterns
- layered control components
- domain-specific design
Theory
- latency analysis
- priority inversion
- scheduling & admission control