Например TDA7294

Форум РадиоКот • Просмотр темы - Аварийная запись на microSD. Как реализовать лучше?
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср сен 24, 2025 14:00:42

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 40 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Чт сен 18, 2025 16:06:32 
Друг Кота
Аватар пользователя

Карма: 58
Рейтинг сообщений: 409
Зарегистрирован: Чт мар 20, 2008 01:06:40
Сообщений: 3326
Откуда: Севастополь
Рейтинг сообщения: 0
Сейчас внезапно окажется, что "разработка на SD" - это просто спёртый откуда-то кусок кода.
А вот для того, чтобы (по-человечески) начать работать с FRAM, код для этого надо снова откуда-то спереть.

_________________
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Чт сен 18, 2025 17:18:59 
Друг Кота

Карма: -2
Рейтинг сообщений: 48
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8522
Откуда: .ru
Рейтинг сообщения: 0
VNS ясно... значит автоматизацию ты никогда не делал...
:sleep:
оно и понятно... потому что сидеть и ждать когда кто-то что-то предложит бесполезно...
это так не работает.
надо самому брать проект и работать. тогда получится.
:tea:

abc я с флешками уже наигрался...
они действительно капризные и ненадёжные.

скажем так...
-если данные действительно важные то сбрасываем на сервер и делаем резервное копирование как положено.
-если данные не важные то и не стоит тогда заморачиваться))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Чт сен 18, 2025 19:25:48 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 181
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1574
Рейтинг сообщения: 0
Сейчас внезапно окажется, что "разработка на SD" - это просто спёртый откуда-то кусок кода.
Не "окажется", а так оно и есть. Вы что-ж думали - автор сам файловую систему писал? 8)
чтобы (по-человечески) начать работать с FRAM, код для этого надо снова откуда-то спереть.
Или - спёрнуть! :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Чт сен 18, 2025 19:46:14 
Держит паяльник хвостом
Аватар пользователя

Карма: 14
Рейтинг сообщений: 347
Зарегистрирован: Пт апр 09, 2010 16:06:38
Сообщений: 994
Откуда: Тула
Рейтинг сообщения: 0
foton6, отформатируйте на компе свою карту и создайте там большой пустой файл. Определите с какого физического адреса в пространстве карты он начинается. В своей программе по мере появления событий, пишите их на карту поблочно сразу, начиная с этого адреса. Даже если питание пропадёт в неподходящий момент, не запишется или запишется с ошибкой всего один блок. Файловая система не пострадает. Конец журнала событий можно легко найти при последующем появлении питания. Если файл будет очень большой, то не придётся организовывать кольцевой буфер и соответственно не надо будет хранить его индекс, который может "протереть" память карты. Хотя есть хитроумные способы хранения индекса непосредственно в блоке данных. Ну или для индекса применить мелкую FRAM.
И не надо ни каких мутных танцев с ионисторами.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Чт сен 18, 2025 20:02:03 
Друг Кота

Карма: 31
Рейтинг сообщений: 829
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5753
Откуда: Протвино
Рейтинг сообщения: 0
... а если мощности контроллера позволяют вкрячить нормальное ядро os, linux скажем, то можно взять какуюто журналирующую транзакции fs
напр ext3/ext4 или xfs и fs не будет повреждаться !, после аварии максимум будут недописаны открытые на запись файлы. :music:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Чт сен 18, 2025 20:55:03 
Друг Кота

Карма: -2
Рейтинг сообщений: 48
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8522
Откуда: .ru
Рейтинг сообщения: 0
foton6, отформатируйте на компе свою карту и создайте там большой пустой файл. Определите с какого физического адреса в пространстве карты он начинается. В своей программе по мере появления событий, пишите их на карту поблочно сразу, начиная с этого адреса.

и так тоже делали...
и по всякому делали))

https://cxem.net/mc/mc435.php

а потом решили что нафиг не нужны эти заморочки.
проще писать блоками по 512 байт.
эффект тот же.
foton6Даже если питание пропадёт в неподходящий момент, не запишется или запишется с ошибкой всего один блок. Файловая система не пострадает.

