Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сохранение переменной.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Jenya7
Мне нужно сохранять переменную - текущий счетчик. Писать все время во флеш не вариант - долго и износ флэша. Я так понял что можно поместить переменную в неиницилизированную область RAM и при перезагрузке она сохранит свое значение.
я так понимаю static переменные сохранятся в .data секции?
ViKo
А когда питание отключится?
Глобальные переменные не портятся.
Локальные статические переменные не портятся.
Spider
Что-то мне подсказывает, что RAM энергозависим и если снять питание то всё что там было - накроется.
Не раскрыт метод перезагрузки.

ViKo опередил sm.gif
Jenya7
то есть, если рисет по вочдогу то данные сохраятся а если выключили питание то они пропали?
kovigor
Цитата(Jenya7 @ Dec 2 2014, 13:02) *
... а если выключили питание то они пропали?

При отключении питания - да, пропадут. Поставьте копеечную 24LC01 (02, ... , XX) и не мучайтесь ...
Jenya7
Цитата(kovigor @ Dec 2 2014, 15:11) *
При отключении питания - да, пропадут. Поставьте копеечную 24LC01 (02, ... , XX) и не мучайтесь ...

если освобожу I2C пины
kovigor
Цитата(Jenya7 @ Dec 2 2014, 13:22) *
если освобожу I2C пины

Можно написать чисто программную реализацию для любых ножек, там ничего сложного нет ...
ViKo
А backup RAM разве в вашем МК нет? Батарейку присобачить, и почти всё...
Jenya7
Цитата(ViKo @ Dec 2 2014, 15:26) *
А backup RAM разве в вашем МК нет? Батарейку присобачить, и почти всё...

вобще то прибор работает от батарейки. вопрос что делать если батарейку заменят или она разрядится. мне просто один знакомый заморочил голову что есть энергонезависимая область RAM а я на радостях поверил.
ViKo
Тогда нужно периодически перекидывать счетчик из backup-RAM во flash. А при сбросе (включении) прибора восстанавливать счетчик из flash.
Вопрос - когда счетчик сохранять во flash. Можно использовать супервизор на питание. Когда батарейку вынули или она просела, должно еще оставаться достаточно заряда в конденсаторе по питанию, чтобы хватило времени перекинуть...
Jenya7
Цитата(ViKo @ Dec 2 2014, 15:47) *
Тогда нужно периодически перекидывать счетчик из backup-RAM во flash. А при сбросе (включении) прибора восстанавливать счетчик из flash.
Вопрос - когда счетчик сохранять во flash. Можно использовать супервизор на питание. Когда батарейку вынули или она просела, должно еще оставаться достаточно заряда в конденсаторе по питанию, чтобы хватило времени перекинуть...

это неплохое решение, тем более что есть канал меряющий батарейку. я попробую. спасибо.
kovigor
Цитата(ViKo @ Dec 2 2014, 13:47) *
Можно использовать супервизор на питание.

Супервизор плюс ионистор или обычный конденсатор, в зависимости от того, сколько кушает МК в спящем режиме. Например, у меня самая дешевая Нокия, так вот, я заметил, что в ней время не сбивается, даже если вынуть аккумулятор на десяток (больше не проверял) секунд.
Но я бы лучше Serial EEPROM поставил ...
Spider
Цитата(kovigor @ Dec 2 2014, 13:10) *
Супервизор плюс ионистор или обычный конденсатор, в зависимости от того, сколько кушает МК в спящем режиме. Например, у меня самая дешевая Нокия, так вот, я заметил, что в ней время не сбивается, даже если вынуть аккумулятор на десяток (больше не проверял) секунд.
Но я бы лучше Serial EEPROM поставил ...

Offtopic, но даже в самых дешевых нокиях были батарейки 3V таблеточки. Другое дело, что она умерла уже на втором году эксплуатации, но пот на минуту то её и хватает.

Цитата(ViKo @ Dec 2 2014, 12:47) *
Тогда нужно периодически перекидывать счетчик из backup-RAM во flash. А при сбросе (включении) прибора восстанавливать счетчик из flash.
Вопрос - когда счетчик сохранять во flash. Можно использовать супервизор на питание. Когда батарейку вынули или она просела, должно еще оставаться достаточно заряда в конденсаторе по питанию, чтобы хватило времени перекинуть...

Так и делал в одном из проектов. Был диод и конденсатор по более перед самым процом, и линия на внешнее прерываение через делитель (так было проще всего в конкретном применении). По прерыванию быстренько всё сохранял в EEPROM и шудаунился до лучших времён.
toweroff
Можно FRAM вкрутить, если I2C освободится.
10^14 обращений чтение/запись без задержек на запись с частотой до 1 МГц
http://www.cypress.com/?docID=48821
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.