Difference between revisions of "Dev/Debugging"

From PaparazziUAV
Jump to navigation Jump to search
m
(delete this page)
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Introduction =
== GDB via JTAG ==
GDB can be used for debugging the code on the boards.
GDB and JTAG can be used for debugging the code directly on the boards. Here are a couple of words on [[JTAG]] itself and the [[DevGuide/JTAG-Debug|debugging process]].


= Procedure =
== Test programs ==
# Start openocd in a new shell since this process needs to remain running.
:-)
#: To program the Lisa/L board run the command
#:<pre>openocd -f interface/lisa-l.cfg -f board/lisa-l.cfg</pre>
# Start GDB with an argument of the elf file created and uploaded to the board.
#: If you programmed with the ap target then the command would be along the lines of
#:<pre>arm-none-eabi-gdb var/<airframe>/ap/ap.elf</pre>
#: Replace <airframe> with the name of the airframe that has been built.
# Now connect GDB to the board
#:<pre>target remote localhost:3333</pre>
# Now we need to set some break points in the code.
#: In this example the ap target was part of the rotorcraft and main.c contains the main program. Open rotorcraft sw/airborne/firmwares/rotorcraft/main.c and find a line at which you'd like to set a break point.
#: <pre>break main.c:113</pre>
# Stop the currently running code
#: <pre>monitor reset halt</pre>
# Reset the code back to the start
#: <pre>monitor reset init</pre>
# We probably want to ignore the interrupt calls for the moment so we can step through the code as it's being called. Note that we don't always want to do this.
#:<pre>monitor cortex_m3 maskisr on</pre>
# Now we can run the program which will stop at the break point we set.
#:<pre>continue</pre>


== Useful commands ==
* A stack trace can be printed with the command
*:<pre>bt</pre>


[[Category:Software]] [[Category:Developer_Documentation]]
[[Category:Software]] [[Category:Developer_Documentation]] [[Category:DeleteMe]]

Latest revision as of 10:34, 21 April 2014

GDB via JTAG

GDB and JTAG can be used for debugging the code directly on the boards. Here are a couple of words on JTAG itself and the debugging process.

Test programs

:-)