actualización remota de firmware

2

Estoy usando un microcontrolador con memoria flash particionada en dos áreas (es decir, Primaria & Secundario. Cuando se realiza una actualización remota del firmware, escribo el archivo binario recibido a través de Ethernet en la partición secundaria (inactiva) de la memoria flash. Si el CRC recibido y calculado coincide, el cargador de arranque copiará el último firmware de la partición secundaria a la primaria.

¿Cómo manejar la situación en la que el tamaño del archivo binario excede el tamaño de la partición primaria o secundaria de la memoria flash?

    
pregunta Vivek V

2 respuestas

7

1) Compra más flash.

2) Si está solo por encima del límite, reduzca el tamaño del código (configure las opciones del compilador para el tamaño mínimo, elimine cadenas duplicadas, verifique el código muerto y las funciones no utilizadas)

3) Comprimir el firmware mientras se descarga. Luego, el área de preparación puede ser más pequeña que la partición primaria, que luego puede hacerse más grande.

    
respondido por el pjc50
3

No puede, al menos no manteniendo el esquema de asignación de memoria que describió. Yo mismo he usado este mismo sistema varias veces, pero tiene la característica de que, de alguna manera, en algún lugar necesitas almacenamiento local para dos imágenes de la aplicación.

Escriba un código más compacto, use un procesador más grande o agregue una memoria externa no volátil.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas