La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Javier Guillén Álvarez

Presentaciones similares


Presentación del tema: "Javier Guillén Álvarez"— Transcripción de la presentación:

1 Javier Guillén Álvarez
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Javier Guillén Álvarez 1/27

2 Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272)
Índice 1. Justificación + Objetivos 2. Rediseño de software Compilación/Ensamblaje Ejecución/Depuración 3. Mejora de robustez y usabilidad Archivos de depuración + verificación de tipos + controles Registro de Windows Cuadros de diálogo: usabilidad 4. Nueva funcionalidad Editor de código Conexión con la plataforma Ejecución: paso a paso en C + tabla de variables Entorno gráfico 5. Instalador + Pruebas + Tutoriales en C 6. Conclusiones + Líneas Futuras 2/27

3 Justificación y objetivos
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Justificación y objetivos TUTOR Antes… SBC68K …Ahora dBUG ENT2004CF Objetivos de EDColdFire v3.0 Solucionar errores iniciales Adaptación a la ENT2004CF Renovar el interfaz gráfico Reestructuración completa del código Aumento de la velocidad del entorno Incorporar C como lenguaje de desarrollo Crear instalador de EDColdFire 3/27

4 Rediseño de SW: Compilación/Ensamblaje (I)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Rediseño de SW: Compilación/Ensamblaje (I) Rediseño de herramientas Herramientas de Austex Compilación .cax .s Directiva ORG Módulo fuente en C Compilación Código ensamblador Volcado Ensamblaje .asm .o .dep .hcf Cambio de extensión Módulo fuente ensamblador Listado de depuración Módulo de carga (S-Record) Herramientas de GNU Ensamblaje .elf .lis .dep .hcf .asg .o Tabla de variables Módulo fuente ensamblador Montaje Adaptación Módulo de carga (S-Record) (Executable and Linking Format) Módulo objeto Listado de depuración Listado temporal 4/27

5 Rediseño de SW: Compilación/Ensamblaje (II)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Rediseño de SW: Compilación/Ensamblaje (II) .map .lis .dep .hcf .s .o .c start.asg start.o Código ensamblador Módulo objeto Código de inicio de programa Módulo objeto de inicio Compilación Ensamblaje Módulo de carga (S-Record) Módulo de carga Listado temporal Adaptación total.c .ls2 .co1 .elf .co2 Montaje Listado de depuración Listado temporal Listado sin C incrustado Listado en mayúsculas Preprocesamiento Módulo preprocesado Módulo fuente en C Mapa de variables y funciones Herramientas de GNU: Compilación .map .lis .dep .hcf .s .o .c start.asg start.o Código ensamblador Módulo objeto Código de inicio de programa Módulo objeto de inicio Compilación Ensamblaje Módulo de carga (S-Record) Módulo de carga Listado temporal Adaptación total.c .ls2 .co1 .elf .co2 Montaje Listado de depuración Listado temporal Listado sin C incrustado Listado en mayúsculas Preprocesamiento Módulo preprocesado Módulo fuente en C Mapa de variables y funciones ELIMINADOS EN LA VERSIÓN FINAL ELIMINADOS EN LA VERSIÓN FINAL .elf .lis .dep .hcf .s .o Tabla de variables .c start.asg start.o Módulo fuente en C Código ensamblador Módulo objeto Código de inicio de programa Módulo objeto de inicio Compilación Ensamblaje Montaje Módulo de carga (S-Record) (Executable and Linking Format) Listado temporal Adaptación Listado de depuración .elf .lis .dep .hcf .s .o Tabla de variables .c start.asg start.o Módulo fuente en C Código ensamblador Módulo objeto Código de inicio de programa Módulo objeto de inicio Compilación Ensamblaje Montaje Módulo de carga (S-Record) (Executable and Linking Format) Listado temporal Adaptación Listado de depuración 5/27

