Resumen
En la arquitectura MC68HC05, se conectan cinco registros directamente dentro de la CPU y no forman
parte del mapa de memoria. Toda la otra información disponible en la CPU se localiza en una serie de posiciones
de memoria de 8-bits. El mapa de memoria muestra los nombres y los tipos de memoria de todas las posiciones
que son accesibles a la CPU. La expresión mapeado de memoria de E/S significa que la CPU trata las I/O y los
registros de control como cualquiera tipo de memoria. (Algunas arquitecturas de microcontrolador separan los
registros de E/S del espacio de memoria de programa y usa instrucciones separadas para acceder a las posiciones
de E/S.)
Para empezarse en un lugar conocido, en un microcontrolador debe haber ' reset '. El 'reset' fuerza a los
sistemas periféricos internos y las E/S, a las condiciones conocidas y carga el contador de programa con una
dirección de arranque conocida. El usuario especifica la posición de inicio deseada, poniendo los bytes de la
parte superior e inferior de esta dirección en las posiciones del vector de reset ($07FE y $07FF en el
MC68HC705J1A).
La CPU usa el registro indicador de la pila o stack pointer (SP) para implementar una pila de último en
entrar primero en salir en la memoria RAM. Esta pila mantiene las direcciones de retorno mientras que la CPU
está ejecutando una subrutina y mantiene los contenidos anteriores de todos los registros de la CPU mientras que
la CPU está ejecutando una secuencia de interrupción. Recuperando esta información de la pila, la CPU puede
continuar de donde se fue antes de empezar la subrutina o la interrupción.
Los microcontroladores usan un reloj de alta velocidad para pasar a través cada pequeño paso de cada
operación. Aunque cada instrucción necesita varios ciclos de este reloj, es tan rápido que las operaciones parecen
instantáneas a un humano. Un MC68HC705J1A pueden ejecutar aproximadamente 500,000 instrucciones por
segundo.
Una CPU ve un programa como una secuencia lineal de números binarios de 8-bits. Los 'opcodes' de
cada instrucción y los datos se mezclan en esta sucesión pero la CPU reconoce los límites de la instrucción
porque cada 'opcode' dice a la CPU cuántos bytes de datos de operando van con cada 'opcode' de la
instrucción.
Ver funcionando un microcontrolador, es un ejercicio de aprendizaje donde se pretende ver como una
CPU está ejecutando un programa.
Un 'reset' puede ser provocado por condiciones internas o externas. Un 'reset' por el pin de un puerto
permite por una causa externa comenzar hacer un 'reset'. Un 'watchdog timer' y una dirección ilegal detectada
por el sistema pueden provocar un 'reset' en el software para no ejecutar una secuencia propuesta. Las
interrupciones provocan el paro del proceso, en la CPU, del programa principal temporalmente para responder a
la interrupción. Todos los registros de la CPU se guardan en la pila para que la CPU pueda regresar de donde
salió del programa principal en cuanto la interrupción sea manejada.
Las interrupciones se pueden inhibir globalmente poniendo el bit I en el CCR o localmente poniendo a 0
los bits de control para cada fuente de interrupción. Las peticiones todavía se pueden registrar mientras se
inhiben las interrupciones para que la CPU pueda responder en cuanto las interrupciones se rehabiliten. SWI es
una instrucción y no puede inhibirse.
La latencia de la interrupción es el retraso desde que se solicita una interrupción hasta que la CPU
empieza a ejecutar la primera instrucción en el programa de respuesta de interrupción. Cuando una CPU
responde a una nueva interrupción mientras que ya se está procesando una interrupción (qué normalmente no se
permite), se llama interrupción anidada.
48