Chokepoint

A motor controller has two interrupt sources: an emergency stop sensor on PA0 (EXTI0) and a telemetry timer (TIM2). When the emergency stop triggers during telemetry collection, it MUST preempt immediately. Safety-critical events can't wait for background work.

Both interrupts fire and both messages appear on UART. But the emergency stop message comes out AFTER the telemetry; it's being blocked by lower-priority work.

On Cortex-M4, NVIC priorities determine which ISR can preempt which. Lower numeric priority = higher urgency, and only the top bits of each priority byte are implemented. The grader checks that the emergency stop is configured strictly more urgent than the telemetry timer so it can interrupt background work; you decide the exact priority bytes.

When the emergency sensor fires during telemetry collection, the emergency message must appear before the telemetry message, with the completion message last: three lines total (ESTOP, TELEM, DONE), each on its own line.

Loading the interactive arena.