а если и пострадает то мы можем её восстановить.))

только в самой Файловой системе нет никакого смысла.
эффект тот же.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Чт сен 18, 2025 22:28:38 
Держит паяльник хвостом
Аватар пользователя

Карма: 14
Рейтинг сообщений: 347
Зарегистрирован: Пт апр 09, 2010 16:06:38
Сообщений: 994
Откуда: Тула
Рейтинг сообщения: 1
и так тоже делали...
и по всякому делали))

А чегож вы тогда строем не ходите не посоветовали это топикстартеру? :)

только в самой Файловой системе нет никакого смысла.

Смысл огромный: вставил карточку в ноутбук и легко, штатными средствами операционной системы скопировал весь журнал в виде файла, например .txt или .csv, который в любом текстовом редакторе или экселе можно открыть и проанализировать события. Или вы предлагаете этот гигабайтный журнал в виде простого дампа, накопленый за весь срок службы девайса, анализировать специально написанным приложением на компе? Или долго и печально тащить через узкий канал на любимый сервер? Или реализовать в коде гору функционала в самом МК, для анализа журнала на месте?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Чт сен 18, 2025 23:18:37 
Друг Кота

Карма: -2
Рейтинг сообщений: 48
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8522
Откуда: .ru
Рейтинг сообщения: 0
Разрабатываю устройство у которого имеется microSD на борту для ведения архива измерений и в целом жизни устройства.

не знаю какое устройство у ТС... а у меня все устройства в труднодоступных местах))

Изображение

поэтому мне проще скачать по сети на сервер чем каждый раз лезть за microSD.
:tea:

а сама microSD используется только когда сервер "не в сети".
а как только сервер появляется "в сети" то устройство само передаёт на сервер данные. без моего участия))
в остальных случаях microSD не нужна. от слова совсем ))
такая была у меня идея.
:tea:

а впрочем... сейчас мне microSD вообще не нужна. если один сервер "не в сети" то другой сервер "в сети".


Вложения:
)).jpg [59.28 KiB]
Скачиваний: 175
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 08:08:18 
Встал на лапы

Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Вс сен 16, 2012 22:00:40
Сообщений: 146
Рейтинг сообщения: 0
foton6, отформатируйте на компе свою карту и создайте там большой пустой файл. Определите с какого физического адреса в пространстве карты он начинается. В своей программе по мере появления событий, пишите их на карту поблочно сразу, начиная с этого адреса. Даже если питание пропадёт в неподходящий момент, не запишется или запишется с ошибкой всего один блок. Файловая система не пострадает. Конец журнала событий можно легко найти при последующем появлении питания. Если файл будет очень большой, то не придётся организовывать кольцевой буфер и соответственно не надо будет хранить его индекс, который может "протереть" память карты. Хотя есть хитроумные способы хранения индекса непосредственно в блоке данных. Ну или для индекса применить мелкую FRAM.
И не надо ни каких мутных танцев с ионисторами.

О! Спапсибо, великолепная идея!
Да я номера блоков (кол-во записей) храню в блоке + CRC обязательно - так легко идентифицировать последнюю актуальную запись.

Добавлено after 6 minutes 4 seconds:
Смысл огромный: вставил карточку в ноутбук и легко, штатными средствами операционной системы скопировал весь журнал в виде файла, например .txt или .csv, который в любом текстовом редакторе или экселе можно открыть и проанализировать события. Или вы предлагаете этот гигабайтный журнал в виде простого дампа, накопленый за весь срок службы девайса, анализировать специально написанным приложением на компе? Или долго и печально тащить через узкий канал на любимый сервер? Или реализовать в коде гору функционала в самом МК, для анализа журнала на месте?

Верно! Я хочу ФС исключительно ради возможности открывать на ПК без спец ПО.

Добавлено after 8 minutes 27 seconds:
По поводу живучести карточек я не переживаю, у меня более десятка устройств на Orange PI, работают уже не первый год в разных условиях - пока все ОК, как минимум отрабатывают стандартную рабочую неделю постоянно. Я тоже переживал, думал будут отлетать каждые полгода или т.п. Хотел делать даже режим только для чтения или SLC флешки искать, но оно не потребовалось.

В текущем проекте тоже проблем быть не должно в ввиду то го что не будет производится перезаписи,
каких нибудь 8гб хватит на пожизненное ведение архива.

Добавлено after 3 minutes 39 seconds:
Сейчас внезапно окажется, что "разработка на SD" - это просто спёртый откуда-то кусок кода.
А вот для того, чтобы (по-человечески) начать работать с FRAM, код для этого надо снова откуда-то спереть.

Мимо, FRAM имеет малые объемы в сравнении с карточками, а я хочу "пожизненный архив", как написал выше :)
У меня вообще обратная проблема, я всегда стремлюсь написать свой код в ущерб времени, редко использую библиотеки - никак не усвоится мысль что использование библиотек - это хорошо и быстро :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 08:15:08 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Пн сен 15, 2025 08:43:23
Сообщений: 29
Рейтинг сообщения: 0
Не нужна тебе там ФС! Просто последовательно данные пиши в текстовом виде. На компе при помощи less /dev/sdX посмотришь содержимое.
Никакого доп софта не нужно!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 09:40:34 
Держит паяльник хвостом
Аватар пользователя

Карма: 10
Рейтинг сообщений: 82
Зарегистрирован: Ср апр 16, 2008 13:22:54
Сообщений: 906
Откуда: Приднестровье, Тирасполь
Рейтинг сообщения: 3
С FRAM тоже можно наловить проблем почти на ровном месте. Кому интересно почитать. В одном из устройств (логгер), пишу на microsd каждые 50ms. Поскольку устройство вспомогательное, сделал по началу просто, никаких мониторов питания, fatFS от Чена. Пишем по схеме - новое включение - новый файл, через заданный интервал (50ms) файл открывается на запись, добавляется строка лога, файл закрывается. Питание пропало да и хрен с ним. Так и оставил, как показала практика, все пишется нормально, лог разрастался до тысячи файлов общим размером сотни мегабайт. Ничего не терялось при отключении, даже при такой частой записи.

_________________
Любой, заслуживающий внимания, опыт приобретается себе в убыток...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 10:55:38 
Первый раз сказал Мяу!

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Ср мар 02, 2016 09:07:19
Сообщений: 23
Рейтинг сообщения: 0
А устройство стационарное?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 12:14:05 
Друг Кота

Карма: -2
Рейтинг сообщений: 48
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8522
Откуда: .ru
Рейтинг сообщения: 0
выше есть подсказка))
Устройство отключается просто выниманием штепселя или отключением автомата

скорее всего стационарное...
вряд ли ТС будет таскать за собой штепсель или автомат))
хотя... всё может быть.))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 12:20:41 
Встал на лапы

Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Вс сен 16, 2012 22:00:40
Сообщений: 146
Рейтинг сообщения: 0
А устройство стационарное?

Стационарное. А какое это имеет значение?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 12:44:20 
Друг Кота

Карма: 31
Рейтинг сообщений: 829
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5753
Откуда: Протвино
Рейтинг сообщения: 0
foton6 писал(а):
Верно! Я хочу ФС исключительно ради возможности открывать на ПК без спец ПО.

навсякий случай повторю:
если компьютер с линуксом и контроллер с линуксом то на флэшке можно держать ext3 (ext4) fs , которые по дизайну оочень устойчивы к аварийным прерываниям процессов записи.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 13:41:30 
Первый раз сказал Мяу!

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Ср мар 02, 2016 09:07:19
Сообщений: 23
Рейтинг сообщения: 0
А устройство стационарное?

Стационарное. А какое это имеет значение?

Тогда, почему не поставить аккумулятор?
Я обычно ставлю, что-то в этом роде:
https://www.ozon.ru/product/akkumulyato ... 172396185/

Его ресурса года на три хватает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 14:21:22 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 181
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1574
Рейтинг сообщения: 0
Мимо, FRAM имеет малые объемы в сравнении с карточками, а я хочу "пожизненный архив", как написал выше :)
Вы похоже ничего не поняли что вам советовали... :dont_know:

