Как мы можем уменьшить размер кода в памяти программ на ESP8266

Мы разрабатываем систему контроля доступа iot door с ESP8266 на Платфромио IDE.
Вы можете увидеть все наши работы на esp-rfid GitHub репозиторий.
Мы хотим использовать ota-обновления в наших системах, но код покрывает почти половину памяти, иногда больше половины. Если код занимает больше половины памяти, мы не можем использовать ota update. Как мы можем уменьшить размер кода?

Спасибо за ваши ответы.

Вы можете найти код от там.

Результаты сборки:

DATA: [==== ] 43.4% (used 35592 bytes from 81920 bytes)
PROGRAM: [===== ] 48.6% (used 507732 bytes from 1044464 bytes)

-2

Решение

Если код занимает больше половины памяти, мы не можем использовать ota update.

Что вы можете. Обновление до очень маленькой программы, которая потребляет очень мало памяти, и единственная задача которой — сделать еще одно обновление до следующей версии вашей действительной программы.

Как мы можем уменьшить размер кода?

Трудно сказать, ничего не зная о вашем коде.

2

Другие решения

Не глядя на исходный код, я могу сказать вам, что некоторые функции C ++ дешевле, чем потребление памяти, например, другие: пространства имен, классы (особенно общие) дешевы, а обработка исключений, например, очень дорога.

Несколько советов:

  • при создании кода убедитесь, что вы удалили все символы отладки
  • используйте дженерики, поскольку только исполняемый код преобразуется в исполняемый файл в двоичный код, а не во всю библиотеку.
  • проверьте параметры компилятора / компоновщика, чтобы увидеть, как вы можете уменьшить это еще больше
1

По вопросам рекламы [email protected]