Estoy intentando escribir un gestor de arranque TCP simple e independiente para un microcontrolador AVR.
En este momento, tengo una colección de APN que pesa casi 14 KB de memoria. El código de la aplicación establecerá una conexión TCP con el servidor, utilizando el APN de la red que se almacenó en el espacio del programa y verifica con el servidor cualquier código de aplicación actualizado. Si el servidor responde positivamente, el código reiniciará el controlador para ingresar al programa del cargador de arranque. El gestor de arranque buscará el código de la aplicación y lo almacenará en el espacio del programa.
Mi pregunta es: ¿Cómo puedo hacer el cargador de arranque TCP independiente sin depender del código de la aplicación para establecer la conexión TCP? Como el cargador de arranque solo está limitado a 8 KB de memoria flash, ¿Cómo puedo almacenar los 14 KB de APN + 4 KB de código del cargador de arranque en esta sección de inicio de 8 KB?
Código de la aplicación:
initiate TCP connection using APN in pgmspace;
check server for any updates;
if(yes)
restart;
else
normal function;
Código del cargador de arranque:
request server to send the updated application code;
receive code and flash the application code;
goto application code address;
EDITAR: Mi principal preocupación aquí es que, si se supone, algo salió mal al actualizar el nuevo código de la aplicación, entonces el cargador de arranque no puede conectarse al servidor y me temo que no hay otra opción, pero programarlo con un programador