El tamaño de la memoria flash incorporada no es suficiente

11

Estoy usando el controlador TM4C1230C3PMI del instrumento de Texas en uno de mis proyectos. Tiene 32 KB de flash interno, que no es suficiente para mi aplicación. Hay microcontroladores de mayor tamaño de flash disponibles en el mercado que se pueden usar, pero solo quiero utilizar este microcontrolador. Según mi conocimiento, la EEPROM externa se puede utilizar para aumentar el tamaño total del flash (memoria de programa).

¿Mi pensamiento es correcto?

Si no es así, sugiera cómo puedo aumentar el tamaño total de la memoria flash del controlador.

Sanjeev Kumar
fuente
1
La EEPROM externa generalmente se usa para almacenar datos porque el Flash interno permite menos ciclos de borrado / escritura que la mayoría de las EEPROM y puede sobrescribirse en bytes. Para las CPU con una interfaz de bus externa (la suya no tiene esto), sería posible agregar memoria de programa externa (sin embargo, esto es un poco complicado ...). Teóricamente, sería posible almacenar fragmentos de código en una EEPROM externa y cargar este código en la RAM para ejecutarlo; sin embargo, en la mayoría de los casos, este escenario no es realista.
Martin Rosenau
3
Hace muchos años, una máxima relacionada era "Si no puedes hacerlo en 1K, no puedes hacerlo". Pensé que era inteligente y valía la pena pensarlo, pero realmente no lo acepté. Entonces MicroChess llegó en 1K.
user2338816
1
¿Por qué no arranca su código desde una memoria externa? Hay una serie de memorias externas que se pueden conectar a su uC. Esto no impondrá restricciones a su flash interno ya que iniciará su código externamente.
AlphaGoku

Respuestas:

22

No puede extender la memoria del programa (flash). TI produce el mismo chip con el doble de flash y RAM, pero nada más cambió: TM4C1230D5PMI .

Si no puede usar un chip con flash más grande, tendrá que reducir el tamaño de su código:

  • Deshabilite la depuración, como la printffunción costosa . Un printfsoporte de salida de punto flotante generalmente lo retrasará entre 5 KB y 10 KB.
  • Asegúrese de compilar con la optimización habilitada; normalmente, el indicador del compilador es -Os.
  • Los compiladores modernos pueden hacer la optimización del tiempo de enlace (LTO) . Con gcc, obtienes esto con -flto. Debe pasar -fltoa las etapas de compilación y enlace, para todos los archivos. Esto normalmente reduce el tamaño del código producido en un 30% -50%.
corecode
fuente
2

Puede obtener la huella de software más pequeña utilizando ensamblador y un lenguaje similar a Forth diseñado para su propósito. Otro es el código de máquina comprimido si hay mucho código casi idéntico.

Mikkel Alan Stokkebye Christia
fuente