¿Hay alguna manera de establecer puntos de interrupción en el nivel de origen, ejecutar el código en hardware real y poder inspeccionar variables y continuar?¿Cómo se puede depurar el código Arduino que se ejecuta en el hardware Arduino?
Respuesta
La manera de establecer "puntos de interrupción de origen" en el Arduino es agregar una salida en serie para enviar el valor que desea ver al monitor serie.
Cuando esté listo, el próximo paso es pasar a WinAVR, AVR Studio y Atmel JTAG Mark II o Atmel Dragon.
Estos programas y dispositivos le permitirán crear código C y un solo paso a través del código y supervisar variables y registros. Los dispositivos JTAG pueden pasar por su código C o el código de ensamblado creado por el compilador.
Tenga en cuenta que la programación C de alto nivel está muy cerca de la máquina y debe tener cuidado con rutinas de interrupción de paso único, rutinas de temporizador y otras rutinas de bajo nivel porque muchas veces evitará que el código funcione correctamente.
El complemento Visual Micro para Microsoft Visual Studio 2015 Community Edition (gratis) proporciona un depurador USB para Arduino. Te permite hacer exactamente lo que describes. (No olvides hacer clic para instalar C++ durante la instalación de IDE)
El depurador admite serial, RF, Bluetooth y algunos Wi-Fi. Permite ver o actualizar los valores de las variables mientras se ejecuta Arduino. Las visualizaciones de gráfico/datos/pin junto con watch, trace, break están incluidas.
Noticias: Enero el año 2016 también incluye la liberación de un depurador GDB para el Arduino cero. Al igual que con el depurador Serial/Bluetooth, la versión GDB es compatible con el código fuente ino/cpp, pero también admite la depuración del núcleo y las bibliotecas de Arduino. Es compatible con muchas funciones, tales como: paso adelante, paso, instrucción de paso o línea fuente, memoria, registros, locales, reloj, expresiones en vivo y seguimiento de pila.
¿Se puede usar también para depurar C y ensamblar? – Pyjong
@pyjong El depurador predeterminado usa Serial o Wifi que no funcionará desde c, solo funcionará con .Ino y .cpp. Sin embargo, si su placa es compatible con Gdb o tiene un depurador de hardware, existen otras opciones, así que abra un hilo en nuestro foro y formule una pregunta. Lo responderemos y asistiremos. Gracias –
¿No hay algunos requisitos para que el hardware funcione? P.ej. ¿Funcionaría en un Arduino Uno? (Un lead puede ser * [Debugger for Arduino] (https://www.codeproject.com/Articles/1037057/Debugger-for-Arduino) * (The Code Project).) –
Para inspeccionar las variables, simplemente las imprimo en el monitor de serie. He aquí un ejemplo que estoy trabajando en la actualidad
# Setup
Serial.begin(9600);
# Loop
Serial.println(String(index) + " : " + String(total) + " : " + String(average));
- 1. Arduino Eclipse No se puede resolver el Serial
- 2. Arduino stepper
- 3. Control de iluminación con el Arduino
- 4. Arduino Interrupciones en serie
- 5. HTTPS alternativa en Arduino
- 6. Arduino: La instalación() no se iniciará
- 7. Detectar el puerto Arduino en Python
- 8. Vectores en Arduino
- 9. Enviando MIDI por el USB usando Arduino
- 10. ¿Se puede utilizar el nodo-inspector de depurar una aplicación que se ejecuta con Node.js capataz
- 11. Arduino + módulo Bluetooth + Android
- 12. ¿Cómo se puede depurar el servicio web?
- 13. try/catch block en Arduino
- 14. Arduino map() method - why?
- 15. Arduino y Bitwise, resultado inesperado
- 16. Crear bibliotecas para Arduino
- 17. Transmisión en serie lenta Arduino
- 18. Usando el iPhone LCD con Arduino
- 19. Arduino ALTO BAJO
- 20. ¿Cómo se comunica el software/código con el hardware?
- 21. Comenzando con Arduino?
- 22. Crear el bloque Simulink para la biblioteca Arduino como liquidcrystal
- 23. ¿Cómo detectar automáticamente el puerto COM de Arduino?
- 24. ¿Se puede especificar el hilo en el que se ejecuta AsyncCallback cuando se utiliza delegate.BeginInvoke?
- 25. Arduino Problemas de RGB LED
- 26. Arduino Emacs desarrollo
- 27. Arduino uno r3 no se reinicia al presionar el botón de reinicio
- 28. Mantener todas las bibliotecas en el directorio de bocetos Arduino
- 29. Trabajando con Android con Arduino
- 30. Comunicación USB con Android/Arduino
"La manera de establecer 'puntos de ruptura de origen' en el Arduino es añadir una salida de serie para enviar el valor al que desea ver al Monitor de serie " ¿Qué sucede si estás usando tu puerto serie para otra cosa? – Jules
Tres opciones de muchas, actualice su entorno de desarrollo utilizando AVR Studio y un dispositivo JTAG, use un mega Arduino que tenga múltiples puertos serie o use la biblioteca serie del software. – Jeff
Solución que estoy usando: pegue una pantalla LCD en el dispositivo y utilícela para la depuración en lugar de la consola serie, pero esas opciones también son interesantes. No había encontrado una serie de software antes, pero eso parece útil para proyectos futuros ... – Jules