7 votos

¿Son las instrucciones trae de RAM o ROM en un micro-controlador de brazo?

En muchos tutoriales sobre el BRAZO de los registros de la CPU, el registro de instrucción se menciona en tal manera: "Registro R15 en el BRAZO de un micro-controlador es el contador de programa y se apunta a la siguiente instrucción que se obtienen de la memoria".

Pero también he leído que en Harvard la arquitectura, no es una instrucción de la memoria y de la memoria de datos. Lo que he entendido o mal entendido de esto, fue la instrucción de los códigos se almacenan en la memoria flash ROM, y los datos se almacenan en la memoria RAM.

Pero cuando yo lea más acerca de ella, me da la impresión de que las instrucciones también se recuperan de la memoria RAM, en lugar de la ROM.

¿La ROM no tiene nada que ver con el conjunto de la operación, además de almacenar el código de la máquina?

edit: Pregunta no asume ningún tipo de sistema operativo, sólo un independiente BRAZO micro-controlador.

19voto

silverbolt Puntos 18

BRAZO núcleos son realmente lo que se llama modificado de Harvard la arquitectura. En este caso, la memoria RAM y ROM sentarse en el mismo espacio de direcciones, por lo que un procesador ARM puede ejecutar código de acceso de datos. En la versión modificada de la universidad de Harvard la arquitectura, el núcleo de procesamiento está directamente conectado a dos cachés de instrucciones y datos. Esto permite un alto rendimiento debido a ser capaz de acceder a las instrucciones y datos simultáneamente. En un alto nivel combinado de espacio de direcciones hace que el sistema actúe como una de Von Neumann la arquitectura.

La estructura de la dirección de espacio es determinado por las conexiones físicas entre el núcleo de procesamiento de sí mismo y de memorias y periféricos. La mayor parte de la disposición del espacio de direcciones se fija con particular los rangos correspondientes a la memoria asignada a los periféricos, máscara ROM, Flash, RAM, etc. Sin embargo, puede haber un poco de capacidad de reasignación de ciertas secciones de la dirección de espacio o para configurar los periféricos externos o memorias para sentarse en regiones específicas del espacio de direcciones.

10voto

GSerg Puntos 33571

La arquitectura ARM es una arquitectura de von Neumann, no una arquitectura de Harvard. Eso significa que utiliza un espacio de direcciones unificado para instrucciones y datos. Si cualquier dirección particular contiene RAM o ROM es el diseñador del sistema. Las instrucciones pueden ser traídas desde cualquiera.

3voto

Ronan Paixão Puntos 101

Microcontroladores ARM, el nuevo Cortex-M, han modos de operar, ya sea desde la RAM o ROM. Revisar, por ejemplo, BOOT0 y BOOT1 bits en STM32 del Manual de Referencia. Esta bastante configura la dirección de inicio de la ejecución en realidad un alias de la real direcciones de memoria en una memoria fija la dirección de segmento (0x0000 0000 a 0x0007 FFFF).

El Cortex-M de core tiene cuatro tipos de memoria: RAM, ROM, flash y la Memoria del Sistema), FSMC y periférico. La memoria RAM es, así, el interior de memoria RAM estática. ROM flash interna o la unwritable incrustado gestor de arranque. FSMC permite el uso de la memoria externa (tanto RAM y ROM, en función de lo que el hardware externo es). Periféricos de memoria son registros específicos que se asignan a las funciones periféricas, como UARTs, Adc, etc. El hardware para acceder a ellas es independiente para ganar velocidad (Harvard-estilo), especialmente debido a que flash es más lento que el SRAM.

Sin embargo, todos los que son unificados en un único espacio de direcciones (Von Neumann-estilo), lo que hace que el acceso a ellos simplificada desde el punto de vista del programador. Sólo se diferencian por sus rangos de direcciones (depende de la implementación). El ARRANQUE de los pines de permitir la configuración de entre tres direcciones de inicio: uno en la memoria RAM, uno en la ROM (sólo lectura gestor de arranque) y otra en la ROM (memoria flash). Esto hace que sea posible para responder a su pregunta como "ambos". Nunca lo he intentado, pero parece que es posible saltar de un segmento a otro.

Tenga en cuenta, sin embargo, que los recuerdos no pueden ser tratadas por igual. Usted no puede arbitrariamente escribir a la ROM. Es flash, haciendo de ellos regrabable, pero debe utilizar un procedimiento especial para escribir en ellos (se le suele llamar algo así como "el uso de flash como memoria EEPROM" para almacenar los datos de programa, o "gestor de arranque" cuando el almacenamiento de código de programa, normalmente en el inicio).


Curioso info:

Cuando uno se ejecuta desde una memoria flash (ROM), las instrucciones se recuperan directamente desde la ROM. Por lo general hay algunas código de inicio que se copian los datos de la ROM a la RAM (inicializa las variables globales, normalmente se almacena en la sección de datos). El Manual de Referencia también lleva esta info

Cuando arranque de SRAM, en el código de inicialización de la aplicación, usted tienen que reubicar la tabla de vectores de SRAM utilizando el NVIC excepción la tabla y el desplazamiento de registro.

que es normalmente llevado a cabo por el código de inicio.

0voto

1615903 Puntos 101

Independientemente de la Arquitectura, R15 celebrará el contador de programa la dirección. El siguiente (válido) la instrucción se pueden recuperar desde el este (válido) de la dirección. Tenga en cuenta que es posible para cualquiera de estos problemas.

1) no válido op códigos. 2) la Memoria de cualquier tipo no puede ser instalado por la dirección.

Sí es conveniente para las áreas reservadas para los datos de no ser ejecutado como código de programa. El espacio de direcciones de la que hablamos limitada (no está a una ventana de espacio de direcciones como se usa en PC, gama media, mainframe, etc.) y puede contener RAM, ROM, Puertos Periféricos.

Sin duda, debe ser posible para obtener instrucciones de la memoria RAM, si hemos de RAM para las direcciones que se consideren válidos para obtener instrucciones, así que el código puede ser cargado si tenemos el deseo, la superposición de estilo. Incluso sin un sistema operativo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X