реклама на сайте
подробности

 
 
> stm32 и FatFs от Chan
Ioann_II
сообщение Mar 30 2017, 02:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



Здравствуйте, Уважаемые коллеги.

Снова нуждаюсь в Ваших подсказках.

Наконец-то подключил файловую систему от Чана и решил её опробовать.
Версия R0.11 от 02-02-2015.
Пробую открыть файл и дописать в его конец данные:
Код
f_open(&MyFile, "stm32.txt", FA_WRITE | FA_OPEN_ALWAYS);
f_lseek(&MyFile, f_size(&MyFile));
f_write(&MyFile, wtext, strlen((char *)wtext), &wbytes);


По описанию, FA_OPEN_ALWAYS должна открывать файл, если он есть и создавать если его нет.
Код выполняется, но:
- если такой файл уже есть, то очень быстро, менее 1с.
- если файла нет, то f_open и f_lseek срабатывают быстро, а вот f_write - долго, примерно минута. файл с данными появляются.

С чем это может быть связано? Куда "копать"?

_FS_NORTC пробовал (время не организовывал).
портирование от Domen Puncer, немного переделал.

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hold
сообщение Oct 24 2017, 15:14
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 27-01-17
Пользователь №: 95 184



Атомарность, он же совместный доступ, обеспечивается мьютексами. Фрамка шустрая, тормоза незаметны. Питание отключиться может, для этих целей ионистор. При отключении питания все операции штатно завершаются, новые запрещаются. Перезапуск МК может быть, но пока с таким не сталкивался. В любом случае при старте память проверяется.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 25 2017, 08:29
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Hold @ Oct 24 2017, 18:14) *
Атомарность, он же совместный доступ, обеспечивается мьютексами.

Атомарность != совместный доступ.
Атомарность - это непрерывность операции или неделимость данных. В данном случае я имел в виду, что любой записываемый функциональный блок данных на FRAM, должен записываться как единый неделимый объект. Т.е. - если стартовала операция записи объекта то в конце концов будет или записан новый объект или остался старый объект (до записи) и никаких промежуточных состояний (часть нового объекта успела записаться поверх старого, остальная часть - осталась от старого).

Цитата(Hold @ Oct 24 2017, 18:14) *
может быть, но пока с таким не сталкивался. В любом случае при старте память проверяется.

Т.е. - новые данные у Вас пишутся поверх старых и никакой защиты от внезапного прерывания записи и перезапуска устройства у вас нет?
Если перезапуск случится в момент записи некоего важного объекта данных, то и новый объект будет потерян и старый тоже.
В моих устройствах, где нужно ответственное хранение, я обеспечиваю атомарность модификации объектов (во FRAM/FLASH).
Вы пытаетесь защищаться от каких-то мифических проблем, нагромождая винегрет из разных типов памяти, при этом совершенно не решая очевидную проблему.
Если её корректно решите - больше никакие дублирования и троирования данных не нужны будут.
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 25 2017, 09:21
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(jcxz @ Oct 25 2017, 11:29) *
Т.е. - новые данные у Вас пишутся поверх старых и никакой защиты от внезапного прерывания записи и перезапуска устройства у вас нет?
Если перезапуск случится в момент записи некоего важного объекта данных, то и новый объект будет потерян и старый тоже.


