| .. _chapter-lm3s6965evb-qemu: |
| |
| .. default-domain:: cpp |
| |
| .. highlight:: sh |
| |
| ---------------- |
| lm3s6965evb-qemu |
| ---------------- |
| This target is specifically for emulation of the Texas Instruments Stellaris |
| LM3S lm3s6965evb using QEMU. This may be useful for testing ARMv7-M code without |
| physical hardware. |
| |
| This target configuration has **not** been tested on the physical Stellaris |
| development board. |
| |
| Building |
| ======== |
| To build for this Pigweed target, simply build the top-level "qemu" Ninja |
| target. |
| |
| .. code:: sh |
| |
| $ ninja -C out qemu |
| |
| Testing |
| ======= |
| This target does not yet support automatic test running (though it would be |
| relatively easy to do so). To run a QEMU binary, see the instructions below. |
| |
| Executing Binaries |
| ================== |
| When running a QEMU binary, you may chose to run it interactively with GDB, or |
| allow the binary to run in a hands-off manner. |
| |
| Running Without GDB |
| ------------------- |
| When running without GDB, the firmware will execute normally without requiring |
| further interaction. |
| |
| .. code:: sh |
| |
| $ qemu-system-arm -cpu cortex-m3 -machine lm3s6965evb \ |
| -nographic -no-reboot \ |
| -kernel path/to/firmware.elf |
| |
| Run With GDB |
| ------------------ |
| When running with GDB, execution of the binary will begin in a halted state. To |
| begin running the code, you must connect using GDB, set any breakpoints you |
| wish, and then continue execution. |
| |
| .. code:: sh |
| |
| # Start the VM and GDB server. |
| $ qemu-system-arm -cpu cortex-m3 -machine lm3s6965evb \ |
| -gdb tcp::3333 -S |
| -nographic -no-reboot \ |
| -kernel path/to/firmware.elf |
| |
| In another window |
| |
| .. code:: sh |
| |
| $ arm-none-eabi-gdb path/to/firmare.elf |
| (gdb) target remote :3333 |
| (gdb) break SomeFunction() |
| (gdb) continue |