mantech 53 19 августа Опубликовано 19 августа (изменено) · Жалоба 11 минут назад, _Евген_ сказал: Удалось ускорить работу с fatfs+SD ? И что, кэширование не помогает? 11 минут назад, _Евген_ сказал: По коду драйвер diskio использует mmc_write_blocks по 512 байт. Ну дык, чего ж вы хотели-то? Кэширования нет, блок по 512байт... ЗЫ. Вы б еще карту по SPI подключили для полного, так сказать, эффекта. Мы ж тут уже писали неоднократно, что нужен больший размер блока, кэширование записи и пр... Изменено 19 августа пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 19 августа Опубликовано 19 августа · Жалоба 32 минуты назад, mantech сказал: Мы ж тут уже писали неоднократно, что нужен больший размер блока, кэширование записи и пр... Можно по подробнее, что значит кеширование записи и что за блоки? Это параметры fatfs? Для работы с видео в проекте используется кешируемые буфера(ve_malloc -> 0x08...), я это понял по опыту, т.к. для устранения артефактов кодека(на сжатых картинках) пришлось добавить реализацию ve_flush_cahe c armv5_flush_cache 😃 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 19 августа Опубликовано 19 августа (изменено) · Жалоба 2 часа назад, _Евген_ сказал: Можно по подробнее Флеш накопители не могут быстро работать, когда размер блока 512 байт. Для больших объемов данных необходимо делать блоки по 4, 8 или 16 Кбайт, некоторые карты позволяют и по 32Кб, чем больше емкость карты тем более эффективна она на больших блоках. Ну по простому, есть время за которое идет запись, и запишите вы 512 байт или 32К оно одинаковое, но скорость записи будет в 64 раза быстрее, так понятно? При чтении тоже есть выигрыш читая большими блоками. Кэширование записи. При записи пишется не только ваш объем данных, но и служебная инфа, если ее не кэшировать, то она будет записываться на карту при записи каждого блока, при кэшировании она пишется в буфер, а потом сбрасывается на карту но не каждый раз, а раз в 10 записей или 50, это уж как сделаете. Минус - питание должно быть хорошее, чтоб не порушить таблицы ФАТ. Даже еслти лень делать кэширование, то запись большими блоками у меня давала уже 5мбайт\сек , с кэшированием еще 1.5 - 2 мега больше было. Карта работала в стандартном режиме, 3.3В. Изменено 19 августа пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 19 августа Опубликовано 19 августа · Жалоба 7 минут назад, mantech сказал: то запись большими блоками у меня давала уже 5мбайт\сек , с кэшированием еще 1.5 - 2 мега больше было. Вы описываете такие "вкусные вещи", но не приводите их "рецепт". =( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 19 августа Опубликовано 19 августа · Жалоба 3 часа назад, _Евген_ сказал: Вы описываете такие "вкусные вещи", но не приводите их "рецепт". =( А подумать самостоятельно? Здесь не раздел для начинающих, где все разжевывают и подают на тарелочке))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ozelot 9 19 августа Опубликовано 19 августа · Жалоба 7 hours ago, _Евген_ said: Вы описываете такие "вкусные вещи", но не приводите их "рецепт". =( Посмотрите тут: https://github.com/minilogic/f1c_nonos/tree/main/src/usbh/msc Запись, если это возможно, делается порциями по 32КБайта. Результат на экране 😉 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 20 августа Опубликовано 20 августа (изменено) · Жалоба 12 часов назад, Ozelot сказал: Посмотрите тут: https://github.com/minilogic/f1c_nonos/tree/main/src/usbh/msc Запись, если это возможно, делается порциями по 32КБайта. Результат на экране 😉 Согласен, цифры соблазнительные, но мне флешку в корпус не впихнуть. А лишние отверстия увеличат риск попадания воды. Я правильно Вас понял, что общим решением кратного роста пропускной способности fatfs в обоих случаях, является увеличение размера кластера(под windows(10RUS) -> форматировать -> Размер единицы распределения)? Но как быть с ограниченным списком MIN 512 ... MAX 4096 в fatfs/ffconf.h(Пишу по памяти): при попытке увеличить в fatfs/ffconf.h значение MAX c 4096 на значения выше при сборке были ошибки на "#if" в коде Изменено 20 августа пользователем _Евген_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 20 августа Опубликовано 20 августа (изменено) · Жалоба Мин макс этот размер сектора (блока). А кластер это группа последовательных секторов (блоков) Пару лет назад я с FatFS на ehci контролоере пооучал скорости записи пол макчимум пропускной спосоьности usb hs и hdd. Вот тут https://electronix.ru/forum/topic/166772-allwinner-t113-s3/?do=findComment&comment=1813823 Изменено 20 августа пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 20 августа Опубликовано 20 августа · Жалоба 14 минут назад, _Евген_ сказал: Согласен, цифры соблазнительные, но мне флешку в корпус не впихнуть. При чем тут флешка в корпус? сд карта - это та же флешка, просто другой интерфейс связи. Вам написали же, что нужно работать блоками по 32К... 15 минут назад, _Евген_ сказал: Я правильно Вас понял, что общим решением кратного роста пропускной способности fatfs в обоих случаях, является увеличение размера кластера(под windows(10RUS) -> форматировать -> Размер единицы распределения)? В вас каша в голове, причем тут кластеры? Блоки это другое. Почитайте про ФС вообще и по ФАТ в частности, прежде, чем задавать глупые вопросы... 17 минут назад, _Евген_ сказал: MIN 512 ... MAX 4096 Оставьте там 512, не трогайте)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 20 августа Опубликовано 20 августа · Жалоба Нашел... https://electronix.ru/forum/topic/153157-stm32mp1-bare-metal/?do=findComment&comment=1776596 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 20 августа Опубликовано 20 августа (изменено) · Жалоба 44 минуты назад, mantech сказал: Вам написали же, что нужно работать блоками по 32К... Я не понимаю про какой уровень вы говорите. Где определяется размер этих "блоков": на уровне драйвера SD, fatfs или в пользовательском приложении? 44 минуты назад, mantech сказал: В вас каша в голове, причем тут кластеры? Блоки это другое. Почитайте про ФС вообще и по ФАТ в частности, прежде, чем задавать глупые вопросы... Я честно стараюсь разложить кашу "по полочкам". Когда я вчера изменял "Размер единицы распределения" при форматировании карты, я заметил, что кол-во блоков(блок=512) в одной операции записи на уровне драйвера sdio.c так же менялось. Т.е. уменьшалось общее кол-во вызовов функции записи. Я решил, что Вы эти блоки имели ввиду. 44 минуты назад, mantech сказал: Оставьте там 512, не трогайте)) в ffconf.h все в исходном виде оставил. У меня там и поддержка EXT_FAT выключена стоит(в проекте f1c_nonos она включена). 48 минут назад, GenaSPB сказал: Мин макс этот размер сектора (блока). А кластер это группа последовательных секторов (блоков) Пару лет назад я с FatFS на ehci контролоере пооучал скорости записи пол макчимум пропускной спосоьности usb hs и hdd. Вот тут https://electronix.ru/forum/topic/166772-allwinner-t113-s3/?do=findComment&comment=1813823 Я так понял по общей реакции, что я не к месту применил термин "кластер". "Размер единицы распределения" из Win10 - соответствует общему представлению термина блока? Изменено 20 августа пользователем _Евген_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 20 августа Опубликовано 20 августа · Жалоба 48 минут назад, _Евген_ сказал: (блок=512) Это сектор. Блок может быть 512 - 32768, в зависимости от того, как вы пишете в функции ff_write и поддержке драйвера сд карты, в файле disk_io. Там функции сообщается, сколько секторов она может записать одним блоком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 20 августа Опубликовано 20 августа · Жалоба Зря exfat отклбчили.. он впооне себе работает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 20 августа Опубликовано 20 августа (изменено) · Жалоба 4 минуты назад, GenaSPB сказал: Зря exfat отклбчили.. Ну может он и не нужен, у меня тоже отключен, т.к. поддержка карт SDHC только. Главное LFN включить, иначе с длинными именами будет лажа... Изменено 20 августа пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 20 августа Опубликовано 20 августа · Жалоба Partitions ещё. У мкня больше разнообразия - в виде usb накоаитеоей разнообразия побольше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться