Features/MicroBit
The micro:bit is a small ARMv6-M board designed for learning about computers. It can be programmed in Python, Javascript, and C/C++.
Julia Suvorova and Steffen Görtz are implementing micro:bit support in QEMU as part of the Outreachy and Google Summer of Code internship program.
Details
- Project branch: https://github.com/stefanha/qemu/tree/microbit
Patches
Date | Name | Message ID | Status |
---|---|---|---|
5/3/18 | [email protected] | superseded | |
5/29/18 | [RFC 0/3] nRF51 SoC: Add UART support | [email protected] | Not merged |
6/2/18 | [email protected] | superseded | |
6/3/18 | [RFC v3] qapi: command category to stimulate high-level machine devices | [email protected] | not merged |
6/10/18 | [email protected] | superseded | |
6/12/18 | [PATCH] target/arm: Allow ARMv6-M Thumb2 instructions | [email protected] | merged |
6/14/18 | [RFC v2] target/arm: add ARMv6-M UNDEFINED 32-bit instruction test | [email protected] | not merged |
6/18/18 | [PATCH] target/arm: Minor cleanup for ARMv6-M 32-bit instructions | [email protected] | merged |
6/19/18 | [email protected] | superseded | |
6/19/18 | [email protected] | superseded | |
6/22/18 | [PATCH v2 0/2] Strict alignment for ARMv6-M and ARMv8-M Baseline | [email protected] | merged |
6/26/18 | [email protected] | superseded | |
6/26/18 | [email protected] | superseded | |
6/26/18 | [email protected] | superseded | |
6/27/18 | [PATCH v2 0/3] arm: Add nRF51 SoC and micro:bit machine | [email protected] | not merged |
6/27/18 | [RFC 0/8] arm: Changes to Microbit Board and NRF51 SOC | [email protected] | not merged |
6/30/18 | [PATCH v2 0/3] arm: add skeleton Cortex M0 CPU model | [email protected] | not merged |
7/2/18 | [PATCH] qtest: Use cpu address space instead of system memory | [email protected] | merged |
7/4/18 | [email protected] | superseded | |
7/4/18 | [email protected] | superseded | |
7/5/18 | [email protected] | superseded | |
7/5/18 | [PATCH v3 0/2] nvic: Handle ARMv6-M SCS reserved registers | [email protected] | queued |
7/5/18 | [PATCH v2] target/arm: Forbid unprivileged mode for M Baseline | [email protected] | queued |
7/12/18 | [RFC v3 0/2] Add NRF51 SOC non-volatile memory controller | [email protected] | not merged |
7/13/18 | [PATCH] arm: Add ARMv6-M programmer's model support | [email protected] | not merged |
7/13/18 | [RFC v3] arm: Add NRF51 random number generator peripheral | [email protected] | not merged |
7/15/18 | [email protected] | superseded | |
7/16/18 | [RFC v2 1/2] arm: Add nRF51 GPIO peripheral | [email protected] | not merged |
7/25/18 | [email protected] | superseded | |
7/26/18 | [email protected] | superseded | |
8/3/18 | [PATCH v6 0/7] arm: add Cortex M0 CPU model and hex file loader | [email protected] | merged |
7/26/18 | [PATCH v5 0/3] arm: Add nRF51 SoC and micro:bit machine | [email protected] | not merged |
8/6/18 | [PATCH 0/7] arm: nRF51 Devices and Microbit Support | [email protected] | not merged |
8/11/18 | [PATCH 0/7] arm: Instantiation of nRF51 SOC and bbc:microbit devices | [email protected] | not merged |
8/31/18 | [PATCH v6 0/3] arm: Add nRF51 SoC and micro:bit machine | [email protected] | merged |
// | UART v3 | [email protected] | merged |
10/30/18 | [PATCH v3 00/13] arm: nRF51 Devices and Microbit Support | [email protected] | not merged |
11/2/18 | [PATCH v4 00/13] arm: nRF51 Devices and Microbit Support | [email protected] | not merged |
Patches not contributed by the gang, but necessary for the microbit tree:
Date | Name | Message ID | Status |
---|---|---|---|
5/16/18 | [PATCH v9 0/2] Implement Hex file loader and add test case | [email protected] | merged |
6/1/18 | [PATCH 0/2] armv7m: Remove armv7m_init() function | [email protected] | merged |
7/13/18 | [PATCH v2 00/16] Fix crashes with introspection of ARM devices | We need to adapt our devices according to this patch | ?? |
Devices
nRF51 System-on-Chip
- Cortex M0 (ARMv6-M) CPU
- SysTick timer
- NVIC irq controller
UART[Julia]- Watchdog
- Clock controller [Julia]
Timers[Steffen]- RTC
RNG[Steffen]- TWI (i2c)
- SPI
- ADC
- Quadrature decoder
- Radio
GPIO[Steffen]NVMC[Steffen]SWI[Steffen] [seem to be covered by the NVIC without any work to do]
bbc:microbit
- A & B Buttons [Steffen]
- 5x5 LEDs [Steffen]
- i2c Accelerometer/Magnetometer
User interface
- New WebSocket QMP monitor for UI commands
- Button commands
- LED update events
- HTML/Javascript frontend that connects to WebSocket UI monitor