Вторник, 26.11.2024
Мой сайт
Меню сайта
Статистика

Онлайн всего: 61
Гостей: 61
Пользователей: 0
Главная » 2019 » Декабрь » 5 » Программные проблемы Arduino
18:28
Программные проблемы Arduino

Программные проблемы Arduino

1] Компилятор не справился с вызовом функции объекта из цикла loop. Пришлось создать отдельную функцию и вызвать оттуда.
Мне, всего лишь, надо было записывать в часы введённое время при повороте джойстика вправо в определенном экране. Скомпилированное и загруженное вешало этот «компьютер» после нажатия джойстика вправо откуда угодно.
Это явно компилятор какие-то не такие коды записал. Он должен читать ИмяФунуции() и писать ассемблерное jmp [Адрес функции], что в кодах уже означает код команды jmp (прыжок) и этот адрес. Вместо нужных команд – кодов он что-то не то понаписал.
2] Получила от компилятора сообщение  «Low memory available, stability problems may occur», означающая что написанное не влезает в память микросхемы (слишком большая программа, точнее не хватило места на переменные).
Вот что он пишет, когда места пока хватает:
Sketch uses 24 356 bytes (84%) of program storage space.
Maximum is 28 672 bytes.

Global variables use 1 458 bytes (71%) of dynamic memory, leaving 590 bytes for local variables. Maximum is 2 048 bytes.
Я с таким не сталкивалась. В начале 90-х уже не было недостатка памяти. Разве что быстро но плохо компилирующий blinker (для языка Clipper) мог сделать что-то не влезающее в память DOS-а. Но были времена когда и такие вещи были критичны и приходилось оптимизировать тексты.
3] Проблема с памятью пока решилась отказом (где возможно) от строк типа String. Т.е заменой двойных кавычек в текстах на одинарные и String на Char[]. Эти String подключены и если очень хочется, то их можно использовать. Но они как-то не очень корректно работают. Тип char[] не очень удобная классика Си. Но в классическом Си было ещё и динамическое выделение памяти функциям malloc и alloc, которых тут, похоже, нет. Это все не проблемы. Скорее неожиданные особенности.
p/s Такое ощущение, что при создании и даже присвоении типа String он использует какое-то malloc выделение памяти, но потом он эту память не чистит. Отсюда и проблемы.

Просмотров: 229 | Добавил: akostina76 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Календарь
«  Декабрь 2019  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz