Можете ли вы сохранить данные в раздел кучи в памяти Arduino?

На обычных компьютерах куча очищается при закрытии программы, но могу ли я сохранить данные в кучу Arduino с помощью функции malloc. И будет ли он очищен после выключения Arduino?

, 👍0

Обсуждение

Да, вы можете использовать malloc (хотя это редко бывает хорошей идеей в такой маленькой системе памяти). Будет ли он «очищен»? Нет. Оно потеряется. Нет такого понятия, как «чистый». Вынимаешь питание, память стирается. Без питания для поддержания состояния памяти нет памяти, которую можно было бы «очистить». И нечего делать эту "чистку"., @Majenko

@Majko Итак, я потеряю данные, когда Arduino выключится, верно?, @Stel Team

Да. Как будто вы теряете свой текстовый документ, когда отключаете питание от компьютера., @Majenko

@Маженко Спасибо! Будет здорово, если вы опубликуете это в качестве ответа., @Stel Team


1 ответ


Лучший ответ:

4

Да, вы можете использовать malloc() на Arduino, однако я бы не рекомендовал вам использовать это, поскольку память требует большого количества памяти и чрезмерного использования malloc() и free() вызывают фрагментацию кучи, которая может съедать вашу память и вызывать случайные сбои (String — главная причина этого).

Я не понимаю, что вы подразумеваете под «очисткой» памяти. При отключении питания содержимое памяти теряется. Вся SRAM забывает свое содержимое, если нет возможности поддерживать это состояние. Примерно так же, как когда вы отключаете компьютер от сети, он «забывает», что Windows загружена.

Если вы хотите сохранить информацию при отключенном питании, вам необходимо использовать EEPROM.

,