2

У меня заканчивается память на моем Arduino из-за библиотек, которые я использую. После того, как я включил все необходимые библиотеки, для моего собственного кода осталось очень мало свободной памяти.

Если подключить некоторую внешнюю оперативную память к Arduino, есть ли способ заставить существующие библиотеки использовать внешнюю оперативную память, а не SRAM на arduino, или мне нужно будет изменить код в библиотеке для этого.

Если мне нужно изменить код, это относительно легко?

Share a link to this question
CC BY-SA 3.0
| улучшить этот вопрос | |
  • Привет и добро пожаловать. Я думаю, что это очень специфично для задействованных библиотек (не могли бы вы их указать?) - хотя и маловероятно в общем смысле. Ганима 29 апр.
  • Спасибо за прием :-) Те , что я имею в виду в данный момент находятся библиотека Adafruit OLED здесь и библиотека SD карта здесьSpeedOfSpin 29 апреля '17 в 18:22
3

Что делали программисты в 80-х годах, когда у них заканчивалась память?

Есть старая техника под названием наложения . Одна и та же область памяти используется для разных фаз / шагов программы. Результаты естественным образом сохраняются, но все промежуточные данные удаляются перед следующей фазой / шагом, который повторно использует «общую» область памяти. Необходимое состояние может быть сохранено во внешнем хранилище между выполнением фазы / шага для увеличения доступной локальной памяти.

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

Можно абстрагироваться от этого с помощью интеллектуальных указателей C ++, но заставить существующие библиотеки использовать это будет очень сложной задачей. Есть несколько попыток поддержки виртуальной памяти, такой как virtmem .

Ура!

Share a link to this answer
CC BY-SA 3.0
| улучшить этот ответ | |
  • Спасибо. Раньше я видел библиотеку virtmem мимоходом, но внимательно посмотрел, и похоже, что это может помочь мне в этом. SpeedOfSpin 29 апреля '17 в 20:13