El ARM SAM3X8E de 32 bits tiene 512 KB de ROM y 96 KB de RAM integrados. Esto significa que si le muestro un binario que tiene, digamos, 400 KB de tamaño y consume, digamos, 80 KB de RAM (máx.) en tiempo de ejecución, entonces ese binario "encajará" en esa MCU. Sin embargo, no podría flashear un binario de 800 KB en el chip, ni podría ejecutar un binario que consuma 1 MB de RAM en tiempo de ejecución. Tiene sentido.
Luego está la última Raspberry Pi, con una ARM A7 de 32 bits que tiene 1 GB de RAM (no pude encontrar su tamaño de ROM). Esto me hace preguntarme qué tipo de vudú y hechicería están en juego con estos MCU ARM que están en el RPi:
De todos modos, lo corté, simplemente no cuadra ni tiene sentido para mí. ¿ Cómo es que un producto ARM es aparentemente 10 000 veces más grande (en cuanto a capacidad de memoria) que otro?
La RAM en la Raspberry Pi está fuera de la CPU. En los modelos originales, esto estaba en un paquete sobre paquete : los modelos más nuevos lo tienen montado debajo de la CPU, en el otro lado de la placa.
Es posible que descubra que puede extender el SAM3X8E de la misma manera: la mayoría de las MCU tienen una interfaz de memoria externa para este tipo de cosas: busque EMIF en la hoja de datos.
La razón por la que no puede encontrar el tamaño de ROM de Raspberry Pi es que tiene una pequeña mancha binaria en la CPU que luego admite el arranque desde flash, nuevamente externo y en forma de tarjeta micro SD.
Ah, ¿y por qué la Raspberry Pi usa la CPU que usa? Eben Upton trabaja para Broadcom...
Simón Richter