Перейти к содержанию
    

глобальными \ статическими \ членами классов, экземпляры которых глобальны либо создаю в стеке

У меня на tiny2313 как-то уж очень быстро все заполняется :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда здесь же вопрос к людям, имеющим в приложении к МК опыт бОльший, нежели я :)

Куда лучше складировать данные классов - во флеш или в кучу? Понимаю, что зависит от ситуации, но может, направите на литературу, где можно про это найти.

У Вас нет ясности, что такое Flash, а что такое RAM. Когда разберетесь, таких вопросов не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

alexander55, не совсем понимаю, к чему Вы клоните, возможно неверно понимаю принцип работы. Если складывать данные в флеш и обращаться к ним, например, через указатели - то они же не будут РАМу постоянно засорять?

 

В грубой аналогии - флеш - это как HDD?

Изменено пользователем aspID

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

alexander55, не совсем понимаю, к чему Вы клоните, возможно неверно понимаю принцип работы. Если складывать данные в флеш и обращаться к ним, например, через указатели - то они же не будут РАМу постоянно засорять?

Запись во флеш осуществляется страницами (это отдельная песня), т.е. их надо подготавливать в буфере (в том же RAM), а потом писать блоком. Что тут можно выиграть, я не знаю.

В классах данные находятся в RAM, а функции во Flash.

 

В грубой аналогии - флеш - это как HDD?

Аналогии, безусловно, есть.

Запись: в HDD посекторная - во флешь постраничная.

Чтение: из HDD посекторное - из флешь, в зависимости от ее организации, побайтное для AVR, для ARM вопрос более сложный.

 

 

Запись во флеш осуществляется страницами (это отдельная песня), т.е. их надо подготавливать в буфере (в том же RAM), а потом писать блоком. Что тут можно выиграть, я не знаю.

В классах данные находятся в RAM, а функции во Flash.

Флешь иммет крнечный ресурс по перезаписи.

Аналогии, безусловно, есть.

Запись: в HDD посекторная - во флешь постраничная.

Чтение: из HDD посекторное - из флешь, в зависимости от ее организации, побайтное для AVR, для ARM вопрос более сложный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда здесь же вопрос к людям, имеющим в приложении к МК опыт бОльший, нежели я :)

Куда лучше складировать данные классов - во флеш или в кучу? Понимаю, что зависит от ситуации, но может, направите на литературу, где можно про это найти.

 

 

 

 

...зависит от конкретной задачи. В принципе объекты класса можно размещать во flash, если данные объекта не изменяются во время выполнения или изменяются редко. Куча предпочтительней, но при использовании объектов разных классов возможна дефрагментация и как следствие при создании объекта во время выполнения память может быть не выделена даже если общий размер свободной памяти на куче больше требуемой. У меня например есть суеверный страх перед кучей :) , но если программа продумана хорошо проблем нет. В случае создания статических обектов проблемы кучи исчезают и поэтому он предпочтительней, как плюс - уже на этапе компиляции известен объем требуемой памяти (в случае кучи надо анализировать выполнение программы чтобы его определить, либо определять опытным путем при выполнении программы).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня например есть суеверный страх перед кучей

У меня когда-то в "классике" был такой страх перед динамикой и перед использованием двоичных файлов. Порой вообще необоснованный :) Сейчас в случае с МК этого нет. Может быть, напрасно?

если программа продумана хорошо

сомневаюсь, поскольку опыт работы с МК у меня минимальный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В принципе объекты класса можно размещать во flash, если данные объекта не изменяются во время выполнения или изменяются редко.

А у меня суеверный страх перед изменением flash (пусть даже редким) во время работы программы. По-моему, в 99,99% случаев использовать этот прием не стоит...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А у меня суеверный страх перед изменением flash (пусть даже редким) во время работы программы. По-моему, в 99,99% случаев использовать этот прием не стоит...

Интуиция Вас не подводит.

В предыдущем высказывании при редактировании я добавил одну фразу, сейчас с удивлением смотрю на результат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...