Necesita información básica sobre la programación del microprocesador y su principio de funcionamiento

0

Tengo una pregunta muy básica sobre cómo diseñar un sistema basado en microprocesador en contraste con un sistema basado en microcontrolador. Para comprender mejor lo que quiero decir, presento un ejemplo general.

Digamos que quiero diseñar un sistema integrado con procesador de 32 bits con ROM de 1 MB y 1 MB de RAM a 500 MHz de reloj.

En el sistema basado en microcontroladores, lo que entiendo es que simplemente grabamos nuestro programa en la ROM / Flash interna, cuando se enciende, comienza con una PC de reinicio (contador de programa) / IP (indicador de instrucción) que siempre indica al La primera dirección RAM desde donde la unidad ALU comienza a buscar datos desde la ROM / Flash interna y, por lo tanto, comienza la ejecución del programa.

En contraste con eso, asumo que no podemos grabar nuestro programa en el chip del microprocesador ya que no tiene Flash interno para ese propósito, entonces quemamos la ROM externa con nuestro programa, pero no entiendo cómo le decimos al microprocesador para iniciar la ejecución del programa escrito en la ROM, etc.

Como mencioné, mi conocimiento del mundo digital no es muy limitado, acabo de usar microcontroladores y eso es todo. No conozco toda la historia dentro del microcontrolador / microprocesador.

¿Alguien puede explicar cómo el microprocesador inicia su ejecución y cómo programamos el sistema integrado discreto compuesto por microprocesador, ROM externo y RAM?

También proporcione material relacionado con el estudio relacionado con el tema.

Les agradezco a todos. Saludos, Iftikhar

    
pregunta Iftikhar

1 respuesta

3

Básicamente, lees el libro de datos del procesador, que te dirá cómo comienza a ejecutarse, y diseñas la placa para que la ROM se asigne a la dirección correspondiente.

Por ejemplo, Z80 asumirá que todo lo que encuentre en la dirección 0000 es una instrucción válida y la ejecutará . Por lo tanto, cuando reinicie un Z80 después de encenderlo, debe asignar la ROM a la dirección 0 y colocar el código de inicio allí.

Más tarde, puede asignar la ROM a otra dirección o incluso seleccionarla fuera del mapa de memoria, pero antes de hacerlo, por lo general, cargaría un sistema operativo real como CP / M desde un disquete, en la RAM, asigne el RAM a la dirección 0 y reinicio en caliente o simplemente salta a 0.

Otras CPU pueden iniciarse de diferentes maneras, el 8086 comienza en la dirección FFFF0, pero todas tienen en común que su documentación le indica dónde está esta primera instrucción o Reset Vector está ubicado.

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas