QEMU short for Quick Emulator is an open-source emulator that has now been extended to emulate a complete micro:bit running exactly the same software as on the real device.
Micro:bit simulators are already available for many of the high level languages that it runs. These aren't true emulators as they simply use the language implementation to run the code.
The advantages are:
- Programs written in any language can run (MicroPython, mbed C/C++, etc)
- Boot, device driver, and language run-time code can be tested
- Bugs in lower layers of the software stack can be reproduced
- CPU architecture-specific bugs can be reproduced (stack and memory corruption bugs)
- A debugger can be connected to inspect the entire software stack
Of course the disadvantage is that emulation is slower than the real thing The.emulation includes the core devices on the micro:bit, including the serial port (UART) and timers. This is enough for developing and testing low-level software but does not offer the LEDs, radio, and other devices that most micro:bit programs rely on. These devices might be emulated by QEMU in the future, but for now the main use of QEMU is for developing and testing low-level micro:bit code.