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* ( bps) Versión final* ( bps) Versión final* ( 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 Paso Ejecutar hasta el cursor Refresco del Watch con 2 variables Paso a paso + Refresco del Watch con 2 variables 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) { linkw %fp,#-4 char ch; ch=inch(); jsr ) moveb outch(ch); c moveb extbl %d movel jsr c a addql #4,%sp return (char) ch; INLINE char inche(void) { linkw %fp,#-4 char ch; ch=inch(); jsr ) moveb outch(ch); c moveb extbl %d movel jsr c a 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) { linkw %fp,# movel a moveal if (start!=0){ e tstl %a beqs a8 [...] } a8 moveal ac unlk %fp ae rts INLINE void output(char *start) { linkw %fp,# movel a moveal if (start!=0){ e tstl %a beqs a8 [...] } a8 moveal ac unlk %fp ae 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 // // // d teclas c d __operand d __operand c B puertoS // // // TABLA DE SIMBOLOS // // // d teclas c d __operand d __operand c 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