НАВИГАЦИЯ
   Главная
  Программы для ПК [39]
  Программы для ПК-2 [4]
  Скрипты для WEB [8]
  Исходники на C, VC++, С++ Builder [12]
  Исходники на Basic [2]
  Исходники на Pascal [2]
  Исходники для микроконтроллеров [5]
  Электроника для дома [35]
  Электроника для аквариума [1]
  Электроника для автомобиля [12]
  Arduino [4]
  Справочник [5]
  Разное [6]
  Проект "Умный дом"
  Файлы, библиотеки

  FAQ [4]
  Рассылка новостей сайта

  Ссылки
  Сообщение автору

 
 
 
  Rambler's Top100  
Arduino. Недостаточно памяти, программа может работать нестабильно...
Просмотров: 45Дата изменения: 17.02.2019г.


Делал довольно большой проект для Arduino Nano и в один прекрасный момент получил сообщение компилятора такого содержания:
Изменены опции сборки, пересобираем все
Скетч использует 21916 байт (71%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1705 байт (83%) динамической памяти, оставляя 343 байт для локальных переменных. Максимум: 2048 байт.
Недостаточно памяти, программа может работать нестабильно.

Как-то стало не понятно: по идее еще памяти полно, а предупреждение...
Оказалось все просто: если не пользоваться этим модификатором, то все текстовые переменные записываются в SRAM!
Т.е. запись:
const unsigned char txtSite[]={"vovka.sv19.com"};
исправляем на:
const unsigned char PROGMEM txtSite[]={"vovka.sv19.com"};

Если нужен многомерный массив, то пишем так:
const unsigned char PROGMEM txt_LangRu[] = { "Russian" };
const unsigned char PROGMEM txt_LangTrans[] = { "Translit" };
const unsigned char* const PROGMEM arLang[] = { txt_LangRu, txt_LangTrans };

При таком подходе немного замедляется работа с этими переменными, т.к. приходится делать дополнительные телодвижения для получения адреса этих переменных, например, pgm_read_byte_near(), но если они используются для вывода на дисплей, то это не критично, для сравнительно медленного ЖКИ

И на последок, для перекодировки текста и форматирования переменных, для ЖКИ на контроллере HD44780 или KS0066 я использую программу LcdConv.exe
 


Подпишитесь на рассылку новостей сайта!
Использование материалов возможно только при разрешении автора и с обязательным указанием ссылки на сайт vovka.sv19.com
Programmed by Vladimir Sharapov © 2004-2019 http://vovka.sv19.com