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

Hold

Участник
  • Постов

    40
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Hold

  • Звание
    Участник
    Участник

Посетители профиля

522 просмотра профиля
  1. stm32 и FatFs от Chan

    Признаться да, такой защиты у меня нет, новые данные пишутся поверх старых. Единственный способ отследить ошибку - несоответствие crc. Выделять временный буфер в той же fram, туда писать новые данные, а затем перекидывать в рабочую область? Что помешает контроллеру сброситься в момент перезаписи? Дублирование только одно - ежедневная копия fram во flash. Никаких других нет. Буду рад конструктивным советам. От внезапного прерывания по питанию спасает ионистор.
  2. stm32 и FatFs от Chan

    Атомарность, он же совместный доступ, обеспечивается мьютексами. Фрамка шустрая, тормоза незаметны. Питание отключиться может, для этих целей ионистор. При отключении питания все операции штатно завершаются, новые запрещаются. Перезапуск МК может быть, но пока с таким не сталкивался. В любом случае при старте память проверяется.
  3. stm32 и FatFs от Chan

    Не буду особо ничего опровергать, скажу лишь, что подобный "зоопарк" был необходим.
  4. stm32 и FatFs от Chan

    Питания ионистора хватает на то, чтобы несколько раз перезаписать всю FRAM. У LTC3226 LDO на выходе, поэтому 3.3 держится до последнего. Точно не вспомню, но около 2-3 секунд есть. Плюс, имеет выходы, сигнализирующие о переключении на резерв, и тогда проц штатно завершает все операции и готовится отрубиться. Верхнее ПО не хранится нигде в устройстве, это действительно бессмысленно. Возможно я несколько двусиысленно написал. Насчет ошибок FRAM - никто не может дать гарантию, что их не может быть при штатной работе. За все время она была одна и бэкап спас. Причину её возникновения выяснить не удалось. Просто один битик записался не так и crc не сошлась.
  5. stm32 и FatFs от Chan

    Сливаются копии FRAM а не прошивка. Но да, прошивку тоже можно слить, хотя штатно это не делается, т.к. как вы сказали - смысла нет, она не меняется. Бэкап fram хранится на случай ошибок fram и отсутствия связи с ПО компа, либо глюком ПО компа, чтобы восстановить работоспособность, откатиться на рабочую версию данных. Если ПО есть, то уже при серсисе вручную можно выбрать точку отката.
  6. stm32 и FatFs от Chan

    Эти самые резервные копии через фтп верхнее ПО раз в сутки сливает себе. Там же прошивка, которую также можно закачать/ прочитать. В общем чтение присутствует. Я понимаю ваш скепсис, я и сам, иногда оглядываясь, думаю - зачем так всё усложнять. Я привык рассчитывать на самые фиговые ситуации которые могут произойти. Всё что может отказать, когда нибудь откажет, невероятная ситуация, для которой должно сложиться вместе 100 разных факторов когда-нибудь обязательно произойдет.
  7. stm32 и FatFs от Chan

    Кэши(зеркало) удобнее читать чем тянуть байты из AT45. Проц меньше нагружается да и скорость чтения выше. Можно и без них, просто всё будет помедленнее, заметно медленнее. Если sdram позволяет, отчего нет? Хотел сделать кэш еще и на запись, но не стал, хотя тоже ничего сложного. FRAM читается чуть медленнее ( клок максимум 40мгц, spi настроен на 22.5мгц), но там и объемы меньше. Библиотечка из 4х микрух делает единое адресное пространство в 512к, удобно работать. Виртуальный диск это просто область памяти в sdram отформатированной в Fat32 на случай отказа карты памяти, чтобы спасти хотя бы часть логов. Написано много, однако реализация простая и логичная. Диск в sdram делается вообще за 5 минут : объявляется буфер нужного размера в sdram и функции чтения записи, хоть через memcpy.
  8. stm32 и FatFs от Chan

    Ставить серьезные диски ради 512К (по факту их там около 490к) данных?) Нет никакого зоопарка. На FRAM рабочие данные, на FLASH - резервная копия, на SD - логи. Всё в меру.
  9. stm32 и FatFs от Chan

    Не воспринимайте всё буквально) просто есть кучка важных данных, которые надо хранить, возможно несколько месяцев, но в некоторых случаях они могут часто перезаписываться вновь поступаемыми данными. Что бы вы выбрали в качестве энергонезависимого надежного носителя для часто обновляемых данных? Фрамка подходит как нельзя лучше. Вечный ресурс, мгновенная запись на скорости клока, побайтовый доступ.
  10. stm32 и FatFs от Chan

    Фрам всего 512К, однако обновляться они могут по сотне и более раз на дню. На карту эти данные ВООБЩЕ не скидываются, только логи внешних воздействий. Чтобы представить аналогию: Загоняете машину в сервис. В лог пишется заказ-наряд - Иванов И.И. такого то числа, в такое то время загнал свой пепелац, с жалобами, что в машине что-то стучит, назад не едет, и не включается радио Радонеж. Мастер приемщий такой-то и прочая сопуствующая инфа, типа погода нелетная, слоны идут на север. Передают машину сервис-менам, и они уже детально пишут во FRAM - заменя ремня ГРМ, роликов натяжителя, регулировки такие-то, замена радиоприемника и еще сотня другая различных технчиеских штук, которые полностью и детально описывают что делают и происходит, включая видео-запись всего процесса ремонта, хотя самому Иванову на это пофиг, ему важно знать когда забрать и сколько заплатить. А теперь представим что таких Ивановых в день приходит пара тысяч, вместимость автосервиса(FRAM) десять тысяч и не все Ивановы сразу забирают авто, а некоторые так вообще забывают, и висят они во FRAM мертвым грузом, пока эвакуатор не увезет на штрафстоянку. Затем в сервисе отключается свет, ИБП отрубается, и когда включается, оказывается что не все менеджеры успели сохранить открытый заказ наряд(лог), сервисмены сделали часть работ, но не успели внести изменения в сервис-лист(FRAM). Под вечер приходит Иванов, забирать своё авто, а ему не могут внятно сказать что сделали, что не успели, и где вообще его авто, т.к. не успела сохраниться позиция рабочей станции. Иванов грустит, затем злится, и звонит руководителю, а тот нам, мол почему такая херня. Иванову#2 повезло больше, свет не отрубался, менеджеры выставили счет, на основе реально проведенного списка работ (FRAM), закрыли заказ наряд (лог), однако тот отчего-то топчет ножкой и возмущается "чойтадорога". Ему на фирменном бланке с печатями и подписями выкладывают детальную секундно/поминутную отчетность по работам(FRAM), видео на котором чумазые работяги снимали колесо вместо 1 часа все 4, т.к. Иванов#2 не дал секретку. Иванов не верит, просит показать видео с другой камеры, и показания свидетелей (резервная копия FRAM). И такую информацию ему предоставляют. Иванов возмущается, но платит, т.к. против фактов не попрешь. В какой-то момент менеджеры начинают думать - а давайте сделаем историю обслуживания каждого авто (вспоминаем про проходимость в количественных значениях). Директор, пожимая плечами говорит - а чего нет, вон вам комната(СД карта), делайте картотеку. Менеджеры радостно начинают таскать туда всю инфу об авто (вспоминаем про максимальную детализацию, включая видео). Приходится нанимать еще столько же менеджеров просто на доставку всей кипы бумаг, да и комната стремительно заполняется. Когда комната заполняется, приходится всю старую инфу просто выкидывать. Директор говорит - нафиг такое счастье, вся станция только и делает что таскает бумаги, храните только текущую инфу с рабочей станции, а при поступлении нового авто затирайте поверх. В это время ген-дир всей сети, попивая кофеек на карибах, решает глянуть, как там дела в одном из его отделений. Заходит на страничку (FTP/HTTP), смотрит краткую инфу(логи), т.к. он не отличит карбюратор от кардана и дальше довольно нежится на лазурном бережке. P.S. Прошу прощения за стиль, у дочки день рожденья)
  11. stm32 и FatFs от Chan

    Основная инфа - данные, которые создаются в процессе работы, проходят сквозь аппарат. За день может пройти до 3-4 Гб. Флеш бы может выдержал какое-то время, но рано или поздно начнутся ошибки.
  12. stm32 и FatFs от Chan

    Лог на sdram особо не в счет - питания нет 3 секунды, ионистор отрубаетмя, и лога тоже нет. А так вполне себе мажоритирование 2 из 3. Бывает и 4 из 5). На фраме не лог, а основная инфа, а логи-все действия извне, чтобы в случае отказа повторить/смоделировать ситуацию и внести правки. Потерять их очень нежелательно. Программа, конечно, может глюкпнуть, вон ракеты падают. Дтскутировать о методах оценки надежности ПО можно долго.
  13. stm32 и FatFs от Chan

    На FM25V10 в количестве 4х штук лежит критически важная инфа. Ее повреждение, либо ошибка, равносильно полной неработоспособности аппарата. Ресурс дичайший, если постоянно по кругу писать на максимальной скорости, то порядка 20 или 40 лет(не вспомню сейчас). Питание +3.3 зарезервировано ltc3226+lowESR ионистор типа HS230F. На AT45 часть размечена под ежедневные бэкапы всей FRAM памяти, другая часть под различные настройки, третья под образ текущей прошивки и заводской прошивки, гарантировано рабочей. Оставщаяся часть диск FatFs, который доступен через FTP, на нем лежат последние логи, которые пишутся по кругу, по своей сути -черный ящик, на случай отказа. На SD карту пишутся теже самые логи, с нее возможно обновление ПО( а также по сети со странички, либо через FTP), лежат тяжеловесные файлы. Если карта накроетмя, то логов на AT45 хватит на 2-3 суток, за это время сервис мен успеет поменять карту. Если не успевает, то логи пишутся в виртуалтный диск в SDRAM в 32 мбайта. Может показаться избыточно, поначалу всё было куда проще и понятнее.
  14. stm32 и FatFs от Chan

    На будущее запомню, однако не думаю что сейчас с наскоку решу эту задачку, надо лезть в дебри FatFs, не на один день вдумчивого ковыряния библиотеки. В случае с AT45 я читаю её лишь при включении, всё дальнейшее чтение идёт с кэша в SDRAM, там несложно. Хотя она и так относительно быстро читается, порядка 4 МБ/с при 45мгц клока.
  15. stm32 и FatFs от Chan

    SDRAM не бесконечна, 64 Мбайта на всё. Там и так крутится кэш(зеркало на чтение) AT45DB641 и нескольких FM25V10, память GUI, куча lwIP и виртуальный диск в FatFs (помимо карточки). Как именно логичнее сделать кэш на чтение с карточки? В случае с небольшой AT45, достаточно хранить полную копию, для максимально быстрого чтения, а вот с задачей кэширования карточки не сталкивался.
×
×
  • Создать...