Skip to content
storagebits
← Projects

Hubris on a NUCLEO-F412ZG

Oxide's embedded OS brought up on a NUCLEO-F412ZG, a board it does not support, at 100 MHz. The kernel did not change by a line; the debugger needed two fixes.

fork of Oxide
The NUCLEO-F412ZG board plugged in over USB, its green, blue and red LEDs lit.

Hubris is the small Rust OS that Oxide Computer runs on the service processors of its servers; Humility is its debugger. Neither supports the STM32F412 of the NUCLEO-F412ZG, an ST development board.

  • The kernel: unchanged.
  • The board and the app: pure additions, with the clock tree configured for 100 MHz.
  • Three shared drivers adapted, about 150 lines, without changing what the existing Discovery board builds.
  • Humility: two fixes, kept in this fork.

What runs on the board: first light on the three LEDs, a console on the ST-LINK’s virtual serial port, and a demonstration of the memory protection unit, where a task faults on purpose and the supervisor restarts it. The whole port is told, layer by layer, in the post below.