Depuración Interactiva en...
Transcript of Depuración Interactiva en...
Trabajo Final
Depuración Interactiva en CIAABOT Autor: Ing. Jenny Chavez
Director:
Esp. Ing. Eric Pernia (UNQ, FIUBA)
CoDirector:
Esp. Ing. Leandro Lanzieri (FIUBA)
Jurados:
• Dr. Ing. Pablo Gómez (FIUBA)
• Esp. Ing. Patricio Bos (FIUBA)
• Esp. Ing. Ernesto Gigliotti (UTN-FRA)
Carrera de Especialización en Sistemas Embebidos
1
AGENDA
• Introducción General
• CIAABOT
• Objetivos y alcance
• Requerimientos
• Diseño e Implementación
• Firmata
• Características del entorno
de depuración desarrollado
• Ensayos y Resultados
• Firmata test
• Pruebas Funcionales
• Conclusiones
2
Introducción General
3
• CIAABOT IDE
• CIAABOTS
• Firmware
Introducción General CIAABOT IDE
4
Introducción General
Motivación
• CIAABOT no posee la capacidad de depurar un
programa.
• Para realizar los ensayos se tiene que compilar el
programa, descargarlo y luego probar manualmente .
5
Introducción General
Objetivos y alcance
• Abrir y editar un programa creado en CIAABOT.
• Ejecutar un programa bloque por bloque.
• Detener la ejecución temporalmente en un bloque concreto.
• Visualizar el contenido de las variables.
• Entorno gráfico amigable.
6
• Plugin de eclipse
arm-none-eabi-gdb
• arm-none-eabi-gdb
• OpenOCD
• Debugger HW
• Microcontrolador
a depurar
Diseño e Implementación
Caso de estudio: depuración con eclipse
7
Diseño e Implementación
Firmata
8
Diseño e Implementación
Características del entorno desarrollado (CIAABOT Debug)
• Ejecutar un programa bloque a bloque en la PC, usando Javascript
internamente, hasta que se encuentre con un bloque que requiera acceso a
algún periférico del hardware.
• Enviar comandos firmata a la placa cuando se encuentre un bloque de
acceso a algún periférico.
• Visualizar el contenido de las variables en un determinado momento de la
ejecución.
• Instalación del programa que implementa el protocolo firmata en la EDU-
CIAA-NXP, sólo en el caso de ser necesario.
9
Diseño e Implementación
Interfaz gráfica de CIAABOT Debug
10
Diseño e Implementación
Interfaz gráfica de CIAABOT Debug
11
Diseño e Implementación
12
• Desconectado
• Conectando
• Conectado Sin Firmata4CIAA
• Descargando Firmata4CIAA
• Conectado Con Firmata4CIAA
• Conectado En Sesión De Debug
Máquina de estados de
CIAABOT Debug
Diseño e Implementación
13
Diseño e Implementación
14
Diseño e Implementación
Herramientas de control de ejecución
15
Diseño e Implementación
Menú de visualización
16
Diseño e Implementación
Menú de visualización
17
Diseño e Implementación
Herramientas utilizadas
• Blockly
• Bootstrap
• JS-Interpreter
• Acorn
• JQuery
• Signals
• Johnny five
• Express
• Serialport
• Electron
18
Diseño e Implementación
Bloques gráficos que acceden a los periféricos
setServo:
function(range) {
servo.to(range);
}
Barrido de servomotor ejecutado con johnny five
19
Diseño e Implementación
Bloques gráficos que no acceden a los periféricos
for:
function(time, unit) {
duration = time;
waitStart = getTime(unit);
}
Ejemplo de wait
20
Diseño e Implementación Archivo de debug generado
{
"type": "ciaabotDebugState",
"breakpoins": [
{
"type": "asociation",
"key": { "type": "logic_operation\“, d": "Ju6).aSXM}[dFL_Xw/p,\” }, "value":{ "type": "breakpoint“, "id": 1, "active" : true }
}
]
} 21
Ensayos y Resultados
Ensayos preliminares acerca del
control de la plataforma mediante
protocolo Firmata
• El programa Firmata test
• La placa EDU-CIAA-NXP
corriendo el programa
Firmata4CIAA
22
Ensayos y Resultados
Ensayo de funcionamiento en los sistemas operativos
Windows y Linux
• Instalación en cada sistema
• Chequeo de conexión y descarga de Firmata4CIAA
• Chequeo de conexión con la plataforma EDU-CIAA-NXP
23
Ensayos y Resultados
Comprobación de funcionamiento de una sesión de depuración
• Uso del comando Ejecutar
• Uso del comando Suspender
• Uso del comando Pasar por encima (step over)
• Uso del comando Pasar adentro (step into)
• Uso del comando Paso de regreso (step return)
24
Ensayos y Resultados
Comprobación de funcionamiento de una sesión de depuración
• Sesión de depuración con puntos de ruptura (breakpoints).
• Sesión de depuración uso del comando desactivar puntos de
interrupción.
• Sesión de depuración uso del comando Detener depuración.
• Guardado y restauración de los puntos de ruptura.
25
Ensayos y Resultados
Ensayos de edición de programas en lenguaje CIAABOT
• Edición de programa
26
Ensayos y Resultados
Ensayos de interfaz de usuario
Validación con usuarios
27
Conclusiones
28
• Se cumplieron todos los objetivo propuestos.
• Se realizó una colaboración al proyecto CIAA.
• CIAABOT Debug aporta mejorar las herramientas
para enseñanza de robótica educativa.
Trabajo a futuro
29
• Mostrar una salida de consola de JavaScript.
• Mostrar el stack de llamadas a funciones.
¿PREGUNTAS?
30
¡MUCHAS GRACIAS!
31