micropython/ports/qemu-arm
Damien George 3e2706a18d extmod/modmachine: Consolidate mem, i2c and spi headers to modmachine.h.
The contents of machine_mem.h, machine_i2c.h and machine_spi.h have been
moved into extmod/modmachine.h.

Signed-off-by: Damien George <damien@micropython.org>
2023-10-26 17:40:22 +11:00
..
test-frzmpy examples: Mark asm, pio, etc. as noqa: F821 (undefined-name). 2023-08-16 16:12:33 +10:00
Makefile py/mkrules.mk: Automatically configure frozen options when manifest set. 2023-06-08 23:12:56 +10:00
Makefile.test
README.md
imx6.ld
main.c py/builtinevex: Handle invalid filenames for execfile. 2023-10-12 15:17:59 +11:00
modmachine.c extmod/modmachine: Consolidate mem, i2c and spi headers to modmachine.h. 2023-10-26 17:40:22 +11:00
mpconfigport.h extmod/moddeflate: Add deflate module providing the DeflateIO class. 2023-07-21 19:32:40 +10:00
mphalport.h
mps2.ld
nrf51.ld
qstrdefsport.h
startup.c
stm32.ld
test_main.c py/builtinevex: Handle invalid filenames for execfile. 2023-10-12 15:17:59 +11:00
uart.c
uart.h

README.md

This is experimental, community-supported port for Cortex-M emulation as provided by QEMU (http://qemu.org).

The purposes of this port are to enable:

  1. Continuous integration
    • run tests against architecture-specific parts of code base
  2. Experimentation
    • simulation & prototyping of anything that has architecture-specific code
    • exploring instruction set in terms of optimising some part of MicroPython or a module
  3. Streamlined debugging
    • no need for JTAG or even an MCU chip itself
    • no need to use OpenOCD or anything else that might slow down the process in terms of plugging things together, pressing buttons, etc.

This port will only work with the [GNU ARM Embedded Toolchain]( https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads and not with CodeSourcery toolchain. You will need to modify LDFLAGS if you want to use CodeSourcery's version of arm-none-eabi. The difference is that CodeSourcery needs -T generic-m-hosted.ld while ARM's version requires --specs=nano.specs --specs=rdimon.specs to be passed to the linker.

To build and run image with builtin testsuite:

make -f Makefile.test test