6 Rediseño de SW: Compilación/Ensamblaje (III)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Rediseño de SW: Compilación/Ensamblaje (III) Toma 1ª ruta de sDepuracion ¿Existe el archivo? FIN de BuscaErrorWarning No INICIO de BuscaErrorWarning errores:=0; avisos:=0; ¿Es un archivo de Austex? ProcesaLíneaErrorWarningAustex() ProcesaLíneaErrorWarning() Imprime la línea procesada en la ventana de error ¿Final del archivo? ¿Quedan archivos en la lista? Imprime nº de errores y avisos en la ventana de error Devuelve (errores == 0) Lee la siguiente línea Toma la siguiente ruta de archivo de sDepuracion Procesamiento de mensajes de error 6/27

7 Rediseño de SW: Compilación/Ensamblaje (IV)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Rediseño de SW: Compilación/Ensamblaje (IV) Ventana de error Formato Cadena de especificación de formato Errores de Austex Error: RutaFuente,NúmeroLínea: DescripciónError "Error: %[^,],%d:%s\n" Avisos de Austex Warning: RutaFuente,NúmeroLínea: DescripciónAviso "Warning: %[^,],%d:%s\n" Errores de GNU Error: RutaFuente:NúmeroLínea: DescripciónError "Error: %1[a-zA-Z]:%[^:]:%d:%s\n" Avisos de GNU Warning: RutaFuente:NúmeroLínea: DescripciónAviso "Warning: %1[a-zA-Z]:%[^:]:%d:%s\n" Formato Cadena de especificación de formato Errores de Austex Error: RutaFuente,NúmeroLínea: DescripciónError "Error: %[^,],%d:%s\n" Avisos de Austex Warning: RutaFuente,NúmeroLínea: DescripciónAviso "Warning: %[^,],%d:%s\n" Errores de GNU Error: RutaFuente:NúmeroLínea: DescripciónError "Error: %1[a-zA-Z]:%[^:]:%d:%s\n" Avisos de GNU Warning: RutaFuente:NúmeroLínea: DescripciónAviso "Warning: %1[a-zA-Z]:%[^:]:%d:%s\n" 7/27

8 Rediseño de SW: Ejecución/Depuración (I)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Rediseño de SW: Ejecución/Depuración (I) Los errores de firmware obligan a que: En direcciones con puntos de parada, ejecutar TRACE antes de GO o GT No ejecutar TRACE en llamadas a TRAP #15 o instrucciones de modificación del SR No poner puntos de parada en llamadas a la TRAP #15 o instrucciones de modificación del SR Órdenes dBUG 1 Errores iniciales Firmware 1. GO y GT 2. Activación indeseada del bit de traza TRACE en instrucción ilegal deja activado el bit de traza del SR ResetEnTrazaSR() 2 3. Instrucciones ilegales en Puntos de Parada EXIT_TO_dBUG deja instrucciones ilegales en puntos de parada Terminar con RESET, ABORT o recargar el programa 3 Terminal Al borrar en la primera posición del terminal dejan de verse los nuevos caracteres Se cambian los estilos de fuente del Terminal 4 4. Desaparición de caracteres 8/27

9 Rediseño de SW: Ejecución/Depuración (II)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Rediseño de SW: Ejecución/Depuración (II) Errores iniciales La función Ejecutar() permite prescindir de la hebra de lectura del puerto COM Hebra puerto COM Inhabilitar los botones de ejecución Anular los valores de los registros en la barra de herramientas ¿Está ejecutándose el programa? FIN de Ejecutar() Procesar la cola de mensajes de Windows No Comenzar la ejecución en la plataforma Leer los datos recibidos por el puerto COM Procesar los datos recibidos Restablecer indicadores de ejecución INICIO de Ejecutar() DOBLE OBJETIVO: Eliminar hebra Unificar funciones de ejecución → Ejecutar() A partir de Ejecutar() se implementan: Ejecución sin PPs Ejecución con PPs Ejecución hasta cursor Paso a paso Paso a paso en C 9/27

10 Rediseño de SW: Ejecución/Depuración (IV)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Rediseño de SW: Ejecución/Depuración (IV) Otras tareas de reestructuración Gestión de Puntos de Parada Tabla interna de Puntos de Parada Inhabilitar/Restaurar Puntos de Parada Punto de parada Dirección de memoria Contador Disparo Barra de registros Tabla de estructuras registro Reimplementación completa Anulación de registros: AnularTodos() Watch de variables Reducción del tiempo de refresco Refresco automático tras ejecución 10/27

