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


10

¿Cómo depuro (código fuente paso único) 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? Supongo que, dado que la placa Uno está poblada con un ATmega328, ¿debería estar disponible el código fuente de un solo paso? También supongo que puedo usar un AVR JTAGICE mkII o un AVR Dragon sobre el encabezado ICSP.

Pregunta 2: servidor GDB

Luego noté 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 funcionamiento, ¿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 usa las bibliotecas Ardino?

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


Respuestas:


3

Puede encontrar los artefactos del compilador manteniendo presionada la tecla Mayús al hacer clic en el botón de compilación en una versión anterior del IDE (lectura <1.0). En las versiones más recientes (lectura> = 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 una salida detallada, la carpeta donde terminan todas las salidas del compilador se imprime (repetidamente) en la consola. Eso debería comenzar al menos.

captura de pantalla Arduino muestra salida detallada durante la compilación

En una nota al margen, hubo todo tipo de conversaciones sobre este tema en la lista de desarrolladores de Arduino a principios de junio de 2012 y alguien publicó un anuncio en la lista de desarrolladores de Arduino sobre una forma mejorada / integrada de depuración de GDB para Arduino, pero no he investigado Es mucho más lejos. Supongo que el proyecto se llama VisualMicro (?). Parece que se ha creado como un complemento de Visual Studio, por lo que es posible que no sea útil para usted en un entorno Linux, y además está en beta, pero le dejaré decidir.


Habilité la opción "Habilitar salida detallada durante la compilación" y usan algo como /tmp/build3652385594823436592.tmp/ como su directorio de compilación, también el duende se construyó con la bandera -g, por lo que debería contener los símbolos de depuración. Eso significa que he encontrado los artefactos de construcción, ahora solo necesito hacer que el jtag funcione.
Johan

3

El simulador de procesador Simavr AVR ahora proporciona un buen servidor GDB para la depuración de firmware AVR, incluido Arduino. Puede usarlo solo (requiere que escriba una pequeña aplicación de consola para su configuración de hardware particular) o desde el entorno de la 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 todo el hardware está simulado.


2

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

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

¡Espero que esto ayude!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.