¿Qué debo saber si quiero pasar de los microcontroladores a los microprocesadores? [cerrado]

3

Estoy familiarizado con el uso de microcontroladores, tanto con marcos como Arduino y de forma nativa (PIC / AVR). También estoy familiarizado con la arquitectura general de los sistemas integrados, en la medida en que sé que tiene un procesador con RAM discreta y ROM / flash conectado a través de varios buses. Sin embargo, nunca he creado un proyecto desde cero utilizando un microprocesador.

¿Qué debo saber antes de pasar a los proyectos basados en microprocesadores? Por ejemplo, en un microcontrolador, estoy acostumbrado a enviar solo un código a través de mi compilador y obtener un binario que se puede cargar a través de ISP o similar. ¿Cómo funciona esto con un procesador con flash discreto? ¿Y qué hay de las fuentes de reloj? ¿Los procesadores normalmente vienen con un reloj interno como lo hacen las MCU? Estoy seguro de que también hay muchas "incógnitas desconocidas". ¿Dónde debería buscar para comenzar?

Me interesan principalmente las plataformas ARM y x86, pero el consejo general también sería útil.

    
pregunta Polynomial

2 respuestas

2

La principal diferencia en estos sistemas es que, en general, no se ejecutan la mayoría directamente desde el flash. En cambio, habrá un pequeño programa en flash que actúa como un cargador de arranque, y el programa se copiará de algunos medio como una tarjeta SD o SSD o un disco duro en la RAM, desde donde se ejecuta. Si hay una necesidad de actualizar el cargador de arranque, habrá algunos medios, ya sea a través del microprocesador o externo, para actualizar la reprogramación.

Por lo tanto, cuando actualice su programa, se descargará en su sistema y luego se escribirá en la tarjeta SD o SSD o disco duro, lo que tenga.

Cuando se está ejecutando, realmente no hay diferencia entre un microcontrolador y un microprocesador. Es solo que en este último caso, hay mucha más RAM (quizás varios cientos de MB) de lo que se encontraría en un microcontrolador. A la CPU no le importa si se está quedando sin memoria RAM o flash. Hay algo que debes tener en cuenta: un programa errante puede borrarse a sí mismo en la memoria RAM, mientras que esto no puede suceder en flash.

Los microprocesadores casi siempre tendrán un cristal externo como fuente de reloj. El procesador puede usar un PLL (bucle de bloqueo de fase) para multiplicar la frecuencia del cristal hasta un valor mucho más alto (varios cientos de MHz o incluso un GHz). Esto será parte del código de inicialización.

El acceso a los periféricos es esencialmente igual que con un microcontrolador; son simplemente externos al chip en lugar de dentro de él, por lo que el acceso no es tan rápido. (Los únicos "periféricos" que suelen estar en un chip x86 son los temporizadores, el DMA y el controlador de interrupción). El procesador se comunica con los dispositivos periféricos a través de los puertos de E / S.

    
respondido por el tcrosley
-1

En mi opinión, uno de los mejores métodos para discriminar entre una MPU y una MCU es si la CPU incluye una unidad de administración de memoria (MMU), es decir, un mecanismo de hardware para asignar bloques de memoria no contiguos a un virtual espacio contiguo sobre la marcha, con la asignación dependiente de qué proceso se está ejecutando.

Esto permite que los procesos individuales utilicen cualquier memoria que puedan "ver" y protege cualquier memoria que no puedan "ver" de accesos accidentales.

Una CPU con una MMU es una MPU; una CPU sin una MMU es una MCU.

    
respondido por el markt

Lea otras preguntas en las etiquetas