¿Cómo depuro un Arduino Uno con gdb en una PC con Linux?

10

¿Cómo depuro (paso único en código fuente) un Arduino Uno con gdb en una PC con Linux? Tenga en cuenta que no me gusta usar AVR Studio en wine o VirtualBox.

Pregunta 1: conexión física

¿Cómo y qué me conecto a la placa Uno? Mi conjetura es que, dado que la placa Uno se rellena con un ATmega328, ¿debería estar disponible el código fuente de un solo paso? También creo que puedo usar un AVR JTAGICE mkII o un AVR Dragon sobre el encabezado ICSP?

Pregunta 2: servidor GDB

Luego me di cuenta de que hay algunos proyectos como AVaRICE que parecen proporcionar una función jtag a gdb, pero puede haber otros proyectos. ?

Pregunta 3: ¿Dónde está el elfo?

Y si lo pongo en marcha, ¿dónde oculta el IDE de Arduino la salida generada como el archivo elf con símbolos de depuración (debería haber uno)? ¿O necesito generar un Makefile clásico que solo use las librerías Ardino?

Traté de encontrar información sobre qué / cómo usar, pero solo encontré esas pistas que me indicaron lo que podía hacer. ¿Puede alguien empujarme en la dirección correcta?

    
pregunta Johan

3 respuestas

3

Puede encontrar los artefactos del compilador presionando la tecla Mayús al hacer clic en el botón de compilación en la versión anterior del IDE (lea < 1.0). En las versiones más nuevas (lea > = 1.0) hay una opción en el cuadro de diálogo de preferencias para mostrar resultados detallados durante la compilación (ver captura de pantalla). Con salida detallada, la carpeta donde terminan todas las salidas del compilador se imprime (repetidamente) en la consola. Eso debería hacerte comenzar por lo menos.

Enunanotaalmargen,hubotodotipodecharlassobreestetemaenlalistadedesarrolladoresdeArduinoanteriormente en junio de 2012 y alguien publicó un anuncio en la lista de desarrolladores de Arduino sobre una forma mejorada / integrada de depuración GDB para Arduino, pero no lo he investigado mucho más. Supongo que el proyecto se llama VisualMicro (?). Parece que se ha creado como un complemento de Visual Studio, por lo que puede que no te sea útil en un entorno Linux, y además está en una versión beta, pero te dejaré decidirlo.

    
respondido por el vicatcu
3

Simavr simulador de procesador AVR ahora proporciona un buen servidor GDB para la depuración de firvare AVR, incluido Arduino. Puede usarlo por su cuenta (requiere que escriba una aplicación de consola pequeña para su configuración de hardware particular) o desde entorno GUI de Simutron , donde puede definir su configuración de hardware a través de la captura esquemática.

Nota: con estas herramientas no tiene una conexión física, ya que se simula todo el hardware.

    
respondido por el hovercraft
2

Esto se responde en un artículo de la revista linux al que se hace referencia en una pregunta similar: Jtag debugging AVR .

Básicamente, utilizando avr-gdb y simulavr en tándem, puede ejecutar su software en una selección de microcontroladores AVR a través del simulador, mientras usa GDB para avanzar y observar el código de ejecución.

Espero que esto ayude!

    
respondido por el slurms

Lea otras preguntas en las etiquetas