Проблема с памятью загрузчика TCP

Я пытаюсь написать простой автономный загрузчик TCP для микроконтроллера AVR.

Прямо сейчас у меня есть коллекция APN, которые весят почти 14 КБ памяти. Код приложения установит TCP-соединение с сервером, используя сетевой APN, который был сохранен в программном пространстве, и сверится с сервером на наличие любого обновленного кода приложения. Если сервер ответит положительно, код перезапустит сам контроллер, чтобы войти в программу загрузчика. Загрузчик извлечет код приложения и сохранит его в программном пространстве.

Мой вопрос: как я могу сделать автономный загрузчик TCP, не завися от кода приложения для установления TCP-соединения. Поскольку загрузчик ограничен только 8 КБ флэш-памяти, как я могу сохранить 14 КБ APN + 4 КБ кода загрузчика в этом загрузочном разделе 8 КБ?

Код приложения:

  initiate TCP connection using APN in pgmspace;
  check server for any updates;
  if(yes)
  restart;
  else
  normal function;

Код загрузчика:

  request server to send the updated application code;
  receive code and flash the application code;
  goto application code address;

РЕДАКТИРОВАТЬ: Меня больше всего беспокоит то, что если предположить, что что-то пошло не так во время прошивки нового кода приложения, то загрузчик не может подключиться к серверу, и я боюсь, что нет другого выхода, кроме как запрограммировать его с помощью программиста.

Ответы (1)

Сколько памяти в системе?

Если у вас достаточно памяти, не должно быть проблемой сохранить код APN в обычной памяти и вызвать его из загрузчика (в любом случае это то, что делают обычные ОС). Вы должны быть осторожны, чтобы никогда не перезаписывать его, используя хорошее управление памятью. (Я бы поместил его на один конец системной памяти.) Дело в том, что если вы хотите использовать больше памяти при записи приложений, вы должны начать запись в память с помощью загрузчика над кодом APN.

Кроме того, вы также сможете использовать этот код в своих приложениях, если будете достаточно осторожны.

Здесь есть несколько ссылок на это , которые ссылаются на это отличное видео от Майка.