Мелкие вопросы по МК и ПЛИС.
Re: Мелкие вопросы по МК и ПЛИС.
Что размазывать? Зачем?
Сказали уже - в EEPROM постоянно писать не нужно. Если у вас часто изменяются данные, храните (и изменяйте сколько влезет) их в ОЗУ, считывая туда из EEPROMа при включении, и записывая обратно в EEPROM при выключении питания.
Сказали уже - в EEPROM постоянно писать не нужно. Если у вас часто изменяются данные, храните (и изменяйте сколько влезет) их в ОЗУ, считывая туда из EEPROMа при включении, и записывая обратно в EEPROM при выключении питания.
-
Prosperous
- Встал на лапы
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
Re: Мелкие вопросы по МК и ПЛИС.
Да я это все понял, тут в некоторых темах советуют сохранять данные в разные ячейки ЕЕПРОМ, что повышает ресурс памяти. А как это организовать? Типа цикла какого - нибудь делать с заранее известными ячейками? или в рандомные пишется и как - то отслеживается?
Re: Мелкие вопросы по МК и ПЛИС.
Как часто устройство будет включаться/выключаться? При условии, что 1 раз в день (ежедневно) , ресурса ячейки тебе хватит на 27 лет.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
273 года для EEPROM, 27 лет это если хранить в основной памяти, но программная запись туда возможна только из бутлоадера.
Переменные в RAM будут хранится, а в EEPROM - эвакуироваться.
Переменные в RAM будут хранится, а в EEPROM - эвакуироваться.
Re: Мелкие вопросы по МК и ПЛИС.
Я имел ввиду ресурс перезаписи, у них около 10000 если память не изменяет...
В смысле? А SPM для чего?
но программная запись туда возможна только из бутлоадера.
В смысле? А SPM для чего?
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Так вот SPM и работает только из бутлоадера, попытка использовать команду из основной программы ни к чему не приведет. Это сделано для того чтобы программа не могла убить сама себя и основную ФЛЕШ-память при ошибке или из каких-то других соображений. На некоторых контроллерах вовсе нет бутлоадера, и команда SPM является простым балластом.
Re: Мелкие вопросы по МК и ПЛИС.
Хотел поспорить, но глянул даташит.
ATmega48A/48PA/88A/88PA/168A/168PA/328/328P support a real Read-While-Write Self-Programming mechanism. There is a separate Boot Loader Section, and the SPM instruction can only execute from there. In ATmega 48A/48PA there is no Read-While-Write support and no separate Boot Loader Section. The SPM instruction can execute from the entire Flash.
Вот на 48й я её и испытывал
ATmega48A/48PA/88A/88PA/168A/168PA/328/328P support a real Read-While-Write Self-Programming mechanism. There is a separate Boot Loader Section, and the SPM instruction can only execute from there. In ATmega 48A/48PA there is no Read-While-Write support and no separate Boot Loader Section. The SPM instruction can execute from the entire Flash.
Вот на 48й я её и испытывал
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Для порядку везде должны быть исключения...
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Ну и ладушки.ploop писал(а):Хотел поспорить, но глянул даташит.
...
Там, где есть бут-лоадер, подпрограмму записи можно разместить в секции бут-лоадера и вызывать ее откуда угодно.
Там, где бут-лоадера нет (mega48, tiny13, …), там SPM выполняется из откуда угодно, просто выполнение программы тормозится до конца записи, так как нет области RWW.
Вот где засада, так это в tiny4..10/20/40
Но у них команды SPM и нет. У них и LPM нет, флеш мапится с адреса 0x4000 для чтения обычными LDS/LD/LDD.
Если бы ещё STS/ST/STD на флеш работали
А то ни EEPROM нет, ни возможности записи во флеш изнутри. Итого мимо меня.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Флеш всеравно не выгодно использовать для хранения условно-переменных данных, у нее ресурс в 10 а то и в 100 раз меньше чем у EEPROM.
Re: Мелкие вопросы по МК и ПЛИС.
Мне на самом деле ни разу не приходилось применять SPM. Испытывал помню, давно, но ради спортивного интереса. EEPROM-ки пока хватало на всё.
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Для этого есть фьюз BOOTEN (у имеющих область бут-лоадера, скажем, у меги88) и SELFPRGEN (у не имеющих области бут-лоадера, скажем, у меги48, тини13).Alexeyslav писал(а):Это сделано для того чтобы программа не могла убить сама себя и основную ФЛЕШ-память при ошибке или из каких-то других соображений.
У каких контроллеров команда SPM есть, но не рабочая? Я не очень бут-лоадерами интересуюсь, мож что и пропустил.Alexeyslav писал(а):На некоторых контроллерах вовсе нет бутлоадера, и команда SPM является простым балластом.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Так «невыгодно» или «невозможно, команда- балласт»Alexeyslav писал(а):Флеш всеравно не выгодно использовать для хранения условно-переменных данных, у нее ресурс в 10 а то и в 100 раз меньше чем у EEPROM.
Да и что значит «невыгодно»?
Для каких-то данных и EEPROM может мало быть, FRAM не зря придумали.
Для каких-то и флеша хватит. Вон у MSP430 и всяких прочих ARM-ов EEPROM «не частый гость» и ничего.
Если в среднем данные нужно раз в день писать, то и флешовые 10 тысяч (однотысячные разве сейчас остались?) это 27лет, как уже писали.
Не знаю, как у кого, мои серийные устройства больше 12-14 лет пока не работали.
С выделением бОльшей области и размазыванием записей для такого срока можно и раз пять в день писать.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
-
Prosperous
- Встал на лапы
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
Re: Мелкие вопросы по МК и ПЛИС.
ploop писал(а):Как часто устройство будет включаться/выключаться? При условии, что 1 раз в день (ежедневно) , ресурса ячейки тебе хватит на 27 лет.
Я делаю прошивку и отдаю устройство другим разработчикам, Которые будут его тестить уже с точки зрения своих нужд. Так что не могу точно сказать. В режиме отладки я думаю не больше 1000 раз. Потом вообще относительно редко.
А по поводу перезаписи значений в разные ячейки памяти, я интересуюсь с точки зрения повышения своего профессионального уровня, мало ли в будущем пригодится.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Перезапись в разные ячейки - это другой уровень работы с ячейками. разделяешь всю память на кластеры, каждый кластер - размером с необходимую область для хранения твоих данных + 1 байт. Который если не равен $FF - значит данный кластер сейчас используется. Когда надо считать данные в первый раз - перебираешь все кластеры и останавливаешься на первом у которого этот признак не равен $FF. Каждая новая запись - в следующий по счету кластер. Чем больше кластеров тем реже каждый из них будет перезаписываться. Заодно перед записью проверять содержимое ячейки, если оно равно тому что надо записать - лишний раз её не дергать.
Второй вариант более надежный, хранить не признак кластера а контрольную сумму - если она при чтении после записи совпадает - кластер жив, если нет - записывать в следующий. Таким образом сначала затрется первый кластер, потом будет затираться следующий и т.д. Для облегчения задачи, принять соглашение если контрольная сумма равна нулю - то кластер считать поврежденным и не тратить время на рассчет контрольной суммы и проверку.
Второй вариант более надежный, хранить не признак кластера а контрольную сумму - если она при чтении после записи совпадает - кластер жив, если нет - записывать в следующий. Таким образом сначала затрется первый кластер, потом будет затираться следующий и т.д. Для облегчения задачи, принять соглашение если контрольная сумма равна нулю - то кластер считать поврежденным и не тратить время на рассчет контрольной суммы и проверку.
-
Prosperous
- Встал на лапы
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
Re: Мелкие вопросы по МК и ПЛИС.
Спасибо за ответ 
-
РЛС
- Это не хвост, это антенна
- Сообщения: 1371
- Зарегистрирован: Вс июл 25, 2010 17:30:25
- Откуда: с севера
Re: Мелкие вопросы по МК и ПЛИС.
Всем привет!
Где можно почитать хорошие статьи про робототехнику и роботов?
Где можно почитать хорошие статьи про робототехнику и роботов?
- Chip115
- Сверлит текстолит когтями
- Сообщения: 1132
- Зарегистрирован: Пт фев 16, 2007 14:18:20
- Откуда: Новосибирск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
РЛС писал(а):Всем привет!
Где можно почитать хорошие статьи про робототехнику и роботов?
roboforum.ru
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
-
РЛС
- Это не хвост, это антенна
- Сообщения: 1371
- Зарегистрирован: Вс июл 25, 2010 17:30:25
- Откуда: с севера
Re: Мелкие вопросы по МК и ПЛИС.
Ааа они что все роботы делают на ардуинках???
\
\