11 Mejora de robustez y usabilidad (I)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Mejora de robustez y usabilidad (I) Menús y controles Agrupación de funciones de actualización de comando Archivos de depuración Centralización de archivos de depuración Uso del precompilador de Visual C++ para evitar la generación de archivos Funciones de verificación de tipos IsEtiquetaGNU IsInstruccionSaltoGNU IsInstruccionSR IsLineaC IsDirección IsDirectiva IsEtiquetaAustex 11/27

12 Mejora de robustez y usabilidad (II)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Mejora de robustez y usabilidad (II) Uso del registro de Windows 12/27

13 Mejora de robustez y usabilidad (III)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Mejora de robustez y usabilidad (III) "Usabilidad es la efectividad, eficiencia y satisfacción con la que un producto permite alcanzar objetivos específicos a usuarios específicos en un contexto de uso específico" Encabezado no descriptivo y obsoleto Icono de error cuando no ha habido error Mensaje describiendo una incidencia equivocada Versión inicial Mensaje describiendo la incidencia + Sugerencia para solucionarla Encabezado resumiendo la incidencia Icono adecuado al mensaje Nueva versión 13/27

14 Mejora de robustez y usabilidad (IV)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Mejora de robustez y usabilidad (IV) Mejora de usabilidad 14/27

15 Nueva funcionalidad: Editor de código (I)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nueva funcionalidad: Editor de código (I) CEditorDoc Funcionalidad General CFuenteASMAustex Funcionalidad Ensamblador Motorola CFuenteCAustex Funcionalidad C + compilador Austex CFuenteASMGNU Funcionalidad Ensamblador GNU CFuenteCGNU Funcionalidad C + compilador GNU CDepurador Funcionalidad Depurador de programas CEditorDoc Funcionalidad General Funcionalidad Ensamblador Motorola Funcionalidad Ensamblador GNU Funcionalidad C + compilador Austex Funcionalidad Depurador de programas Funcionalidad C + compilador GNU 15/27

16 Nueva funcionalidad: Editor de código (II)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nueva funcionalidad: Editor de código (II) Coloreado sintáctico Comentarios Palabras clave 16/27

17 Nueva funcionalidad: Editor de código (III)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nueva funcionalidad: Editor de código (III) Ayuda emergente INICIO DEL MECANISMO DE AYUDA EMERGENTE Elimina de memoria m_pTablaToolTips ¿Tabla inicializada? ¿Se cierra el documento? MECANISMO DE AYUDA EMERGENTE DETENIDO Crea e inicializa m_toolTip y m_popupText ¿Lleva el cursor quieto 1 seg. en la zona activa de m_toolTip? Añade la ayuda y muestra m_popupText Oculta m_popupText ¿Se ha movido el ratón o se ha activado su rueda? ¿Aparece en la tabla? Obtiene palabra bajo el cursor No INICIO DEL MECANISMO DE AYUDA EMERGENTE Elimina de memoria m_pTablaToolTips ¿Tabla inicializada? ¿Se cierra el documento? MECANISMO DE AYUDA EMERGENTE DETENIDO Crea e inicializa m_toolTip y m_popupText ¿Lleva el cursor quieto 1 seg. en la zona activa de m_toolTip? Añade la ayuda y muestra m_popupText Oculta m_popupText ¿Se ha movido el ratón o se ha activado su rueda? ¿Aparece en la tabla? Obtiene palabra bajo el cursor No 17/27

18 Nueva funcionalidad: Conexión con la plataforma (I)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nueva funcionalidad: Conexión con la plataforma (I) Comunicación serie Velocidad de transferencia (bps) 19200/38400 Bits de datos 8 Bit de paridad No Bits de parada 1 Optimización de velocidad Aumento de velocidad de comunicación hasta 38.4Kbps Protocolo de selección de velocidad Adecuación de longitud de respuestas esperadas Ajuste de tiempos límite Hebra de animación del icono de comunicaciones División Ejecución/Visualización Fin de Tx con tiempos límite sin ajustar Ráfaga de bytes Ráfaga de bytes Tiempos límite ajustados 18/27

