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 32KB de flash interno, lo cual no es suficiente para mi aplicación. El microcontrolador de mayor tamaño de flash está disponible en el mercado, pero se puede usar solo con este microcontrolador. Según mi conocimiento, la EEPROM externa se puede utilizar para aumentar el tamaño total del flash (memoria del programa).

¿Mi pensamiento es correcto?

Si no, sugiérame, ¿cómo puedo aumentar el tamaño total de la memoria flash del controlador?

    
pregunta Sanjeev Kumar

2 respuestas

22

No puede ampliar 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 puedes usar un chip con un flash más grande, tendrás que reducir el tamaño de tu código:

  • Deshabilite la depuración, como la costosa función printf . Un printf que admite la salida de punto flotante normalmente te devolverá alrededor de 5KB-10KB.
  • Asegúrese de compilar con la optimización habilitada; por lo general, el indicador del compilador es -Os .
  • Los compiladores modernos pueden hacer optimización de tiempo de enlace (LTO) . Con gcc, obtienes esto con -flto . Debe pasar -flto a 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%.
respondido por el corecode
2

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

    

Lea otras preguntas en las etiquetas