Buceando en los MCUs Freescale...



Documentos relacionados
Buceando en el HC908...

Como sacarle mayor provecho a las herramientas disponibles para la familia HC908

8 millares + 2 centenas + 4 decenas + 5 unidades + 9 décimos + 7 céntimos

Como sacarle mayor provecho a las herramientas disponibles para la familia HC908

PREGUNTAS FRECUENTES PROCESO MIGRACIÓN CLIENTES WEB FIDUCIARIA SUCURSAL TELEFÓNICA BANCA PERSONAS Y SUCURSAL TELEFÓNICA

Sistemas de numeración

Estructuras de Datos y Algoritmos Tecnólogo en Informática

SISTEMAS DE NUMERACIÓN

Lección 4: Suma y resta de números racionales

INSTRUCTIVO DEL COMANDO MAKE

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

GESTION WEB DE CLIENTES

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

Documento Actualización de un curso de la plataforma moodle a través de respaldo Revisión 1.0 Elaboró Ing. Daniel Sánchez Machado

ESCUELA DE ADMINISTRACIÓN

WINDOWS : COPIAS DE SEGURIDAD

Plataforma Helvia. Manual de Administración Administración General. Versión

Asignación de Procesadores

TUTORIAL DE INSTALACIÓN PARA VIRTUALBOX

Curso sobre Microcontroladores Familia HC9S08 de Freescale

El Entorno Integrado de Desarrollo Dev-C++ (Ayuda básica para las primeras sesiones de prácticas)

Curso sobre Microcontroladores Familia HC9S08 de Freescale

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Winide y Kit EVALQTY CDM 2011

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Curso PHP Módulo 1 R-Luis

MANUAL COPIAS DE SEGURIDAD

Diseño orientado al flujo de datos

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Aplicaciones Lineales

CURSO INSTALACION E IMPLEMENTACION ALOJA SOFTWARE HOTEL MODULO 12: Empresas y Agencias

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Introducción. Contabilidad y Estados Financieros

Recepción y validación de facturas electrónicas

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Manual de Usuario FACTURA99 FACTURACIÓN. Factura99 FACTURA 99

SOLUCIÓN CASO GESTIÓN DE PERSONAL I

Manual Sistema Reserva de Camionetas

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Novedades en Gestión de Expedientes (9 junio 2015)

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Comunicación entre un PLC S y WinCC Advanced

Buceando en los MCUs Freescale...

Creación de Funciones de Conducción

Actualización de versión a Bizagi 10.x

UNIDAD DIDÁCTICA Nº 7 USO DE LOS RECURSOS EN MOODLE

Informática Bioingeniería

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

Manual de administración Administración General V

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0

Anexo B. Comunicaciones entre mc y PC

SISTEMA DE APARTADO DE SALAS PARA EVENTOS

Configuración de la impresión de Cheques/pagarés

Aclaraciones sobre el tipo de envío y el tipo de transacción del trabajador a cumplimentar en los ficheros de comunicación XML

MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA

ADMISIÓN DE PRODUCTOS COSMÉTICOS POR INTERNET Preguntas Frecuentes

MANUAL CONFIGURACION SIPTAR Y ADAPTADOR VOIP

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Introducción a la Firma Electrónica en MIDAS

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

MÉTODOS DE ELIMINACIÓN Son tres los métodos de eliminación más utilizados: Método de igualación, de sustitución y de suma o resta.

Capítulo Comunicaciones de datos 1. Conexión de dos unidades 2. Conectando la unidad con una computadora personal

MESP_09: Antigüedad de deuda de clientes

V i s i t a V i r t u a l e n e l H o s p i t a l

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Manual de Usuario de Survey Móvil. Actualización Aplicación

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS ESCUELA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES

Manual de Usuario del Sistema RECIBOS DE HABERES UNLu Contacto:

Estimado usuario. Tabla de Contenidos

UNIDAD DE APRENDIZAJE IV

UNIDAD EJECUTORA DE CONSERVACION VIAL MANUAL DEL USUARIO DEL SISTEMA INTEGRAL DE CONTROL DE PROYECTOS

Tablas en HTML. Tipos de celdas. Ing. Tomás Urbina Programación Web y Desarrollo de la Plataforma Web

(decimal) (hexadecimal) 80.0A.02.1E (binario)

Cifras significativas e incertidumbre en las mediciones

Tipos de instalaciones

HIPERVÍNCULOS. Es posible asignar un vínculo a un texto, a una imagen, o a parte de una imagen

ANEXO (NÓMINA DE CANDIDATOS EN SOPORTE INFORMÁTICO

Introducción al laboratorio de Programación I

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Interés Simple y Compuesto

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING.

PREGUNTAS FRECUENTES

Manual de Usuario- Managers. Uso del Portal

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0):

ADT CONSULTING S.L. PROYECTO DE DIFUSIÓN DE BUENAS PRÁCTICAS

Señal de petición de Interrupción

SISTEMAS DE INFORMACIÓN II TEORÍA

CLASE No. 4 MANEJO DE DOCUMENTOS

GENERACIÓN DE ANTICIPOS DE CRÉDITO

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Transcripción:

