jcxz 244 12 января, 2022 Опубликовано 12 января, 2022 · Жалоба 20 минут назад, turnon сказал: потерять 1 сектор - не так критично как потерять весь объем фоеша из-за порчи местоположения головы. Спорное утверждение. Почему - писал выше. Цитата Там как раз все потерять нельзя, потому как все сектора равнозначны, нет какого-то специфичного, как в Вашем алгоритме. Откуда вы знаете как оно обстоит там? У вас есть описание алгоритма? А раз описания нет, то предполагаем худшее: там при каждом внезапном выключении питания теряются данные. Можете доказать обратное? Нет? Значит теряются при каждом выключении. Точка. Ответьте на простой вопрос: x больше 0 или нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnon 1 12 января, 2022 Опубликовано 12 января, 2022 · Жалоба 27 minutes ago, jcxz said: Откуда вы знаете как оно обстоит там? У вас есть описание алгоритма? Я же давал ссылку на описение - Piconomix FW Library, там и исходники есть, все можно посмотреть. Как есть я ее не использую, использую заложенные принципы работы - нарастающий индекс в хидере каждого сектора. В Вашей тоже много интересного - COBS, маскирующий 0xFF и разделитель записей в виде байта 0xFF, "двухфазное" стирание.Остюда еще думаю задействовать побитовую запись статусного байта. Отсюда - принцип посекторного сжатия данных. 27 minutes ago, jcxz said: А раз описания нет, то предполагаем худшее: там при каждом внезапном выключении питания теряются данные. Теряются не больще чем в Вашем алгоритме при сбоях питания. И намного меньше терятеся в случае проблем с чтением сектора-дырки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 244 12 января, 2022 Опубликовано 12 января, 2022 · Жалоба 33 минуты назад, turnon сказал: Я же давал ссылку на описение - Piconomix FW Library, там и исходники есть, все можно посмотреть. Алгоритма работы нет. А восстанавливать его по исходникам - желания нет. Цитата Теряются не больще чем в Вашем алгоритме при сбоях питания. В моём вообще не теряются. Я говорю об уже записанных на носитель данных. А случаи отказа оборудования - вообще не рассматриваю. Если сектор не читается - устройство неисправно. Нет смысла говорить о каких-то чтениях данных при этом. Цитата И намного меньше терятеся в случае проблем с чтением сектора-дырки. Вы так и не ответили на мой вопрос: 53 минуты назад, jcxz сказал: Ответьте на простой вопрос: x больше 0 или нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnon 1 12 января, 2022 Опубликовано 12 января, 2022 · Жалоба 18 minutes ago, jcxz said: А случаи отказа оборудования - вообще не рассматриваю. Если сектор не читается - устройство неисправно. Нет смысла говорить о каких-то чтениях данных при этом. А я рассматриваю. 18 minutes ago, jcxz said: Вы так и не ответили на мой вопрос: Какой х? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 244 13 января, 2022 Опубликовано 13 января, 2022 · Жалоба 12.01.2022 в 15:57, turnon сказал: А я рассматриваю. Хорошо, допустим рассмотрим: Данная система хранения у меня применяется для хранения конфига устройства. Объём конфига = несколько сотен байт. Размер сектора = 256КБ. Т.е. - в сектор влазит до ~1000 конфигов. Допустим головной сектор перестал читаться Хотя Вы так и не раскрыли значение этого термина: что значит "не читается?". Предположим, что в результате отказа чипа флешь, из него стал читаться мусор. Вы предлагаете (как я понял) в этом случае прочитать последнюю доступную конфигурацию и её использовать? Т.е. - конфигурацию которая была в устройстве несколько сотен итераций изменения конфига назад??? Это не только крайне спорный совет, но даже вредный. Потому как несколько сотен итераций назад совершенно неизвестно, что содержалось в конфиге. Пускай даже он был совместим с текущей версией прошивки. Это ещё хуже! У меня это устройство - инвертор для управления двигателем. Конфиг соответственно хранит настройки под конкретный подключенный сейчас двигатель и набор датчиков (тока, температуры и т.п.). Если ранее (много реконфигов назад) к инвертору был подключен другой двигатель, и просто взять и применить настройки от него к текущему двигателю, то это может привести не только к неверной работе, но даже к выходу устройства из строя. И в старом конфиге не только двигатель может быть другой, но например - датчики тока или температуры. Соответственно - неверный конфиг этих датчиков, приведёт к неверному измерению тока или температуры, и опять - к выходу из строя двигателя или инвертора (а может и всего транспортного средства). Со всеми тяжёлыми последствиями. В моём устройстве, если по каким-либо причинам конфиг невозможно прочитать (он отсутствует или разрушен), то применяется конфиг по умолчанию. В конфиге по умолчанию отключено управление мотором. Таким образом - если что-то случится и будет применён конфиг по умолчанию, то старт двигателя (и вообще любые опасные операции) возможен только после подключения конфигуратором к инвертору и установке валидной конфигурации. Более того: у меня специально в коде заложено ограничение - допустимо не более чем N разрушенных конфигураций от начала головы (записей конфига, закончившихся сбоем питания). Если число разрушенных конфигураций более N - опять же применяется конфиг по умолчанию (даже если N итераций назад имеется валидный конфиг). Так что ваше "потерять 1 сектор - не так критично как потерять весь объем флеша" - это неверный и даже вредный совет. При отказе флешь системы хранения, конфиг должен быть выставлен == конфигу по умолчанию. Цитата Какой х? А почему Вы спрашиваете? x - это неизвестная. Выше Вас совершенно не смущало, что сравниваете неизвестный алгоритм с известным. Тогда должны ответить и тут: x больше 0 или нет? При оценке надёжности какой-то системы, компонент с неизвестной надёжностью всегда заведомо считается менее надёжным чем компонент с известной надёжностью.. А значит моя система хранения заведомо надёжнее чем та, на которую Вы ссылаетесь. Если про указанную систему не известно каким образом обеспечивается её устойчивость к сбоям питания, то следует считать что она к ним неустойчива. И может потерять все данные при любом сбое питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnon 1 13 января, 2022 Опубликовано 13 января, 2022 · Жалоба 4 hours ago, jcxz said: Так что ваше "потерять 1 сектор - не так критично как потерять весь объем флеша" - это неверный и даже вредный совет. Соглашусь, в Вашем случае это именно так. У меня другой сценарий - хранятся накопленные данные с датчика температуры, потеря информации тем критичнее, чем больше объем потери. Почему сектор не читается - я не знаю, нигде нет информации о том, как именно выходит их строя NOR-флеш. Но предполагаю, что с износом ячеек они не могут установиться в 0xFF при очистке сектора. И износ разных секторов может быть неравномерным несмотря на равномерную перезапись. 4 hours ago, jcxz said: Если про указанную систему не известно каким образом обеспечивается её устойчивость к сбоям питания, то следует считать что она к ним неустойчива. И может потерять все данные при любом сбое питания. Обеспечивается точно также как и в Вашей. Вся разница - у вас признак головы в виде сектора-дырки, в моем случае (точнее piconomix) - в виде максимального индекса в хидере сектора. Все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
celsio 0 24 мая, 2022 Опубликовано 24 мая, 2022 · Жалоба On 3/19/2020 at 8:32 AM, jcxz said: Это примерный алгоритм. Есть ещё детали. Заинтересовал Ваш алгоритм. Позвольте полюбопытствовать о деталях, ведь в них, как говорится, дьявол. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 244 25 мая, 2022 Опубликовано 25 мая, 2022 · Жалоба Что именно интересно? Конкретно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 61 25 мая, 2022 Опубликовано 25 мая, 2022 · Жалоба On 5/24/2022 at 9:20 AM, celsio said: Заинтересовал Ваш алгоритм. Позвольте полюбопытствовать о деталях, ведь в них, как говорится, дьявол. А разве головы, листа А4 и ручки не достаточно ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
celsio 0 25 мая, 2022 Опубликовано 25 мая, 2022 (изменено) · Жалоба 4 hours ago, jcxz said: Что именно интересно? Конкретно. Ну какие еще детали, которые не изложены в общем описании алгоритма. Что так еще в заголовке, кроме признака стертости сектора и т.д. 55 minutes ago, x893 said: А разве головы, листа А4 и ручки не достаточно ? Мне нет. Если вам достаточно - поделитесь соображениями по теме. Изменено 25 мая, 2022 пользователем celsio Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 61 25 мая, 2022 Опубликовано 25 мая, 2022 · Жалоба Да какие могут быть соображения ? Надо было пакеты по 64 байта (8 байт для кольца) логировать. Посидел пару дней и сделал. На STM32 и на EFM32. Память MX25... какая то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
celsio 0 25 мая, 2022 Опубликовано 25 мая, 2022 (изменено) · Жалоба 2 hours ago, x893 said: Да какие могут быть соображения ? Надо было пакеты по 64 байта (8 байт для кольца) логировать. Посидел пару дней и сделал. На STM32 и на EFM32. Память MX25... какая то. Так поделитесь подробностями. #jcxz вон как подробно все описал. Ну и если про тип памяти, тот в этой теме речь о NOR, а на каком МК и что за модель флеш - это без разницы. Изменено 25 мая, 2022 пользователем celsio Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 25 мая, 2022 Опубликовано 25 мая, 2022 · Жалоба 19 минут назад, celsio сказал: Ну и если про тип памяти, тот в этой теме речь о NOR, а на каком МК и что за модель флеш - это без разницы. Да нет уж, как раз от типа Flash оптимальная и надежная реализация кольцевых очередей очень даже зависит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 61 25 мая, 2022 Опубликовано 25 мая, 2022 · Жалоба 21 minutes ago, celsio said: Так поделитесь подробностями. @jcxz вон как подробно все описал. Вот пусть @jcxz и пишет. Я не писатель. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
celsio 0 25 мая, 2022 Опубликовано 25 мая, 2022 · Жалоба 13 minutes ago, x893 said: Вот пусть @jcxz и пишет. Я не писатель. Так а вы для чего это написали про пару дней и лист A4? Похвастаться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться