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

 
 
> STM32F103 + MicroSD + USB = Mass Storage, низкая скорость чтения - записи -- нужна оптимизация
IanPo
сообщение Dec 13 2014, 12:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 14-10-10
Пользователь №: 60 152



Здравствуйте!
Я успешно адаптировал пример с сайта ST USB MassStorage на своей плате (использовал F103VCT6).
Однако, измеренная скорость чтения оказалась 200, а записи - 36 кБайт/с.
На карточку ( TRANSCEND 2 G MicroSD ) с ПК пишутся файлы по 2МБайт, поэтому надо побыстрее.
Как я понял, в обмене задействован блок 512 байт, равный сектору ( 8 блоков по 64=MAX_BULK_SIZE).
Функция WriteMultiBLocks у меня работает около 12 мс (из-за встроенного цикла задержки, без которого
пишет быстро, почти 1 МБ/с, но только в файлах одни нули потом ), отсюда 512/0.012 = 42 кБ/с, минус
накладные расходы, получаем 36 кБайт. Замена на WriteBlock (пишется все равно 1 сектор) и ReadBlock
дала прирост до 280 при чтении и 70 кБайт/с при записи соответственно. Все равно, этого мало.
Мне нужны советы по оптимизации модуля sdio_stm32f1 или увеличения блока с 512 Б до 16КБ, например,
тогда можно было бы поднять скорость обмена и использовать Write- и ReadMultiBlocks, время выполнения
будет примерно те же 12 мс (замерял на блоках 12КБ).
Проект прилагаю (основан на примере ST и STM32Primer2_GPS_Tracker-master от Nemui Trinomius.
Ссылки на рабочие проекты приветствуются, особенно gcc и iar.
Прикрепленные файлы
Прикрепленный файл  STM32_USB_FS_Device_Lib_V4.0.0.7z ( 251.19 килобайт ) Кол-во скачиваний: 27
 
Go to the top of the page
 
+Quote Post



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

 


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


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