COMENTARIO TÉCNICO Buceando en los MCUs Freescale... Por Ing. Daniel Di Lella Dedicated Field Application Engineer www.edudevices.com.ar dilella@arnet.com.ar Serie Flexis...... Como migrar de 8 a 32 Bits sin traumas Tercera Entrega. Hola Amigos!... En el artículo anterior, habíamos empezado con un ejemplo de migración de la familia S08 a la familia V1 ColdFire. Allí quedó planteado que al compilar un proyecto hecho para S08 y querer migrarlo a V1 Coldfire se generan múltples errores. Veremos ahora como solucionarlos uno a uno.

Tip de Migración 1. Código Assembler dentro del código del programa. Cuando se migra a diferentes arquitecturas el uso de instrucciones en assembler es ineficiente. Por ejemplo, los core S08 de 8 bits y V1 ColdFire de 32 bits poseen diferentes sets de instrucciones debido a sus muy diferentes arquitecturas. Si el código del programa posee algunas líneas en asembler, esto llevará al compilador a emitir mensajes de error por operaciones no válidas. Para evitar ello, es necesarioreemplazar dichas líneas de código en assembler por su equivalente en código C de fácil conversión por el compilador. Notece que en el ejemplo de código assembler para configurar el bit 0 del registro de datos de direcciones del Port E ha sido reemplazado por su equivalente de instrucciones en código C. Se han reemplazado las instrucciones Stop y Wait utilizadas para colocar al MCU en bajo consumo, por las definiciones _Stop y _Wait. Estas definiciones estarán contenidas en la definición del derivarivo (por ejemplo, MCF51QE128.h) y deben actualizarse cuando se migra de la familia S08 a V1 ColdFire. Por medio del uso de estas definiciones para las instrucciones Stop y Wait se asegura que el código trabaje en ambos cores. Si no hay código en assembler, el proyecto compilará, sin embargo, ello no es garantía de que el código realmente trabaje para ambas familias, ya que hay más cosas para chequear.

Tip de Migración 2. Asignación de Vectores de Interrupción usando Declaraciones de Interrupción en los Header Files del CodeWarrior. Las tablas de Vectores de interrupción entre la familia S08 de 8 Bits y la V1 ColdFire de 32 Bits no son identicas y residen en diferentes lugares de memoria, por lo que la asignación de vectores no coincidirá en el espacio de memoria. La asignación de los vectores de Interrupción mantiene un número de vector relativo entre S08 y V1 ColdFire. La tabla 3 nos muestra un ejemplo de las diferencias en el vector de interrupción para el RTC (Vrtc). Tabla 3 Dirección Vs Vector. Error Común: 1. Resolver el problema con la ecuación: Número de Vector del V1 ColdFire = Número de Vector del S08 + 62. 2. Asignación inapropiada de un vector de interrupción que solo funciona para el S08: Interrupt 24 RTC_ISR {} // Solamente trabaja para el S08. La solución de migración es usar la declaración de número de interrupción VectorNumber_Vname definida en los archivos header del entorno CodeWarrior, según se puede ver en la Figura 13.

En lugar de estar redefiniendo números de interrupción de S08 a V1 ColdFire una a una como se muestra en las líneas de código superior, se sugiere utilizar la declaración de Número de Interrupción según se muestra en las líneas de código inferiores. Figura 13.- Modo correcto de Asignación de Vectores. Tip de Migración 3. Referencia de memoria usando las declaraciones de periféricos Register_Bitname en los Header Files del entorno CodeWarrior. Los mapas de memoria entre la familia S08 y la V1 ColdFire son diferentes, de esta forma, declaraciones absolutas de memoria no coincidirán con el espacio de memoria. La Figura 14 muestra las diferencias entre los mapas de memorias de ambas familias. Figura 14.- Diferencias entre los mapas de memoria del S08 y V1 ColdFire.

La asignación de la memoria RAM y FLASH queda determinada por los respectivos archivos del linker. Los mapas de los registros de periféricos mantienen el direccionamiento relativo entre S08 y V1 ColdFire. Por ejemplo, en el MC9S08QE128 el registro SCI1C1 está localizado en la dirección 0x0022 y el mismo registro en el MCF51QE128 está localizado en la dirección 0x(FF)FF_8000 + 0x0022 = 0x(FF)FF_8022. Errores Comunes: 1. Un ejemplo de las declaraciones absolutas de memoria hechas en forma imprópias es: int var @ 0x400 = 1; 2. Y en una variable global (global_variable): unsigned int near global_variable @ 0x80 = 0; La solución de migración en la referencia de memoria es utilizar las declaraciones Register_Bitname en los archivos Header del CodeWarrior y permitirle al linker que pueda colocar variables en espacios de memoria disponibles. Remover el direccionamiento absoluto y la declaración near, de la siguiente manera: Unsigned int global_variable = 0; A continación se puede efectuar un Make (compilar) y un Debug del código. El proyecto debería ahora funcionar sin problemas en el V1 ColdFire. Algo importante de hacer notar es que los errores de migración dados en el Tip 2 y Tip 3 no son marcados como errores por el CodeWarrior. Bueno amigos, en el próximo artículo, veremos algunos Tips más a tener en cuenta y otras cositas útiles que nos harán más fácil la migración de S08 a V1 ColdFire...... Hasta la próxima!! www.edudevices.com.ar