¿Se pueden escalar las limitaciones de ROM y RAM de la MCU?

0

Tenga en cuenta : aunque esta pregunta específica tiene que ver con el ARM SAM3X8E Cortex M3 series , es realmente una pregunta genérica que debería ser aplicable a todos los microcontroladores y, por lo tanto, debe ser respondida por cualquiera que tenga experiencia significativa con cualquier MCU.

Por lo tanto, parece que el ARM SAM3X8E solo tiene una ROM de 512 KB (es decir, la memoria para contener binarios flasheados) y la RAM de 96 KB (es decir, la memoria para ejecutar esos binarios flasheados). Por lo tanto, si tengo un binario, digamos, my-realtime-app.elf , eso es 400KB y solo consume, digamos, 60KB (máx.) En tiempo de ejecución, felizmente se almacenará y ejecutará en este MCU.

Me pregunto si hay alguna forma de "adjuntar" (lo que sea que eso signifique) almacenamiento ROM / RAM adicional a una MCU para superar estas limitaciones, y por qué esto es posible o no.

Por ejemplo, supongamos que my-realtime-app.elf se somete a una extensa refactorización y comienza a realizar todo tipo de nuevos cálculos y tiene nuevas características, etc., y ahora tiene un tamaño de 12 MB (el propio binario), y ahora también requiere 15 MB de RAM en tiempo de ejecución Este binario ya no puede "encajar" / correr en la MCU, al menos no sin algún tipo de asistencia. Me pregunto si de alguna manera podría conectar ROM y RAM adicionales a la MCU, para darle más potencia. Si esto no es posible (para cualquier escenario, ROM y RAM por igual), me gustaría saber por qué. Y si es posible, estoy interesado en cómo.

Tengo que creer que esto es posible, pero no estoy seguro acerca del enfoque / implementación. También, me imagino que la arquitectura de bits de la MCU probablemente limita el tamaño del almacenamiento adjunto. Por ejemplo, esta MCU de ARM es de 32 bits, lo que significa que solo es direccionable hasta 4 GB. Por lo tanto, no podría manejar binarios o requisitos de memoria de tiempo de ejecución de aproximadamente 4 GB, etc.

    
pregunta smeeb

1 respuesta

3

Un microcontrolador puro tiene los buses de memoria (los cables y la lógica que conectan la CPU a su ROM, RAM y periféricos) internamente, por lo tanto, no hay cables para conectar una ROM o RAM externa. Está atascado con cualquier ROM y RAM que el fabricante haya incluido en la versión de chip que está utilizando. En la mayoría de los casos, el fabricante ofrece una gama de chips relacionados, siendo la ROM y el tamaño de la RAM una de las características distintivas de los distintos chips. Eliges el chip que más se ajuste a tus necesidades. Tu SAM3X8E parece estar en esta categoría.

Un microprocesador puro no tiene memoria interna y, por lo tanto, tiene pines externos que se utilizan para conectar la ROM y la RAM externas. Eliges la ROM y la RAM para satisfacer tus necesidades.

Hay chips híbridos, que tienen tanto RAM interna como ROM y pines que se pueden usar para conectar RAM externa y ROM. (En algunos casos, la memoria externa solo se puede usar para el código o solo para los datos). Estos chips se pueden usar en modo de microcontrolador (sin memoria adicional) o en modo de microprocesador (con memoria externa).

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas