What is an Emulator?

  • Console
  • Desktop
  • CPU

Whole-System Emulator

  • Wii Virtual Console
  • VirtualBox
  • Parallels

Transparent Emulator

  • HyperV
  • WSL2/Docker
  • qemu on Linux
  • Rosetta on Mac

Debugger/Emulator

  • FCEUX (Nintendo Entertainment System)
  • Dolphin (Wii / Gamecube)

Renode Is All of These

  • Console: Able to present an interactive environment
  • Transparent: Can run in CI via Robot commands
  • Debugger: Has a GDB server built in

Example of Weird Hardware

  • NRF52840
  • LM74 Temperature Sensor

Example of Weird Hardware

  • NRF52833
  • LM74 Temperature Sensor

Example of Weird Hardware

  • BlueNRG1
  • LM74 Temperature Sensor

Example of Weird Hardware

  • RISC-V
  • FPGA-based framebuffer
  • Initial graphical demo in 1 hour

What makes hardware "Weird"?

  • Unusual CPU architecture
  • Different model of chip than commonly found
  • Additional hardware
  • More CPUs per board

Unusual CPU architecture

Sorry, can't help

Different model CPU

  • Maybe it's just a variant
  • Perhaps memory regions were shuffled
  • Does it use the same hardware block as someone else?

New hardware version

  • Do you use the new, specialized features?
  • Lots of UARTs support Infrared. Do you need that?

Completely new hardware

  • Time to break out C#

What is "Firmware"?

How does this interact with $VENDOR_TOOL?

What about boot ROMs?

What about missing registers?

  • Very few projects use built-in blocks

SVD Files

Logging Memory Accesses

Debugging with GDB