gretis 0 11 сентября, 2007 Опубликовано 11 сентября, 2007 · Жалоба глобальными \ статическими \ членами классов, экземпляры которых глобальны либо создаю в стеке У меня на tiny2313 как-то уж очень быстро все заполняется :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 11 сентября, 2007 Опубликовано 11 сентября, 2007 · Жалоба Тогда здесь же вопрос к людям, имеющим в приложении к МК опыт бОльший, нежели я :) Куда лучше складировать данные классов - во флеш или в кучу? Понимаю, что зависит от ситуации, но может, направите на литературу, где можно про это найти. У Вас нет ясности, что такое Flash, а что такое RAM. Когда разберетесь, таких вопросов не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gretis 0 11 сентября, 2007 Опубликовано 11 сентября, 2007 (изменено) · Жалоба alexander55, не совсем понимаю, к чему Вы клоните, возможно неверно понимаю принцип работы. Если складывать данные в флеш и обращаться к ним, например, через указатели - то они же не будут РАМу постоянно засорять? В грубой аналогии - флеш - это как HDD? Изменено 11 сентября, 2007 пользователем aspID Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 11 сентября, 2007 Опубликовано 11 сентября, 2007 · Жалоба alexander55, не совсем понимаю, к чему Вы клоните, возможно неверно понимаю принцип работы. Если складывать данные в флеш и обращаться к ним, например, через указатели - то они же не будут РАМу постоянно засорять? Запись во флеш осуществляется страницами (это отдельная песня), т.е. их надо подготавливать в буфере (в том же RAM), а потом писать блоком. Что тут можно выиграть, я не знаю. В классах данные находятся в RAM, а функции во Flash. В грубой аналогии - флеш - это как HDD? Аналогии, безусловно, есть. Запись: в HDD посекторная - во флешь постраничная. Чтение: из HDD посекторное - из флешь, в зависимости от ее организации, побайтное для AVR, для ARM вопрос более сложный. Запись во флеш осуществляется страницами (это отдельная песня), т.е. их надо подготавливать в буфере (в том же RAM), а потом писать блоком. Что тут можно выиграть, я не знаю. В классах данные находятся в RAM, а функции во Flash. Флешь иммет крнечный ресурс по перезаписи. Аналогии, безусловно, есть. Запись: в HDD посекторная - во флешь постраничная. Чтение: из HDD посекторное - из флешь, в зависимости от ее организации, побайтное для AVR, для ARM вопрос более сложный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tag 0 11 сентября, 2007 Опубликовано 11 сентября, 2007 · Жалоба Тогда здесь же вопрос к людям, имеющим в приложении к МК опыт бОльший, нежели я :) Куда лучше складировать данные классов - во флеш или в кучу? Понимаю, что зависит от ситуации, но может, направите на литературу, где можно про это найти. ...зависит от конкретной задачи. В принципе объекты класса можно размещать во flash, если данные объекта не изменяются во время выполнения или изменяются редко. Куча предпочтительней, но при использовании объектов разных классов возможна дефрагментация и как следствие при создании объекта во время выполнения память может быть не выделена даже если общий размер свободной памяти на куче больше требуемой. У меня например есть суеверный страх перед кучей :) , но если программа продумана хорошо проблем нет. В случае создания статических обектов проблемы кучи исчезают и поэтому он предпочтительней, как плюс - уже на этапе компиляции известен объем требуемой памяти (в случае кучи надо анализировать выполнение программы чтобы его определить, либо определять опытным путем при выполнении программы). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gretis 0 11 сентября, 2007 Опубликовано 11 сентября, 2007 · Жалоба У меня например есть суеверный страх перед кучей У меня когда-то в "классике" был такой страх перед динамикой и перед использованием двоичных файлов. Порой вообще необоснованный :) Сейчас в случае с МК этого нет. Может быть, напрасно? если программа продумана хорошо сомневаюсь, поскольку опыт работы с МК у меня минимальный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 11 сентября, 2007 Опубликовано 11 сентября, 2007 · Жалоба В принципе объекты класса можно размещать во flash, если данные объекта не изменяются во время выполнения или изменяются редко. А у меня суеверный страх перед изменением flash (пусть даже редким) во время работы программы. По-моему, в 99,99% случаев использовать этот прием не стоит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 11 сентября, 2007 Опубликовано 11 сентября, 2007 · Жалоба А у меня суеверный страх перед изменением flash (пусть даже редким) во время работы программы. По-моему, в 99,99% случаев использовать этот прием не стоит... Интуиция Вас не подводит. В предыдущем высказывании при редактировании я добавил одну фразу, сейчас с удивлением смотрю на результат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться