-
- Вспомнилось, что когда у меня в ATMEGA1284 закончилось всё ОЗУ, я
стал хранить состояния всех управляющих Samx(29 знак., 23.12.2022 00:07)
- А ведь подключить несколько мегабайт внешней статической рамы к
старшей меге это задача для дошкольников. - Boвa(23.12.2022 06:19)
- Внезапно, у ATmega***4 - нет EMIF. - Toчкa oпopы(23.12.2022 11:48)
- Ногодрыг у АВР по крайней мере не медленнее циклов обращения к
памяти у MCS-51 при одинаковых тактовых.. - Boвa(24.12.2022 05:33)
- Да ладно. У однотактовых 51 тож все хорошо с ногодрыгом. - LightElf(24.12.2022 11:51)
- ATxmega128A1. 16 Мбит 4 битной SDRAM :) можно прицепить. Одна
засада - такой памяти на -40 нет. - Evgeny_CD(23.12.2022 14:24)
- Да-да, мы помним линух на атмеге :-) SciFi(1 знак., 23.12.2022 14:28, ссылка)
- Жениться ему надо - LightElf(23.12.2022 16:28)
- Блин, реальность круче фантазии! - Evgeny_CD(23.12.2022 14:31)
- Да-да, мы помним линух на атмеге :-) SciFi(1 знак., 23.12.2022 14:28, ссылка)
- RAM на SPI. Вопрос в необходимой скорости. И более философский - а
нужны ли такие извращения. - Evgeny_CD(23.12.2022 14:23)
- Извращения нужны не чтобы ими страдать, а чтобы ими наслаждаться. - Boвa(24.12.2022 05:29)
- Ногодрыг у АВР по крайней мере не медленнее циклов обращения к
памяти у MCS-51 при одинаковых тактовых.. - Boвa(24.12.2022 05:33)
- Внезапно, у ATmega***4 - нет EMIF. - Toчкa oпopы(23.12.2022 11:48)
- А ведь подключить несколько мегабайт внешней статической рамы к
старшей меге это задача для дошкольников. - Boвa(23.12.2022 06:19)
- С этим не все так просто как кажется. У меня на практике получилось
так: il-2(1162 знак., 17.12.2022 10:43)
- +1 за бесперспективность сохранения состояния. У меня, данные которые действительно необходимо сохранить - история значений. Но с ними тривиально, достаточно атаморности работы с таблицей. Cкpипaч(79 знак., 18.12.2022 11:08)
- А у всех более-менее современных Cortex за ~3-20мс можно во
внутреннюю флэш записать сектор -обычно 64 или 256 байт при
потреблении 3-20мА. Достаточно небольшой емкости по питанию чтобы
по BOD или просто по команде несколько раз в этот сектор сбросить
структуру текущего состояния (который хранится в RAM) и даже после
перезагрузки состояние восстановится. - General(17.12.2022 11:06)
- Если данные битые, то нет смысла их сохранять. Только 1 байт, если
хочешь обеспечить до 256 исходных состояний. Если надо больше
состояний - тогда 2 байта :-) - il-2(17.12.2022 11:11)
- Спасибо. Понял про надежду в разных уголках матрицы, авось... В
общем - это почти стандартный метод - обязательно иметь и сохранять
текущую структуру системы, и даже лог событий читаемый при
программном __NVIC_SystemReset(); Эдак и движемся от автоматов к ИИ
встраиваемых систем :) bnb62(210 знак., 18.12.2022 11:53)
- вариант "умного" контроллера
SSDEEPROM, который размазывает ресурс записи по всему массиву EEPROM, опускаем (это отдельная тема вообще-то :) а вот наиболее простой в реализации метод - мажоритарная работа с EEPROM - неплохой вариант (требуется тройной расход памяти) У меня так сделано в наиболее ответственных проектах, где сохранность EEPROM крайне важна. Adept(1761 знак., 18.12.2022 18:46 - 19:13)- Adept, извини, но ты уже третий-четвёртый раз обновляешь свой пост в
полторытыщи символов, это издевательство - найди сотню отличий.
имхо. - m16(18.12.2022 19:33)
- да, там по мелочи всё (сначала по-памяти написал как, потом
уточнил, глянув исходники, потом ошибки/очепятки поправил. Сорри
:(( нужно не обращать внимание :)) суть донесена, в общем-то в
первом варианте :)) - Adept(18.12.2022 19:36)
- не, ты не обижайся. по моим наблюдениям это твоя фишка - несколько
раз править свои многословные посты. к содержанию - никаких
вопросов, просто если хочешь что то добавить то лучше это сделать
ответом на свой пост, имхо. - m16(18.12.2022 19:40)
- И моя тоже. Ну не умею я с первого раза изложить так чтобы все было красиво и точно. А опечатки это просто бич какой-то. - Codavr(23.12.2022 14:22)
- на самом деле лучше сначала
подуматьпроверить, потомсказатьнаписать :)) но мысль бежит впередипаровоза:)) не всегда так получается, но я стараюсь, я исправлюсь :) - Adept(18.12.2022 19:45)
- не, ты не обижайся. по моим наблюдениям это твоя фишка - несколько
раз править свои многословные посты. к содержанию - никаких
вопросов, просто если хочешь что то добавить то лучше это сделать
ответом на свой пост, имхо. - m16(18.12.2022 19:40)
- да, там по мелочи всё (сначала по-памяти написал как, потом
уточнил, глянув исходники, потом ошибки/очепятки поправил. Сорри
:(( нужно не обращать внимание :)) суть донесена, в общем-то в
первом варианте :)) - Adept(18.12.2022 19:36)
- "Процедура Read, - соответственно чтение" Достиг этого утверждения, и чота далее не асилил. :-=) болею насморком, простите. - bnb62(18.12.2022 19:10)
- Adept, извини, но ты уже третий-четвёртый раз обновляешь свой пост в
полторытыщи символов, это издевательство - найди сотню отличий.
имхо. - m16(18.12.2022 19:33)
- вариант "умного" контроллера
- Не у всех приборов состояние можно описать одним байтом. Кроме
того, часто хочется понять причину перезагрузки - General(17.12.2022 11:24)
- практически не вижу вообще вариантов восстановления состояния с
одним байтом :) как правило нужно ещё хранить несколько параметров
и текущих состояний периферии, к примеру. Если нужно максимально
надёжно восстанавливать состояние устройства после сбоя. то это
делается на уровне особенной организации структуры программы, и
конечно Adept(933 знак., 18.12.2022 01:37)
- Одну, кмк, умную мысль скажу :-) надо запоминать не несколько копий
последнего состояния, а несколько последних состояний. - LightElf(18.12.2022 15:35)
- Ну да, намерения ветвления... :) - bnb62(18.12.2022 16:51)
- ну дык энто ещё более "усугубляет", так сказать :)) - Adept(18.12.2022 18:02)
- Ну да, намерения ветвления... :) - bnb62(18.12.2022 16:51)
- Одну, кмк, умную мысль скажу :-) надо запоминать не несколько копий
последнего состояния, а несколько последних состояний. - LightElf(18.12.2022 15:35)
- практически не вижу вообще вариантов восстановления состояния с
одним байтом :) как правило нужно ещё хранить несколько параметров
и текущих состояний периферии, к примеру. Если нужно максимально
надёжно восстанавливать состояние устройства после сбоя. то это
делается на уровне особенной организации структуры программы, и
конечно Adept(933 знак., 18.12.2022 01:37)
- Спасибо. Понял про надежду в разных уголках матрицы, авось... В
общем - это почти стандартный метод - обязательно иметь и сохранять
текущую структуру системы, и даже лог событий читаемый при
программном __NVIC_SystemReset(); Эдак и движемся от автоматов к ИИ
встраиваемых систем :) bnb62(210 знак., 18.12.2022 11:53)
- Если данные битые, то нет смысла их сохранять. Только 1 байт, если
хочешь обеспечить до 256 исходных состояний. Если надо больше
состояний - тогда 2 байта :-) - il-2(17.12.2022 11:11)
- делаю так: есть
"спецрегистр"ячейка памяти флагов (соотвественно 8 бит) и сервис вачдога (по системному таймеру) в котором проверяются и сбрасываются все 8 бит, которые на момент проверки должны быть все установлены. Устанавливаются они в разных, критически важных ветках программы. Если какой-то бит не установлен, то активизируется "собака". Ничто не мешает по каким-то флагам запускать и другие аварийные процедуры, к примеру сохранение чего-нибудь в Adept(246 знак., 16.12.2022 12:45)- Спасибо. Этот приемчик был сброс или по "собаке" всяко пригодится! - bnb62(16.12.2022 12:59)
- Про no_init знаем? - VLLV(16.12.2022 11:40)
- Осподи, no_init. И? что, и где и как? - bnb62(16.12.2022 12:14)
- А почему не сторожевой пёс? У меня подход такой - вся работа
крутится в прерываниях, сторожевая собака на стрёме. А в цикле
main() - только контроль состояния. Проверяю достоверность
параметров (в допусках ли), проверяю логическое состояние и его
соответствие предопределённой последовательности. Если всё в
порядке - пинаю собаку. По желанию, отсюда же, можно делать
сохранение состояния во внешнюю память или в EEPROM. Nikolay_Po(220 знак., 16.12.2022 11:17)
- собака снаружи = внешняя схема - cтpaтeг(16.12.2022 12:04,
)
- Спасибо. Пнули. Пытаюсь:) - bnb62(16.12.2022 11:37)
- собака снаружи = внешняя схема - cтpaтeг(16.12.2022 12:04,
- От этого нет 100 % защиты. Единственный способ защитить эти данные
(опять же не на 100%), параллельно работающие МК. Mимo_пpoxoдил(341 знак., 16.12.2022 09:49,
)
- Отключение прерываний и сохранение логов в энергонезависимой
памяти, после чего обычный ресет. После старта смотришь в логах
причины перезагрузки и можно восстановить часть данных или
состояние работы. - =AlexD=(16.12.2022 09:17)
- Ненадёжная метода. В случае сохранения данных. Надёжная в случае
"пизде.@". Не более того... Mимo_пpoxoдил(693 знак., 16.12.2022 11:03,
)
- Блабла. Никто не мешает десять раз сохранить одно и то же для
надёжности - General(17.12.2022 11:32)
- А потом мучительно выбирать, какое из сохранённых - верно? - Nikolay_Po(17.12.2022 14:53)
- ??? последний с валидным ЦРЦ - General(17.12.2022 21:55)
- Тут проблема может (мы ж о сферическом приборе в вакуме
рассуждаем), что в процессе поиска этого блока опять происходит
сбой. И (привет от атмеловских МК) проверяемый блок портится. - symbions(18.12.2022 11:52)
- Кстати про AT микроконтроллиз - еще те, кондовые. У меня терморегулятор дома на ATTYNY-2313 работает уже лет 25-20, и за этот период случались три-четыре случая потери данных в EEPROM - уставки Т. Так и работает на макетке, маленький теплоинтегратор лишь добавил, чтобы от перманентных вихрей не щёлкали исполнительные реле электрокотла. Смешное, что не я автор кода - залил чей-то, следов сейчас не найти. Принцип выбора: одна кнопка на все процедуры уставок - прельстило. bnb62(589 знак., 18.12.2022 13:24, картинка)
- Тут проблема может (мы ж о сферическом приборе в вакуме
рассуждаем), что в процессе поиска этого блока опять происходит
сбой. И (привет от атмеловских МК) проверяемый блок портится. - symbions(18.12.2022 11:52)
- ??? последний с валидным ЦРЦ - General(17.12.2022 21:55)
- А потом мучительно выбирать, какое из сохранённых - верно? - Nikolay_Po(17.12.2022 14:53)
- Блабла. Никто не мешает десять раз сохранить одно и то же для
надёжности - General(17.12.2022 11:32)
- Спасибо. - bnb62(16.12.2022 09:24)
- Ненадёжная метода. В случае сохранения данных. Надёжная в случае
"пизде.@". Не более того... Mимo_пpoxoдил(693 знак., 16.12.2022 11:03,
- Вот не надо вот этих туманных обобщений, это скучно и неинтересно. Что за изделие ваяем? - SciFi(16.12.2022 09:11)
- Вспомнилось, что когда у меня в ATMEGA1284 закончилось всё ОЗУ, я
стал хранить состояния всех управляющих Samx(29 знак., 23.12.2022 00:07)