diff mbox series

[v2] Add a blog post about micro:bit emulation

Message ID 20190522104348.15616-1-stefanha@redhat.com (mailing list archive)
State New, archived
Headers show
Series [v2] Add a blog post about micro:bit emulation | expand

Commit Message

Stefan Hajnoczi May 22, 2019, 10:43 a.m. UTC
QEMU 4.0 ships the core micro:bit emulation that was implemented during
Outreachy and GSoC 2018.  This blog posts explains how to use it and
describes the current status.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
v2:
 * Used git format-patch --binary to include .png file contents [thuth]
 * s/runtime/run-time/ [thuth]

 _posts/2019-05-21-microbit.md | 132 ++++++++++++++++++++++++++++++++++
 screenshots/makecode.png      | Bin 0 -> 55960 bytes
 2 files changed, 132 insertions(+)
 create mode 100644 _posts/2019-05-21-microbit.md
 create mode 100644 screenshots/makecode.png

diff --git a/screenshots/makecode.png b/screenshots/makecode.png
new file mode 100644
index 0000000000000000000000000000000000000000..f67576829bbaa2b64002a987e46f74b19e242937
GIT binary patch
literal 55960
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

literal 0
HcmV?d00001

Comments

Thomas Huth May 22, 2019, 11:03 a.m. UTC | #1
On 22/05/2019 12.43, Stefan Hajnoczi wrote:
> QEMU 4.0 ships the core micro:bit emulation that was implemented during
> Outreachy and GSoC 2018.  This blog posts explains how to use it and
> describes the current status.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> v2:
>  * Used git format-patch --binary to include .png file contents [thuth]
>  * s/runtime/run-time/ [thuth]

Thanks, I've pushed it now to the repo / website.

 Thomas
diff mbox series

Patch

diff --git a/_posts/2019-05-21-microbit.md b/_posts/2019-05-21-microbit.md
new file mode 100644
index 0000000..2577ccc
--- /dev/null
+++ b/_posts/2019-05-21-microbit.md
@@ -0,0 +1,132 @@ 
+---
+layout: post
+title:  "QEMU 4.0 adds micro:bit emulation support"
+date:   2019-05-21 07:45:00 +0200
+categories: ['qemu 4', microbit, gsoc, outreachy, internships]
+---
+[micro:bit](http://microbit.org/) emulation support is available from QEMU 4.0
+onwards and can be used for low-level software testing and development.  Unlike
+existing micro:bit simulators, QEMU performs full-system emulation and actually
+runs the same ARM code as the real hardware.  This blog post explains what
+full-system emulation means and why QEMU is now a useful tool for developing
+micro:bit software.
+
+The [micro:bit is a tiny ARM board](https://tech.microbit.org/hardware/)
+designed for teaching.  It is increasingly being used around the world to
+expose children to computers, programming, and electronics in a low-cost way
+with an active online community that shares project ideas, lesson plans, and
+programming tips.
+
+![micro:bit board](https://pxt.azureedge.net/blob/12e4685e5f24df67255a242bccb4d1c8e1395e5f/static/courses/csintro/making/microbit-board.png)
+
+## Simulators and emulators
+*Simulators* are used for many tasks from mobile app development to
+performance analysis of computer hardware.  It is possible to develop code
+using a simulator without having access to real hardware.  Oftentimes using a
+simulator is more convenient than flashing and debugging programs on real
+hardware.
+
+*Emulators* allow programs written for one computer system to run on a
+different computer system.  They use techniques like [machine code
+interpreters](https://en.wikipedia.org/wiki/Interpreter_%28computing%29) and
+[just-in-time
+compilers](https://en.wikipedia.org/wiki/Just-in-time_compilation) to execute
+guest programs that do not run natively on the host computer.  Each CPU
+instruction must be correctly implemented by the emulator so it can run guest
+software.
+
+## How existing micro:bit simulators work
+Simulators can be implemented at various layers in the software stack.  The
+[MakeCode editor](https://makecode.microbit.org/#editor) for JavaScript
+development includes a micro:bit simulator:
+
+![MakeCode editor](/screenshots/makecode.png)
+
+This simulator does not execute any ARM code and is therefore not running
+the same CPU instructions as a real micro:bit.  Instead it reuses the JavaScript
+engine already available in your web browser to execute micro:bit JavaScript
+programs.  This is achieved by providing the micro:bit JavaScript APIs that
+micro:bit programs expect.  The programs don't need to know whether those APIs
+are implemented by the real micro:bit software stack or whether they are
+actually calling into the MakeCode simulator.
+
+In the screenshot above the micro:bit program calls `showString("Hello
+world!")` and this becomes a call into the MakeCode simulator code to
+render images of LEDs in the web browser.  On real hardware the code path is
+different and eventually leads to an LED matrix driver that lights
+up the LEDs by driving output pins on the micro:bit board.
+
+## Full-system emulation
+Unlike the MakeCode simulator, QEMU emulates the micro:bit CPU and boots
+from the same ARM code as the real micro:bit board.  The simulation happens at
+the CPU instruction and hardware interface level instead of at the JavaScript
+API level.  This is called *full-system emulation* because the entire
+guest software environment is present.
+
+What are the advantages of full-system emulation?
+* 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
+
+The main disadvantage of full-system emulation is that the performance
+overhead is higher since simulation happens at the CPU instruction level.
+Programs consist of many CPU instructions so the task of emulation is
+performance-sensitive.  Luckily the micro:bit's CPU is much less powerful than
+CPUs available in our laptops and desktops, so programs execute at a reasonable
+speed.
+
+## Running micro:bit programs on QEMU
+QEMU emulates 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.
+
+To run `test.hex`:
+```shell
+$ qemu-system-arm -M microbit -device loader,file=test.hex -serial stdio
+```
+
+Any output written to the serial port is printed to the terminal by QEMU.
+
+## Debugging micro:bit programs with QEMU and GDB
+QEMU has GDB guest debugging support.  This means GDB can connect to QEMU in
+order to debug the guest software.  This is similar to debugging a real system
+over JTAG, except no hardware is necessary!
+
+Connect with GDB to debug the guest:
+```
+$ qemu-system-arm -M microbit -device loader,file=test.hex -s
+$ gdb
+(gdb) target remote tcp:127.0.0.1:1234
+(gdb) x/10i $pc
+=> 0x161c4:	ldr	r3, [r4, #0]
+   0x161c6:	cmp	r3, #0
+   0x161c8:	beq.n	0x161d2
+   0x161ca:	ldr	r3, [pc, #48]	; (0x161fc)
+   0x161cc:	ldr	r3, [r3, #0]
+   0x161ce:	cmp	r3, #0
+   0x161d0:	bne.n	0x161d8
+   0x161d2:	movs	r0, #6
+   0x161d4:	bl	0x16160
+   0x161d8:	ldr	r0, [r4, #0]
+```
+
+Having a debugger is very powerful.  QEMU can also load ELF files in
+addition to the popular .hex files used for micro:bit programs.  ELF files can
+contain debugging information that enables source-level debugging so GDB can
+display function and variable names as well as listing the source code instead
+of showing assembly instructions.
+
+## Conclusion
+QEMU now offers a platform for developing and testing micro:bit programs.
+It is open to future extension, hopefully to emulate more devices and offer
+a graphical user interface.
+
+micro:bit emulation was contributed by Julia Suvorova and Steffen Görtz as
+part of their Outreachy and Google Summer of Code internships with QEMU.  Jim
+Mussared, Joel Stanley, and Stefan Hajnoczi acted as mentors and contributed
+patches as well.