La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Javier Guillén Álvarez 1/27 Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272)"— Transcripción de la presentación:

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

2 Índice Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 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 1. Justificación + Objetivos 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 Objetivos de EDColdFire v3.0 Justificación y objetivos Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 3/27 TUTOR Antes… SBC68K …Ahora dBUG ENT2004CF 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

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

5 Herramientas de GNU: Compilación 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ónEnsamblaje 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.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) Módulo de carga (Executable and Linking Format) Listado temporal Adaptación Listado de depuración ELIMINADOS EN LA VERSIÓN FINAL Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 5/27.map.lis.dep.hcf.s.o.c start.asgstart.o Código ensamblador Módulo objeto Código de inicio de programa Módulo objeto de inicio CompilaciónEnsamblaje 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.elf.lis.dep.hcf.s.o Tabla de variables.c start.asgstart.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) Módulo de carga (Executable and Linking Format) Listado temporal Adaptación Listado de depuración

6 Rediseño de SW: Compilación/Ensamblaje (III) Toma 1ª ruta de sDepuracion ¿Existe el archivo? FIN de BuscaErrorWarning Sí No INICIO de BuscaErrorWarning errores:=0; avisos:=0; ¿Es un archivo de Austex? Sí No ProcesaLíneaErrorWarningAustex() ProcesaLíneaErrorWarning() Imprime la línea procesada en la ventana de error ¿Final del archivo? Sí No ¿Quedan archivos en la lista? Sí No 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 Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 6/27

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

8 Firmware Rediseño de SW: Ejecución/Depuración (I) 1. GO y GT 2. Activación indeseada del bit de traza 3. Instrucciones ilegales en Puntos de Parada Errores iniciales Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 8/27 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 TRACE en instrucción ilegal deja activado el bit de traza del SR ResetEnTrazaSR() 2 EXIT_TO_dBUG deja instrucciones ilegales en puntos de parada Terminar con RESET, ABORT o recargar el programa Terminar con RESET, ABORT o recargar el programa 3 Terminal 4. Desaparición de caracteres Al borrar en la primera posición del terminal dejan de verse los nuevos caracteres Se cambian los estilos de fuente del Terminal 4

9 Rediseño de SW: Ejecución/Depuración (II) 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 Sí 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() Hebra puerto COM La función Ejecutar() permite prescindir de la hebra de lectura del puerto COM Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 9/27 Errores iniciales 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 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 DOBLE OBJETIVO: 1. Eliminar hebra 2. Unificar funciones de ejecución Ejecutar() DOBLE OBJETIVO: 1. Eliminar hebra 2. Unificar funciones de ejecución Ejecutar()

10 Rediseño de SW: Ejecución/Depuración (IV) Otras tareas de reestructuración Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 10/27 Gestión de Puntos de Parada Tabla interna de Puntos de Parada Inhabilitar/Restaurar Puntos de Parada 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() 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 Watch de variables Reducción del tiempo de refresco Refresco automático tras ejecución

11 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 Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 11/27

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

13 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 Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 13/27

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

15 Nueva funcionalidad: Editor de código (I) CEditorDoc Funcionalidad C + compilador Austex Funcionalidad C + compilador GNU Funcionalidad Depurador de programas Funcionalidad General Funcionalidad Ensamblador Motorola Funcionalidad Ensamblador GNU Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 15/27 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

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

17 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 Sí No Nueva funcionalidad: Editor de código (III) Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 17/27 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 Sí No NoNo

18 Nueva funcionalidad: Conexión con la plataforma (I) Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 18/27 Comunicación serie Velocidad de transferencia (bps)19200/38400 Bits de datos8 Bit de paridadNo Bits de parada1 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 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 Ráfaga de bytes Fin de Tx con tiempos límite sin ajustar Tiempos límite ajustados

19 Nueva funcionalidad: Conexión con la plataforma (III) Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 19/27 Instrucción Versión inicial* (19.200 bps) Versión final* (19.200 bps) Versión final* (38.400 bps) T pto.seri e T proc. T total T pto.serie T proc. T total T pto.seri e T proc. T total Paso a Paso600126018603506041022060280 Ejecutar hasta el cursor5406801220380260640240180420 Refresco del Watch con 2 variables 170120013702200 1600 Paso a paso + Refresco del Watch con 2 variables 770258033505706063036060420 Optimización de velocidad * Tiempos de ejecución, en milisegundos ¡8 VECES MÁS RÁPIDO!

20 Nueva funcionalidad: Ejecución/Depuración (I) Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 20/27 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? ¿Es línea de C? Ejecutar hasta la instrucción anterior Obtener línea siguiente ¿La instrucción anterior es de C? Sí No Avanzar un paso Sí Ejecutar hasta el salto Sí INLINE char inche(void) { 00020130 linkw %fp,#-4 char ch; ch=inch(); 00020134 jsr %pc@(0002010c ) 00020138 moveb %d0,%fp@(-1) outch(ch); 0002013c moveb %fp@(-1),%d0 00020140 extbl %d0 00020142 movel %d0,%sp@- 00020144 jsr 0002015c 0002014a addql #4,%sp return (char) ch; INLINE char inche(void) { 00020130 linkw %fp,#-4 char ch; ch=inch(); 00020134 jsr %pc@(0002010c ) 00020138 moveb %d0,%fp@(-1) outch(ch); 0002013c moveb %fp@(-1),%d0 00020140 extbl %d0 00020142 movel %d0,%sp@- 00020144 jsr 0002015c 0002014a addql #4,%sp return (char) ch;

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

22 Nueva funcionalidad: Ejecución/Depuración (III) Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 22/27 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 CEditorDoc::CompilarEnsamblar.\gcc-m68k\Makedep.bat Genera y guarda la tabla de variables en el fichero de depuraci ó n (.dep) 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 //------------------------------------------// // TABLA DE SIMBOLOS // //------------------------------------------// 00030000 00000010 d teclas.60 0003001c d __operand1 00030024 d __operand2 0003002c 00000002 B puertoS //------------------------------------------// // TABLA DE SIMBOLOS // //------------------------------------------// 00030000 00000010 d teclas.60 0003001c d __operand1 00030024 d __operand2 0003002c 00000002 B puertoS Dirección de comienzo Tamaño de la variable Nombre de la variable Tablas de variables

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

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

25 Conclusiones Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 25/27 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 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 Nueva versión EDColdFire v3.0 Instalador de EDColdFire v3.0 + Tutoriales en C

26 Líneas Futuras Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 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 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 DEMOSTRACIÓN Nuevo Entorno de Desarrollo para el Microcontrolador ColdFire (MCF5272) 27/27...


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

Presentaciones similares


Anuncios Google