Да там столько дублирований, ну произойдет...Продублируется еще раз и так до победы! rolleyes.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ioann_II   stm32 и FatFs от Chan   Mar 30 2017, 02:04
- - Genadi Zawidowski   три вопроса: 0) почему не последняя версия? 1) поч...   Mar 30 2017, 07:36
- - MiklPolikov   Цитата(Ioann_II @ Mar 30 2017, 05:04) С ч...   Mar 30 2017, 16:54
- - Ioann_II   0) почему не последняя версия? Версия та, что была...   Mar 30 2017, 23:57
|- - MiklPolikov   Цитата(Ioann_II @ Mar 31 2017, 02:57) Пол...   Mar 31 2017, 06:31
||- - Ioann_II   Цитата(MiklPolikov @ Mar 31 2017, 09:31) ...   Mar 31 2017, 07:41
||- - jcxz   Цитата(Ioann_II @ Mar 31 2017, 09:41) Воп...   Mar 31 2017, 09:02
|||- - Ioann_II   Цитата(jcxz @ Mar 31 2017, 12:02) Если по...   Mar 31 2017, 11:56
||- - MiklPolikov   Цитата(Ioann_II @ Mar 31 2017, 10:41) Пох...   Mar 31 2017, 12:23
||- - Ioann_II   Цитата(MiklPolikov @ Mar 31 2017, 15:23) ...   Mar 31 2017, 14:15
||- - Шаманъ   Цитата(Ioann_II @ Mar 31 2017, 17:15) При...   Mar 31 2017, 14:40
|- - jcxz   Цитата(Ioann_II @ Mar 31 2017, 01:57) Пол...   Mar 31 2017, 06:37
- - Genadi Zawidowski   ЦитатаТаймауты сделаны без таймеров. Это где? Там ...   Mar 31 2017, 14:34
- - Rash   Потеря скорости и времени будет, если писать по 82...   Mar 31 2017, 19:47
|- - Ioann_II   Отформатировал карту. Записал большой объём данных...   Apr 1 2017, 10:21
|- - jcxz   Цитата(Ioann_II @ Apr 1 2017, 12:21) Выво...   Apr 1 2017, 13:23
|- - Ioann_II   Цитата(jcxz @ Apr 1 2017, 16:23) Ещё врод...   Apr 1 2017, 14:42
- - Hold   На обычной SD 2 ГБ емкостью получал скорости запис...   Oct 12 2017, 07:10
|- - mantech   Цитата(Hold @ Oct 12 2017, 10:10) Если пи...   Oct 12 2017, 12:05
|- - Огурцов   Цитата(mantech @ Oct 12 2017, 12:05) Это ...   Oct 13 2017, 05:35
|- - mantech   Цитата(Огурцов @ Oct 13 2017, 08:35) а та...   Oct 13 2017, 07:43
|- - Огурцов   Цитата(mantech @ Oct 13 2017, 08:43) Дак ...   Oct 13 2017, 17:16
- - Hold   Нашел карту SDHC 4 класс 8 ГБ. Или что-то с картой...   Oct 13 2017, 04:46
|- - Ruslan1   Цитата(Hold @ Oct 13 2017, 06:46) Читает/...   Oct 13 2017, 08:20
|- - jcxz   Цитата(Ruslan1 @ Oct 13 2017, 11:20) В об...   Oct 13 2017, 15:51
|- - Hold   Цитата(jcxz @ Oct 13 2017, 22:51) У автор...   Oct 16 2017, 09:37
|- - Ruslan1   Цитата(Hold @ Oct 16 2017, 11:37) Как име...   Oct 16 2017, 10:00
|- - jcxz   Цитата(Hold @ Oct 16 2017, 12:37) Как име...   Oct 16 2017, 10:19
|- - mantech   Цитата(Hold @ Oct 16 2017, 12:37) Там и т...   Oct 16 2017, 13:13
|- - sadat   Цитата(mantech @ Oct 16 2017, 16:13) Если...   Oct 16 2017, 15:08
||- - mantech   Цитата(sadat @ Oct 16 2017, 18:08) У ФМ-к...   Oct 16 2017, 15:25
|- - Огурцов   Цитата(mantech @ Oct 16 2017, 13:13) Если...   Oct 16 2017, 15:36
|- - mantech   Цитата(Огурцов @ Oct 16 2017, 18:36) в на...   Oct 16 2017, 16:38
|- - Огурцов   Цитата(mantech @ Oct 16 2017, 16:38) Хоти...   Oct 16 2017, 20:39
- - Hold   Да, дело было в размере кластера. Флешку не формат...   Oct 13 2017, 09:19
|- - Ruslan1   Цитата(Hold @ Oct 13 2017, 11:19) Понятно...   Oct 13 2017, 09:41
- - Hold   У меня интерес по поводу скорости был скорее акаде...   Oct 13 2017, 09:51
|- - Ruslan1   Цитата(Hold @ Oct 13 2017, 11:51) решил г...   Oct 13 2017, 10:14
|- - mantech   Цитата(Ruslan1 @ Oct 13 2017, 13:14) влож...   Oct 13 2017, 14:07
- - Hold   На будущее запомню, однако не думаю что сейчас с н...   Oct 16 2017, 12:50
- - Hold   На FM25V10 в количестве 4х штук лежит критически в...   Oct 16 2017, 17:56
|- - mantech   Цитата(Hold @ Oct 16 2017, 20:56) На FM25...   Oct 16 2017, 18:21
- - Hold   Лог на sdram особо не в счет - питания нет 3 секун...   Oct 16 2017, 18:36
|- - mantech   Цитата(Hold @ Oct 16 2017, 21:36) Лог на ...   Oct 16 2017, 20:23
|- - Hold   Цитата(mantech @ Oct 17 2017, 03:23) Опят...   Oct 17 2017, 03:58
|- - mantech   Цитата(Hold @ Oct 17 2017, 06:58) За день...   Oct 17 2017, 08:01
|- - jcxz   Цитата(Hold @ Oct 17 2017, 06:58) Основна...   Oct 17 2017, 08:45
|- - Hold   Цитата(jcxz @ Oct 17 2017, 15:45) А каков...   Oct 17 2017, 09:58
|- - sadat   Цитата(Hold @ Oct 17 2017, 12:58) Фрам вс...   Oct 17 2017, 10:36
|- - jcxz   Цитата(Hold @ Oct 17 2017, 12:58) В это в...   Oct 17 2017, 17:04
||- - Hold   Цитата(jcxz @ Oct 18 2017, 00:04) Всё опи...   Oct 18 2017, 02:20
||- - jcxz   Цитата(Hold @ Oct 18 2017, 05:20) Что бы ...   Oct 18 2017, 10:59
|- - Огурцов   Цитата(Hold @ Oct 17 2017, 09:58) Фрам вс...   Oct 17 2017, 18:55
- - Hold   Ставить серьезные диски ради 512К (по факту их там...   Oct 18 2017, 11:38
|- - mantech   Цитата(Hold @ Oct 18 2017, 14:38) Ставить...   Oct 18 2017, 13:14
- - Hold   Кэши(зеркало) удобнее читать чем тянуть байты из A...   Oct 18 2017, 16:52
|- - mantech   Цитата(Hold @ Oct 18 2017, 19:52) Кэши уд...   Oct 18 2017, 17:08
- - Hold   Эти самые резервные копии через фтп верхнее ПО раз...   Oct 18 2017, 17:15
|- - mantech   Цитата(Hold @ Oct 18 2017, 20:15) Эти сам...   Oct 18 2017, 17:26
||- - sadat   Цитата(mantech @ Oct 18 2017, 20:26) ...   Oct 18 2017, 17:46
||- - mantech   Цитата(sadat @ Oct 18 2017, 20:46) Думаю,...   Oct 18 2017, 17:52
||- - sadat   Цитата(mantech @ Oct 18 2017, 20:52) В сл...   Oct 18 2017, 17:56
||- - mantech   Цитата(sadat @ Oct 18 2017, 20:56) Иногда...   Oct 18 2017, 18:06
|- - jcxz   Цитата(Hold @ Oct 18 2017, 20:15) Эти сам...   Oct 19 2017, 06:48
- - Hold   Сливаются копии FRAM а не прошивка. Но да, прошивк...   Oct 18 2017, 17:41
|- - mantech   Цитата(Hold @ Oct 18 2017, 20:41) Бэкап f...   Oct 18 2017, 17:47
|- - sadat   Цитата(mantech @ Oct 18 2017, 20:47) И ча...   Oct 18 2017, 17:49
- - Hold   Питания ионистора хватает на то, чтобы несколько р...   Oct 18 2017, 18:06
- - Hold   Не буду особо ничего опровергать, скажу лишь, что ...   Oct 19 2017, 09:16
|- - jcxz   Цитата(Hold @ Oct 19 2017, 12:16) Не буду...   Oct 19 2017, 09:39
- - uriy   На STM32F407 сделал mass storage in ram. Выделил 6...   Oct 25 2017, 13:16
- - Hold   Признаться да, такой защиты у меня нет, новые данн...   Oct 25 2017, 16:01
- - jcxz   Цитата(Hold @ Oct 25 2017, 19:01) Признат...   Oct 26 2017, 06:18


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 17:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016