micro:bit machine type
Summary: Add emulation support for the micro:bit board
The micro:bit is a small computer for educational use that is also suitable for embedded and Internet of Things (IoT) projects. It uses a 16 MHz ARM Cortex-M0 processor with 256 KB flash and 16 KB RAM. It features many I/O capabilities including a 5x5 LED display, 2 buttons, Bluetooth and Nordic Gazell radio communications, an accelerometer, a compass, temperature and light sensing, UART, and GPIO pins for external devices.
This project involves:
- Implementing ARM Cortex-M0 CPU support based on existing Cortex-M3 support in QEMU
- Implementing a micro:bit .hex ROM loader
- Implementing a "microbit" machine type
- Implementing at least the 5x5 LED display, buttons, and UART.
- Stubbing out other devices as needed for the runtime to start successfully.
Previous experience with low-level systems software (firmware, bootloaders, kernels) and hardware (Arduino, PIC, microcontrollers) is recommended. Start by looking at the reference design schematic to understand how the micro:bit works.
- Skill level: advanced
- Language: C
- Mentors: Stefan Hajnoczi <email@example.com> ('stefanha' on IRC), Jim Mussared <firstname.lastname@example.org>, Joel Stanley <email@example.com>