3446d440f6
This drops the `.cpu` directive from the ARM gchelper_*.s files. Having this directive breaks the linker when targeting older CPUs (e.g. `-mthumb -mthumb-interwork` for `-mcpu=arm7tdmi`). The actual target CPU should be determined by the compiler options. The exact CPU doesn't actually matter, but rather the supported assembly instruction set. So the files are renamed to *_thumb1.s and *thumb2.s to indicate the instruction set support instead of the CPU support. Signed-off-by: David Lechner <david@pybricks.com> |
||
---|---|---|
.. | ||
test-frzmpy | ||
Makefile | ||
Makefile.test | ||
README.md | ||
imx6.ld | ||
main.c | ||
modmachine.c | ||
mpconfigport.h | ||
mphalport.h | ||
mps2.ld | ||
nrf51.ld | ||
qstrdefsport.h | ||
startup.c | ||
stm32.ld | ||
test_main.c | ||
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:
- Continuous integration
- run tests against architecture-specific parts of code base
- Experimentation
- simulation & prototyping of anything that has architecture-specific code
- exploring instruction set in terms of optimising some part of MicroPython or a module
- 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