|
stm32f4 + Chan's FatFS, работа с большими SD картами |
|
|
|
 |
Ответов
|
Aug 26 2018, 15:38
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
здравcтуйте. с помощью такой то матери дописал sdio->sdcard драйвер ( взамен НАL и libopencm3, т.к. использую свой самодельный SDK) попробывал выжать скорость чтения/запись. блоки читаются через DMA до максимального размера позволяющего эти модулем - 256к. stm32f405rgt6 168MHz шина sdio модуля включена на максимальноую скорость - делитель клока = 0 при записи на карту источником является флеш (т.е делается дамп прошивки и кладется на карту с последующей проверкой на большой машине правильности работы записи) с чтением посложнее - нет линейного куска памяти на запись размером 1M поэтому максимальый блок 96k - то что в своей тестовой програмке удалось отжать от системного стека, кучи и статических переменных карта Кингстон 16G class 10 UHS1 Цитата RAW WRITE 1M by 256.000k: 9.256 Mbyte/s 0.108s total RAW WRITE 1M by 128.000k: 8.845 Mbyte/s 0.113s total RAW WRITE 1M by 64.000k: 8.125 Mbyte/s 0.123s total RAW WRITE 1M by 48.000k: 7.836 Mbyte/s 0.127s total RAW WRITE 1M by 32.000k: 6.987 Mbyte/s 0.143s total RAW WRITE 1M by 16.000k: 4.285 Mbyte/s 0.233s total RAW WRITE 1M by 8.000k: 3.430 Mbyte/s 0.291s total RAW WRITE 1M by 4.000k: 1.727 Mbyte/s 0.578s total RAW WRITE 1M by 2.000k: 1.025 Mbyte/s 0.975s total RAW WRITE 1M by 1.000k: 0.515 Mbyte/s 1.938s total RAW WRITE 1M by 0.500k: 0.273 Mbyte/s 3.662s total чтение Цитата RAW READ 1M by 96.000k: 11.067 Mbyte/s 0.090s total RAW READ 1M by 64.000k: 10.107 Mbyte/s 0.098s total RAW READ 1M by 48.000k: 10.023 Mbyte/s 0.099s total RAW READ 1M by 32.000k: 9.391 Mbyte/s 0.106s total RAW READ 1M by 24.000k: 9.355 Mbyte/s 0.106s total RAW READ 1M by 16.000k: 2.604 Mbyte/s 0.384s total RAW READ 1M by 8.000k: 6.965 Mbyte/s 0.143s total RAW READ 1M by 4.000k: 5.379 Mbyte/s 0.185s total RAW READ 1M by 2.000k: 3.523 Mbyte/s 0.283s total RAW READ 1M by 1.000k: 1.773 Mbyte/s 0.563s total RAW READ 1M by 0.500k: 1.295 Mbyte/s 0.771s total SAMSUN 32G EVO Plus UHS1 Цитата RAW WRITE 1M by 256.000k: 10.171 Mbyte/s 0.098s total RAW WRITE 1M by 128.000k: 10.083 Mbyte/s 0.099s total RAW WRITE 1M by 64.000k: 8.279 Mbyte/s 0.120s total RAW WRITE 1M by 48.000k: 8.410 Mbyte/s 0.118s total RAW WRITE 1M by 32.000k: 7.952 Mbyte/s 0.125s total RAW WRITE 1M by 24.000k: 6.836 Mbyte/s 0.146s total RAW WRITE 1M by 16.000k: 7.396 Mbyte/s 0.135s total RAW WRITE 1M by 8.000k: 5.311 Mbyte/s 0.188s total RAW WRITE 1M by 4.000k: 3.837 Mbyte/s 0.260s total RAW WRITE 1M by 2.000k: 1.875 Mbyte/s 0.533s total RAW WRITE 1M by 1.000k: 0.952 Mbyte/s 1.049s total RAW WRITE 1M by 0.500k: 0.486 Mbyte/s 2.057s total Цитата RAW READ 1M by 96.000k: 10.830 Mbyte/s 0.092s total RAW READ 1M by 64.000k: 10.054 Mbyte/s 0.099s total RAW READ 1M by 48.000k: 9.697 Mbyte/s 0.103s total RAW READ 1M by 32.000k: 8.490 Mbyte/s 0.117s total RAW READ 1M by 24.000k: 8.581 Mbyte/s 0.116s total RAW READ 1M by 16.000k: 8.955 Mbyte/s 0.111s total RAW READ 1M by 8.000k: 6.206 Mbyte/s 0.161s total RAW READ 1M by 4.000k: 5.819 Mbyte/s 0.171s total RAW READ 1M by 2.000k: 3.707 Mbyte/s 0.269s total RAW READ 1M by 1.000k: 1.809 Mbyte/s 0.552s total RAW READ 1M by 0.500k: 1.720 Mbyte/s 0.581s total какой то noname промаркированный class 4 Цитата RAW WRITE 1M by 256.000k: 10.173 Mbyte/s 0.098s total RAW WRITE 1M by 128.000k: 10.063 Mbyte/s 0.099s total RAW WRITE 1M by 64.000k: 8.218 Mbyte/s 0.121s total RAW WRITE 1M by 48.000k: 8.081 Mbyte/s 0.123s total RAW WRITE 1M by 32.000k: 8.082 Mbyte/s 0.123s total RAW WRITE 1M by 16.000k: 8.192 Mbyte/s 0.122s total RAW WRITE 1M by 8.000k: 6.135 Mbyte/s 0.162s total RAW WRITE 1M by 4.000k: 3.267 Mbyte/s 0.306s total RAW WRITE 1M by 2.000k: 1.896 Mbyte/s 0.527s total RAW WRITE 1M by 1.000k: 0.953 Mbyte/s 1.048s total RAW WRITE 1M by 0.500k: 0.486 Mbyte/s 2.056s total Цитата RAW READ 1M by 96.000k: 10.830 Mbyte/s 0.092s total RAW READ 1M by 64.000k: 9.985 Mbyte/s 0.100s total RAW READ 1M by 32.000k: 9.767 Mbyte/s 0.102s total RAW READ 1M by 16.000k: 9.243 Mbyte/s 0.108s total RAW READ 1M by 8.000k: 8.047 Mbyte/s 0.124s total RAW READ 1M by 4.000k: 6.397 Mbyte/s 0.156s total RAW READ 1M by 2.000k: 4.469 Mbyte/s 0.223s total RAW READ 1M by 1.000k: 2.473 Mbyte/s 0.404s total RAW READ 1M by 0.500k: 1.810 Mbyte/s 0.552s total выводы которые я сделал пока карячился с написанием драйвера. а) нужно обрабатывать все сотояния SDIO модуля и статусы SD карты, иначе можно залететь в куданибудь и зависнуть. SDIO стейт-машина ... б) как Вы видте при чтении и записи большими кусками все упирается в SDIO модуль - сорт карты не влияет на пиковую скорость, разница возникает толькана маленьких, но тут както нужно отделять время кода драйвера. с) FatFS дробит запросы на чтение и запись кратным 32 блокам(32*512 = 16k) поэтому она тоже ограничивает скорость (это согласовалось с результатами сырых измерений скорости довольно точно соответсвует 16к - тоесть FatFS выдал при линейной записи порядка 7-8Mb/s, а запись 6-7Mb/s) тут также нужно сказать что код самого FatFS при длинных линейных операциях практически не влият на скорость - что хорошо ( но на вид код у Чана - сплjшные макароны.... у нас за такое убили бы, закопали и табличку написали  ) д) FatFS можно поковырять на предмет увеличения батча записи/чтения более 32 блоков - вплоть до 512 ( 256k - то на что способна DMA со своим гребанным 16-битным NDTR недосчетчиком) е) кому надо наипобыстрей - писать руками в сектора без файловых систем - 10Mb/s как бы реальность. ё) провел "грязные игры с клоком" - клок шинного интерфейс sdio модуля тот же что и usb (48MHz) в доке написано что можно до 50.. попробывал потихоньку гнать множителем rcc.q - результат - скорость обмена пропорционально увеличилась, работает свплоть до множителя rcc.q=5 , при таком множетеле и раскачегаренном системном клоке в 240МГц скорость обмена на чтение достигла 20Мb/s, на запись ~15Mb/s. тут еще флешка наверно должна быть хорошей чтобы проканало как у меня. ... теперь будем плавно пробовать прикручивать eMMC микросхему - жизнь показала что sd-сокеты это для "бытовой" аппрптуры, разваливается и не контачит...
|
|
|
|
Сообщений в этой теме
klen stm32f4 + Chan's FatFS Aug 1 2018, 20:40 Genadi Zawidowski кэши, выравнивание... Все там работает. Версию пон... Aug 1 2018, 20:52 Integro Поддерживаю, работал с одной из последних версий, ... Aug 2 2018, 08:04 klen спасибо!
вроде заработало.
тестировался на шес... Aug 3 2018, 07:27  Grape Цитата(klen @ Aug 3 2018, 10:27) ...
еще ... Aug 27 2018, 13:19        mantech Цитата(Arlleex @ Aug 27 2018, 18:57) Да д... Sep 6 2018, 19:10         Arlleex Цитата(mantech @ Sep 6 2018, 22:10) Так-т... Sep 7 2018, 14:15          mantech Цитата(Arlleex @ Sep 7 2018, 17:15) Они ф... Sep 7 2018, 16:44       MrYuran Цитата(Obam @ Aug 27 2018, 18:50) Ну, есл... Aug 31 2018, 12:12 haker_fox Тоже недавно сделал свой драйвер для SD. Правда дл... Aug 31 2018, 01:42 AlanDrakes Гарантия есть. Она в самой команде CMD25, которая ... Aug 31 2018, 08:55 haker_fox QUOTE (AlanDrakes @ Aug 31 2018, 16:55) П... Aug 31 2018, 10:04 AlanDrakes Помнится мне, что вся работа с секторами происходи... Sep 3 2018, 16:27 Genadi Zawidowski Цитата"Пиши вот это, вот сюда, в таком-то кол... Sep 3 2018, 19:31 haker_fox QUOTE (Genadi Zawidowski @ Sep 4 2018, 03... Sep 4 2018, 01:50 AlanDrakes Пилил я как-то свой тест скорости карточек. Не опт... Sep 4 2018, 05:34 haker_fox QUOTE (AlanDrakes @ Sep 4 2018, 13:34) Ес... Sep 5 2018, 14:08  jcxz Цитата(haker_fox @ Sep 5 2018, 17:08) С S... Sep 6 2018, 04:52   klen Цитата(jcxz @ Sep 6 2018, 07:52) Вы не по... Sep 6 2018, 17:05    aaarrr Цитата(klen @ Sep 6 2018, 20:05) Почему о... Sep 6 2018, 18:29    jcxz Цитата(klen @ Sep 6 2018, 20:05) SDIO мож... Sep 7 2018, 04:40     Axel Цитата(jcxz @ Sep 7 2018, 07:40) ...Заказ... Sep 8 2018, 04:02      jcxz Цитата(Axel @ Sep 8 2018, 07:02) В общем ... Sep 8 2018, 11:01 haker_fox QUOTE (jcxz @ Sep 6 2018, 12:52) Вы не по... Sep 10 2018, 00:00 aaarrr Цитата(haker_fox @ Sep 10 2018, 03:00) SP... Sep 10 2018, 00:37  haker_fox QUOTE (aaarrr @ Sep 10 2018, 08:37) 50, h... Sep 10 2018, 01:34   aaarrr Цитата(haker_fox @ Sep 10 2018, 04:34) Мо... Sep 10 2018, 15:13 jcxz Цитата(haker_fox @ Sep 10 2018, 03:00) Ка... Sep 10 2018, 07:56  haker_fox QUOTE (jcxz @ Sep 10 2018, 15:56) О каких... Sep 10 2018, 10:08   jcxz Цитата(haker_fox @ Sep 10 2018, 13:08) Да... Sep 10 2018, 11:30    haker_fox QUOTE (jcxz @ Sep 10 2018, 19:30) Не надо... Sep 10 2018, 14:33     jcxz Цитата(haker_fox @ Sep 10 2018, 17:33) Т.... Sep 10 2018, 20:23      haker_fox QUOTE (jcxz @ Sep 11 2018, 04:23) Почитай... Sep 10 2018, 23:43    Сергей Борщ QUOTE (jcxz @ Sep 10 2018, 14:30) Не надо... Sep 10 2018, 21:15     jcxz Цитата(Сергей Борщ @ Sep 11 2018, 00:15) ... Sep 11 2018, 05:23      haker_fox QUOTE (jcxz @ Sep 11 2018, 13:23) Естеств... Sep 11 2018, 06:35       jcxz Цитата(haker_fox @ Sep 11 2018, 09:35) Чт... Sep 11 2018, 06:51 V_N ЦитатаЕдинственный плюс SDIO в сравнении с SPI - б... Sep 11 2018, 07:46 jcxz Цитата(V_N @ Sep 11 2018, 10:46) Вы не пр... Sep 11 2018, 09:10  aaarrr Цитата(jcxz @ Sep 11 2018, 12:10) И сколь... Sep 11 2018, 09:45   jcxz Цитата(aaarrr @ Sep 11 2018, 12:45) На чт... Sep 11 2018, 12:31    aaarrr Цитата(jcxz @ Sep 11 2018, 15:31) И вообщ... Sep 11 2018, 14:06     haker_fox QUOTE (aaarrr @ Sep 11 2018, 22:06) Так и... Sep 11 2018, 14:16     jcxz Цитата(aaarrr @ Sep 11 2018, 17:06) Думае... Sep 11 2018, 15:21      aaarrr Цитата(jcxz @ Sep 11 2018, 18:21) Ага, не... Sep 11 2018, 15:34       jcxz Цитата(aaarrr @ Sep 11 2018, 18:34) Вы, н... Sep 11 2018, 17:37        aaarrr Цитата(jcxz @ Sep 11 2018, 20:37) Может о... Sep 11 2018, 18:44       Aner QUOTE (aaarrr @ Sep 11 2018, 18:34) Внутр... Sep 11 2018, 18:17 haker_fox QUOTE (jcxz @ Sep 11 2018, 14:51) Не особ... Sep 11 2018, 08:16 V_N ЦитатаВот касательно приведённого выше V_N примера... Sep 11 2018, 18:28 jcxz Цитата(V_N @ Sep 11 2018, 21:28) Файл не ... Sep 11 2018, 19:17  aaarrr Цитата(jcxz @ Sep 11 2018, 22:17) И можно... Sep 11 2018, 19:37   jcxz Цитата(aaarrr @ Sep 11 2018, 22:37) Забыл... Sep 11 2018, 19:53    aaarrr Цитата(jcxz @ Sep 11 2018, 22:53) Хммм...... Sep 11 2018, 20:03     jcxz Цитата(aaarrr @ Sep 11 2018, 23:03) Разум... Sep 11 2018, 20:40      aaarrr Цитата(jcxz @ Sep 11 2018, 23:40) А по де... Sep 11 2018, 20:53 haker_fox QUOTE (jcxz @ Sep 12 2018, 03:17) и она в... Sep 12 2018, 00:26 jcxz Цитата(haker_fox @ Sep 12 2018, 03:26) Я ... Sep 12 2018, 05:56  aaarrr Цитата(jcxz @ Sep 12 2018, 08:56) И если ... Sep 12 2018, 08:21   jcxz Цитата(aaarrr @ Sep 12 2018, 11:21) А нич... Sep 12 2018, 08:55    aaarrr Цитата(jcxz @ Sep 12 2018, 11:55) Несколь... Sep 12 2018, 10:33 V_N ЦитатаТогда о чём разговор? Зачем тогда процессор ... Sep 12 2018, 06:13 jcxz Цитата(V_N @ Sep 12 2018, 09:13) Запитанн... Sep 12 2018, 06:35  haker_fox QUOTE (jcxz @ Sep 12 2018, 14:35) И винов... Sep 12 2018, 07:50 Genadi Zawidowski ЦитатаДля особо одаренных пользователей ( карта на... Sep 12 2018, 07:11 V_N ЦитатаЦитатаКак-то странно делать выводы о потребл... Sep 12 2018, 09:24 haker_fox QUOTE (jcxz @ Sep 12 2018, 16:55) Я прост... Sep 12 2018, 09:40 Arlleex Мне все-таки нужна консультация, чем отличается SD... Sep 12 2018, 11:45 haker_fox QUOTE (Arlleex @ Sep 12 2018, 19:45) Если... Sep 12 2018, 12:04 aaarrr Цитата(Arlleex @ Sep 12 2018, 14:45) Если... Sep 12 2018, 12:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|