aboutsummaryrefslogtreecommitdiff
path: root/targets/lm3s6965evb_qemu/target_docs.rst
blob: b5f5b84f7c84ed55e35d2a84e2c52c3ead52374a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
.. _target-lm3s6965evb-qemu:

----------------
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_gcc" Ninja
target.

.. code:: sh

  $ ninja -C out qemu_gcc

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