circuitpython/ports/qemu-arm
Angus Gratton 861fbf6ab5 examples: Mark asm, pio, etc. as noqa: F821 (undefined-name).
These files all use decorators (@asm_thumb, @asm_pio) that add names to the
function scope, that the linter cannot see.

It's useful to clear them in the file not in pyproject.toml as example code
will be copied and adapted elsewhere, and those developers may also use
Ruff (we hope!)

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2023-08-16 16:12:33 +10: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 all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
README.md docs: Update links for Arm GCC toolchain. 2022-08-11 14:27:06 +10:00
imx6.ld qemu-arm: Add support for Cortex-A9 via sabrelite board. 2021-05-26 16:24:00 +10:00
main.c ports: Use default VFS config for import_stat and builtin_open. 2022-05-25 13:04:45 +10:00
modmachine.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
mpconfigport.h extmod/moddeflate: Add deflate module providing the DeflateIO class. 2023-07-21 19:32:40 +10:00
mphalport.h qemu-arm: Rework to run bare-metal on boards with Cortex-M CPUs. 2019-02-12 13:50:01 +11:00
mps2.ld qemu-arm: Rework to run bare-metal on boards with Cortex-M CPUs. 2019-02-12 13:50:01 +11:00
nrf51.ld qemu-arm: Rework to run bare-metal on boards with Cortex-M CPUs. 2019-02-12 13:50:01 +11:00
qstrdefsport.h all: Add *FORMAT-OFF* in various places. 2020-02-28 10:31:07 +11:00
startup.c qemu-arm: Add support for Cortex-A9 via sabrelite board. 2021-05-26 16:24:00 +10:00
stm32.ld qemu-arm: Rework to run bare-metal on boards with Cortex-M CPUs. 2019-02-12 13:50:01 +11:00
test_main.c ports: Use default VFS config for import_stat and builtin_open. 2022-05-25 13:04:45 +10:00
uart.c qemu-arm: Add support for Cortex-A9 via sabrelite board. 2021-05-26 16:24:00 +10:00
uart.h qemu-arm: Rework to run bare-metal on boards with Cortex-M CPUs. 2019-02-12 13:50:01 +11:00

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