ENCICLOPEDIA DE RADIOELECTRÓNICA E INGENIERÍA ELÉCTRICA Depuración de microcontroladores mediante un emulador de ROM. Enciclopedia de radioelectrónica e ingeniería eléctrica. Enciclopedia de radioelectrónica e ingeniería eléctrica. / Microcontroladores La complejidad de desarrollar y depurar el programa de trabajo de un dispositivo electrónico que contiene un microprocesador a menudo determina el coste de su desarrollo en su conjunto. En los microcontroladores (MCU) que integran memoria y algunos dispositivos periféricos, esto es especialmente pronunciado. Una de las herramientas que facilita enormemente la depuración es el emulador de ROM descrito en [1]. Este artículo describe la tecnología para trabajar con él. Las capacidades de depuración no se limitan a las técnicas descritas. Este proceso, como el diseño en general, es hasta cierto punto un arte: cada uno crea “su propia música” para un mismo instrumento. Estaremos agradecidos a los lectores que compartan sus herramientas y métodos originales para depurar programas MK. La complejidad y la intensidad del trabajo del proceso de depuración del software MK están determinadas por los siguientes factores [2]:
Los equipos de prueba tradicionales (por ejemplo, un osciloscopio) solo se pueden utilizar de forma limitada para depurar MCU. El método de depuración más simple (y al mismo tiempo el más ineficaz) es el “método de prueba y error”: cargar un programa en un dispositivo de memoria de sólo lectura (RPM) reprogramable, intentar ejecutarlo, detectar y corregir errores en el proceso. programa y hardware, borrar la ROM, cargar el programa nuevamente, etc. D. Los procesos de borrar y escribir datos en el chip EEPROM toman mucho tiempo y después de una cierta cantidad de ciclos de reprogramación fallan por completo. La instalación y extracción repetida del microcircuito reduce la confiabilidad de los contactos eléctricos en el zócalo ROM. Prácticamente no existe la posibilidad de obtener información de depuración del sistema. Actualmente, los microcontroladores se depuran con mayor frecuencia utilizando herramientas cruzadas basadas en una computadora personal. Esto permite una distracción mínima de los recursos de MK. El dispositivo que se está depurando, como se muestra en la figura, está conectado a la computadora a través de alguna herramienta, por ejemplo, un emulador de ROM. Un complejo de este tipo le permite descargar y editar un programa, ingresar módulos de prueba en él, obtener cierta información sobre el sistema y mucho más, de lo que hablaremos a continuación. Aunque los emuladores de ROM no son la única herramienta de depuración ni la más poderosa, siguen siendo populares. Su "longevidad" se explica por su independencia del tipo de MK (solo se requiere la capacidad de trabajar con una memoria de programa externa), operación en tiempo real, bajo precio y accesibilidad para una amplia gama de desarrolladores de equipos y radioaficionados. Consideremos la tecnología de depuración de programas utilizando un emulador de ROM usando el ejemplo de los microcontroladores de la familia MCS-51 (8031, 8051, 80C31, 80C51. KR1816BE31, KR1816BE51, KR1830BE31, KR1830BE51, etc.). Al iniciar la depuración, es necesario verificar la funcionalidad del hardware del sistema y del propio MK. Para ello, puedes utilizar las pruebas de “cuenta gratuita” [3]. que consisten en buscar entre todas las combinaciones de códigos posibles en las líneas de los puertos MK. Durante la prueba, las líneas del puerto se configurarán en el estado de salida, por lo que, en primer lugar, verifique en el diagrama del circuito del dispositivo que se está depurando que no estén cargadas en las salidas de otros elementos. Desconecte temporalmente dichas cargas, si están presentes. Cargue el emulador de ROM con códigos de comando "sin operación" (NOP) dentro de todo el espacio de direcciones de los programas MK. Para MCS-51 este es el código 00Н. Al ejecutar dicho "programa", el microcontrolador busca secuencialmente en todas las direcciones de memoria del programa. Verifique las señales de ALE, PME y los puertos P0, P2 con un osciloscopio. Los oscilogramas en las líneas del puerto deben corresponder a los diagramas de tiempo del contador binario, teniendo en cuenta la multiplexación del byte bajo de la dirección y los datos en P0. A continuación, verifique los puertos P1 y R1 cargando el programa de prueba que se proporciona en la Tabla 00 en el emulador de ROM. 0. Genera una secuencia de códigos de XNUMXH a XNUMXFFH en las líneas de los puertos especificados, simulando un contador binario de ocho bits. Si los oscilogramas corresponden a los requeridos, restablezca las cargas desconectadas de los puertos y proceda a depurar el programa de trabajo del MK. Recuerde que está depurando las partes de software y hardware del sistema al mismo tiempo y no olvide monitorear periódicamente las señales en los puntos de control con un osciloscopio. La discrepancia entre el tipo de señales y sus ideas sobre ellas es motivo de reflexión seria y comprobaciones adicionales. Para facilitar el desarrollo y la depuración, se debe seguir el principio modular de programación, es decir, dividir el programa MK en partes según su funcionalidad. Esto facilitará el movimiento de módulos individuales y, si es necesario, su uso en otros proyectos. El módulo al que se transfiere el control después de encender o reiniciar el MK se llama principal o principal. Debe transferir el control al punto de entrada del programa usando un comando de salto en lugar de una llamada de subrutina, para no saturar la pila con la dirección del remitente. Para evitar resultados inesperados del programa, asegúrese de asignar un valor inicial a cada variable antes de usarla por primera vez. En algunos casos, puede ser necesario inicializar el equipo periférico. El bloque de inicialización se coloca al comienzo del módulo principal del programa. En la tabla se muestra una vista aproximada del módulo de software principal al comienzo de la depuración. 2. Contiene sólo el punto de entrada al programa y el controlador de salida. Aunque una salida de este tipo se utiliza muy raramente en sistemas de microcontroladores, debe preverse para la finalización correcta de situaciones de emergencia. En el ejemplo considerado, una vez finalizado el trabajo, el programa realiza un “bucle”. Sólo saldrá de este estado reiniciando el sistema con una señal de reinicio del hardware. Durante la depuración, se agregan otros módulos de software al módulo principal a medida que están listos. El orden en el que se conectan y depuran juega un papel importante. Debe comenzar con los controladores de los dispositivos de salida de información (pantalla, convertidor digital-analógico, etc.), colocando sus llamadas en el módulo principal. Luego se depuran los controladores de los dispositivos periféricos restantes y las rutinas de procesamiento de datos, y solo después se verifica el funcionamiento conjunto de todos los módulos de software. Si hay una pantalla alfanumérica, su controlador se depura primero y se usa en el futuro para mostrar información de depuración, por ejemplo, el contenido de la memoria de datos interna del MK. Si se utiliza un emulador de ROM de manera que la información contenida en él pueda ser escrita y leída tanto por la computadora de control como por el dispositivo que se está depurando, el MK puede colocar datos de depuración en el área de memoria libre del emulador de ROM y el control La computadora los lee y los muestra en su pantalla. Por ejemplo, para generar el contenido de la RAM de datos interna del MK, conecte su salida de señal de escritura a la memoria de datos externa (WR) con la entrada de señal de escritura del emulador de ROM y use la subrutina que se proporciona en la Tabla. 3. Se supone que el tamaño de la memoria del programa del dispositivo que se está depurando no excede los 32 KB, por lo tanto, la información de depuración colocada en la memoria del emulador comienza en la dirección 8000H. El contenido de los registros R0 y R1 se envía por separado, ya que luego se utilizan en la subrutina para organizar el bucle. Después de generar la información de depuración, el programa MK se suspende, la computadora de control lee, muestra y analiza el contenido de las celdas de memoria del emulador ROM 8000H-807FH. De manera similar, se pueden mostrar los contenidos de todos los registros MK accesibles mediante programación. Al comenzar a depurar el controlador de un dispositivo periférico, desconecte temporalmente las señales de control generadas por el microcontrolador para evitar posibles fallas del dispositivo debido a errores en el programa. Si el proceso es de una sola vez, "haga un bucle" y programe la señal de sincronización del osciloscopio si es necesario. Depure el controlador monitoreando las señales generadas por el MC con un osciloscopio. Después de asegurarse de que los diagramas de tiempo de las señales de control correspondan a los requeridos, conecte el dispositivo periférico y continúe depurando el controlador en hardware real. Finalmente, elimine los elementos de depuración del módulo de software y verifique su funcionamiento en su forma final. El uso de recursos MK compartidos por diferentes módulos a menudo conduce al hecho de que el programa depurado deja de funcionar cuando se agrega otra subrutina. Por lo tanto, después de depurar el siguiente módulo, asegúrese de que todos los controladores y subrutinas previamente depurados continúen funcionando correctamente. Si su programa utiliza interrupciones, no las desactive a menos que sea absolutamente necesario. Un módulo depurado no debe eliminarse del programa, incluso si no es necesario en este momento. Cuando el MK se congela, el siguiente método de localización de errores es útil: ingrese puntos de control en el programa que muestren números que aumentan sucesivamente en la pantalla. Después de la congelación, la pantalla mostrará el número correspondiente al último punto de control superado con éxito. Si varios de estos puntos quedan atrapados en un bucle infinito, los números en la pantalla cambiarán rápidamente. Para determinar qué puntos están incluidos en el bucle, deberá ralentizar artificialmente el cambio de números estableciendo un retraso de software al generar cada uno de ellos, por ejemplo, en forma de un bucle inactivo. Si el sistema que se está depurando no tiene una pantalla incorporada, la información se puede mostrar en la pantalla de la computadora de control a través del área de memoria libre del emulador de ROM. Una vez depurados todos los controladores de dispositivos, comenzamos a depurar otras rutinas. Si alguno de ellos implementa un algoritmo complejo para procesar o convertir datos, mostrar uno o más valores de variables intermedias a menudo no proporciona información suficiente para el análisis de errores. Escribir información de depuración del volumen requerido en el área de memoria libre de la ROM El emulador ayudará a superar las dificultades aquí. Una vez logrado el funcionamiento normal de todos los módulos de software, puede depurarlos juntos. Las dificultades que surgen en este caso se dividen en dos grupos. El primero incluye los problemas de compartir recursos comunes del microcontrolador: unidad aritmético-lógica, memoria de datos, puertos de entrada y salida. El segundo está relacionado con el funcionamiento de dispositivos microcontroladores en tiempo real. Los sistemas en tiempo real suelen ser multiproceso. Varias tareas de software (hilos) se ejecutan en paralelo, interactuando entre sí y utilizando recursos compartidos. Pero en cada momento, el MC, por su estructura, resuelve solo uno de ellos, cambiando alternativamente a otros, teniendo en cuenta la prioridad. Los conflictos entre tareas surgen tanto por falta de recursos como por falta de tiempo para el procesamiento de datos. Por lo tanto, preste especial atención a los recursos MC utilizados en los módulos de software y, a menudo, controle los cambios en su estado mostrando información de depuración. Intente reducir la cantidad de variables globales, reemplazándolas por variables locales siempre que sea posible. Monitorear el estado de la pila. Calcule el tiempo de ejecución de las secciones críticas del programa, pruebe el sistema para varios valores de señales de entrada que son posibles en la práctica. Con un emulador de ROM, también puede depurar un programa diseñado para funcionar en la memoria interna del MK, si lo coloca temporalmente en la memoria del programa externo. Dado que en este caso los puertos P0 y P2 estarán ocupados dando servicio a la memoria externa, si las líneas de E/S libres restantes del MK no son suficientes, P0 y P2 se reemplazan con puertos de E/S direccionados como celdas de memoria de datos externa. Se conectan según circuitos estándar, utilizando registros de activación para aumentar el número de líneas de salida y elementos con tres estados de salida para aumentar el número de líneas de entrada. Después de depurar el sistema usando un emulador, elimine los elementos de depuración, escriba el programa en la ROM (o en la memoria interna del programa MK) y verifique el funcionamiento del dispositivo en su forma final. Literatura
Autores: G.Vydolob, V.Samoylov, Moscú (Zelenograd) Ver otros artículos sección Microcontroladores. Lee y escribe útil comentarios sobre este artículo. Últimas noticias de ciencia y tecnología, nueva electrónica: Cuero artificial para emulación táctil.
15.04.2024 Arena para gatos Petgugu Global
15.04.2024 El atractivo de los hombres cariñosos.
14.04.2024
Otras noticias interesantes: ▪ Masa del neutrino más ligero calculada ▪ Los drones ayudarán a combatir la pesca ilegal ▪ Batería alimentada por saliva humana ▪ Cápsula eléctrica para estimular el estómago y mejorar el apetito Feed de noticias de ciencia y tecnología, nueva electrónica
Materiales interesantes de la Biblioteca Técnica Libre: ▪ sección del sitio Radio - para principiantes. Selección de artículos ▪ Artículo de Némesis. expresión popular ▪ artículo ¿Por qué una falsificación se llama tilo? Respuesta detallada ▪ artículo Montaje en el tapón del depósito de combustible. transporte personal ▪ articulo Transistores de campo exterior. Enciclopedia de radioelectrónica e ingeniería eléctrica.
Deja tu comentario en este artículo: Todos los idiomas de esta página Hogar | Biblioteca | Artículos | Mapa del sitio | Revisiones del sitio www.diagrama.com.ua |