19 Nueva funcionalidad: Conexión con la plataforma (III)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nueva funcionalidad: Conexión con la plataforma (III) Optimización de velocidad Instrucción Versión inicial* ( bps) Versión final* ( bps) Tpto.serie Tproc. Ttotal Paso a Paso 600 1260 1860 350 60 410 220 280 Ejecutar hasta el cursor 540 680 1220 380 260 640 240 180 420 Refresco del Watch con 2 variables 170 1200 1370 160 Paso a paso + Refresco del Watch con 2 variables 770 2580 3350 570 630 360 * Tiempos de ejecución, en milisegundos ¡8 VECES MÁS RÁPIDO! 19/27

20 Nueva funcionalidad: Ejecución/Depuración (I)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nueva funcionalidad: Ejecución/Depuración (I) Paso a paso en C FIN INICIO ¿Es la última línea? Obtener línea del PC ¿Es salto ASM GNU? Avanzar un paso ¿Es línea de C? Ejecutar hasta la instrucción anterior Obtener línea siguiente ¿La instrucción anterior es de C? No Ejecutar hasta el salto INLINE char inche(void) { <inche> linkw %fp,#-4 char ch; ch=inch(); jsr <inch>) moveb outch(ch); c moveb extbl %d0 movel jsr c <outch> a addql #4,%sp return (char) ch; 20/27

21 Nueva funcionalidad: Ejecución/Depuración (II)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nueva funcionalidad: Ejecución/Depuración (II) Paso a paso en C INLINE void output(char *start)43201 { <output> linkw %fp,#0 movel a moveal if (start!=0){ e tstl %a0 beqs a8 <output+0x24> [...] } 000202a8 moveal 000202ac unlk %fp 000202ae rts 21/27

22 Nueva funcionalidad: Ejecución/Depuración (III)
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nueva funcionalidad: Ejecución/Depuración (III) Tablas de variables Fuente C GNU Ensamblador de GNU Ensamblador de Motorola CFuenteCGNUDoc::Construir CEditorDoc::CompilarEnsamblar .\gcc-m68k\Makegcc.bat Genera y guarda la tabla de variables en el fichero de depuración (.dep) CFuenteASMGNUDoc::Construir .\gcc-m68k\Makedep.bat CMainFrame::OnConstruirCargar CMainFrame::ProcesaArchivoCargado Busca las variables en el documento de depuración y las almacena en la tabla CMainFrame::m_mapVar Flujo de creación y lectura de tabla de variables Secuencia de llamadas Dirección de comienzo Tamaño de la variable Nombre de la variable // // // TABLA DE SIMBOLOS // d teclas.60 c d __operand1 d __operand2 c B puertoS 22/27

23 Nueva funcionalidad: Entorno gráfico
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Nueva funcionalidad: Entorno gráfico 23/27

24 Instalador, Pruebas y Tutoriales en C
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Instalador, Pruebas y Tutoriales en C Tareas complementarias realizadas: Baterías de pruebas inicial Instalador de EDColdFire v3.0 Creación de Tutoriales en C Programas + Librerías en C 24/27

25 Conclusiones Corrección de errores y reestructuración de código
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Conclusiones Nueva versión EDColdFire v3.0 Corrección de errores y reestructuración de código Adaptación completa a ENT2004CF Incremento de robustez y usabilidad Nueva estructura de documentos Incorporación de C como lenguaje de desarrollo Aumento de la velocidad de respuesta del entorno Renovación del interfaz gráfico de usuario Instalador de EDColdFire v3.0 + Tutoriales en C 25/27

26 Líneas Futuras Carga de programas por USB o Ethernet
Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) Líneas Futuras Carga de programas por USB o Ethernet Acceso a los registros internos de ColdFire desde el entorno Incluir simulador de ColdFire Integrar las herramientas de evaluación de código fuente desarrolladas por el DIE Versión remota del entorno para acceder a una plataforma ENT2004CF conectada a un ordenador en red 26/27

27 Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272)
DEMOSTRACIÓN ... 27/27


Descargar ppt "Javier Guillén Álvarez"

Presentaciones similares


Anuncios Google