FRAM советовали не для хранения вашего архива, а для сохранения критических данных при сбоях питания. "Критические данные": это накопленные, но ещё не записанные в архив данные (вы же в архив не каждую миллисекунду пишете, а наверное - какое-то время накапливаете, а потом записываете сразу блок?). А также - для сохранения индексов (позиций) записи в ту же SD-карту (чтобы при каждом запуске на сканировать её всю, что долго и приведёт к потерям данных во время такого сканирования). И большие объёмы FRAM для этого не нужны.
Применение FRAM обнуляет необходимость в сложных костылях с мониторингом питания, ионисторами и прочей такой громоздкой и ненадёжной тряхомудрией. Просто один дешёвый копеечный чип и все проблемы решены.

Добавлено after 12 minutes 59 seconds:
С FRAM тоже можно наловить проблем почти на ровном месте. Кому интересно почитать.
Как говорится: "Сдуру можно и х... сломать"
Если так, то с монитором питания пространство для ловления проблем ещё больше.
С FRAM/MRAM сделал уже кучу проектов. Серийных. Никаких проблем.

В одном из устройств (логгер), пишу на microsd каждые 50ms.
Интересно - как это вы умудряетесь делать, если SD-карта штатно может производить запись до нескольких сотен мсек??? Сказки не надо рассказывать. Скажите, правду - что не контролировали это время никогда. 8)

Поскольку устройство вспомогательное, сделал по началу просто, никаких мониторов питания, fatFS от Чена. Пишем по схеме - новое включение - новый файл
Достаточно случиться не чистому включению или выключению, а с дребезгом: вкл. - выкл. - вкл. - ... и файловая система на вашей карте накроется медным тазом. А такие дребезговые включения/выключения питания - обычное дело.

Добавлено after 3 minutes 15 seconds:
Его ресурса года на три хватает
А ресурса FRAM хватит на всё время жизни устройства ТС. :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 14:53:49 
Встал на лапы

Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Вс сен 16, 2012 22:00:40
Сообщений: 146
Рейтинг сообщения: 0
jcxz,
Да, действительно почему то в голове застряла мысль что FRAM предлагаете как замену SD :D
Так то дельная мысль буфер накапливать в FRAM. У меня на МК есть блок питаемый батарейкой, в нем часы и памяти 2kb, тут и планировал складировать до записи на SD.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 15:16:30 
Друг Кота

Карма: -2
Рейтинг сообщений: 48
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8522
Откуда: .ru
Рейтинг сообщения: 0
да подключите уже своё устройство к ПК и не мучайтесь))
на ПК сотни гигов свободной памяти... и ниче не глючит.
СпойлерИзображение

:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Аварийная запись на microSD. Как реализовать лучше?
СообщениеДобавлено: Пт сен 19, 2025 15:23:31 
Держит паяльник хвостом
Аватар пользователя

Карма: 10
Рейтинг сообщений: 82
Зарегистрирован: Ср апр 16, 2008 13:22:54
Сообщений: 906
Откуда: Приднестровье, Тирасполь
Рейтинг сообщения: 0
Интересно - как это вы умудряетесь делать, если SD-карта штатно может производить запись до нескольких сотен мсек??? Сказки не надо рассказывать. Скажите, правду - что не контролировали это время никогда.

Объясняю - устройство аналогово цифровой логгер для авто, сделал чтоб найти полтергейста в системе управления авто, записывало кучу параметров. Измерения проводились с определенным интервалом и писались на карту, при интервале 20мс я не успевал записывать, 35-40мс уже получалось, выбрал 50мс с запасом. При разборе лога количество измерений соответствовало времени поездки. Дальше было как-то фиолетово.
Достаточно случиться не чистому включению или выключению, а с дребезгом: вкл. - выкл. - вкл. - ... и файловая система на вашей карте накроется медным тазом. А такие дребезговые включения/выключения питания - обычное дело.

Бортовая сеть авто и включение/выключение девайса ключем вместе с зажиганием - достаточно стрессовые условия?

_________________
Любой, заслуживающий внимания, опыт приобретается себе в убыток...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 40 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Polf и гости: 21


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y