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.