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

 
 
> STM32F4 + FatFS + uSD, проблема со скоростью.
Allregia
сообщение Sep 3 2012, 13:03
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Нужна помощь клуба.

Процессор STM32F407VG, 168МГц.
Использую SDIO 4 бита на 24Мгц. DMA. Запись/чтение через SD_ReadMultiBlocks/SD_WriteMultiBlocks.
На всех сигналах SDIO пуллапы 10к.

проверочный код:
Код
  SDInitResult=SD_Init();
  if(SDInitResult==SD_OK) LEDOn(LED1); else LEDOn(LED2);

  if(SDInitResult==SD_OK){
     if ( f_mount( 1, &MSD_fatfs ) != FR_OK ){
        LEDOn(LED2);  // fatfs initialisation fails
     }else{
        res = f_open(&myfile, "1:test_sd.dat", FA_CREATE_ALWAYS | FA_WRITE);

        for(i=0; i<3000;i++){
         res=f_write(&myfile, buffer,4096, &bw);
        }

        f_close(&myfile);
        f_mount(1, NULL);
        if(res==0)
          LEDOn(LED2);
        else
          LEDOn(LED1);
     }
  }


Итого, записывается 3тыс блоков по 4096 байт, засекаю секундомером.

На флешке PQI 1Gb (FAT) - 36 секунд, получается 340кБайт/сек или 2.7мбит/с
На Кингстон 4Gb (FAT32) - 60с, т.е. 200 кБайт/сек, или 1.6мбит/с.

Дополнение - при изменении блока с 4к на 16к, на 4гб фат32 флешке те-эе 60 сек., а на 1гб фат16 уменшилось до 12 сек, т.е. 1МБайт/с или 8 МБит/с.

У кого какие результаты получались? Я честно говоря, ожидал скорости побольше (хотя для конкретной задачи мне ее хватит.

И попутно другой вопрос - я первый раз с FatFs работаю, функия f_write начинается и ждет пока не закончиться запись блока. Т.е оно блокирует на время записи всю программу и не очень понятно зачем тогда DMA?
Это можно как-то обойти без OS ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Lotor
сообщение Sep 3 2012, 14:01
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



На счет скорости тут на форуме много тем вердикт которых - надо буферизировать и писать большими кусками сразу. И это общее правило при работе с SD картами. Надеюсь Вы предусмотрели внешнюю память для этих целей (SDRAM например).

На счет блокирующей записи - именно из-за неё мне пришлось спешно прикручивать ртос в своё время. Конечно можно выкрутиться и без неё, но имхо самое простое решение. В итоге наш девайс (lpc2478, но не суть) пишет видео со скоростью 5 МБайт/с. Ваш наверняка может показать аналогичные результаты.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Sep 3 2012, 14:15
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(Lotor @ Sep 3 2012, 16:01) *
На счет скорости тут на форуме много тем вердикт которых - надо буферизировать и писать большими кусками сразу


Насколько "большими" ?

Цитата
. Надеюсь Вы предусмотрели внешнюю память для этих целей (SDRAM например).


Нет, внешней памяти там нет, но буфер до 64к могу выделить.

Мне вот еще что непонятно:
1) Почему 1гб флешка почти вдвое быстрее чем 4гб - потому что ФАТ 16 а не ФАТ32?
2) Я писал блокми по 4К, это как раз размер кластера для 4гб флешки.
Когда я попробовал писать блоками по 16К - скорость на 1гб флешке увеличилась почти втрое! Достигнув примерно 1МБайт/сек.
И это понятно, потому что у нее кластер 16к.
А вот для 4гб флешки скорость не изменилась, и это тоже понятно - потому что блок кратен и больше кластера.

Но получается, что 1гб флешка с фат16 уже не вдвое а примерно в 5 раз быстрее чем 5гб флешка с фат32!
И этого я совершенно не могу понять - обьем передаваемых по DMA данных одинаков, и уж намного больше чем обьем данных таблиц фат. Неужели 32-х разрядный 168МГц процессор не просто во много раз медленее работает с фат32 чем с фат16, а настолько, что это становиться более значимым чем обьем передаваемых данных?!


Цитата
На счет блокирующей записи - именно из-за неё мне пришлось спешно прикручивать ртос в своё время. Конечно можно выкрутится и без неё, но имхо самое простое решение. В итоге мой девайс пишет видео со скоростью 5 МБайт/с.


Нихренассе! У меня максимум 1МБайт/с пока получается, на 1гб флешке с ФАТ16, при блоке равном кластеру (16К).
При том, что проц сейчас вообще больше ничего не делает (кроме SysTick прерывания, но там почти ничего нет кроме пары счетчиков и пары флагов).
На каком проце у Вас это было ?

Может есть еще какой-то "fine tuning" в конфиге FatFs?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Allregia   STM32F4 + FatFS + uSD   Sep 3 2012, 13:03
- - _Артём_   Цитата(Allregia @ Sep 3 2012, 16:03) И по...   Sep 3 2012, 13:12
|- - Allregia   Цитата(_Артём_ @ Sep 3 2012, 15:12) Обойт...   Sep 3 2012, 13:31
- - Lotor   Самое лучшее - найти на электрониксе тему, где это...   Sep 3 2012, 17:37
|- - Allregia   Цитата(Lotor @ Sep 3 2012, 19:37) Самое л...   Sep 3 2012, 20:23
|- - aaarrr   Цитата(Allregia @ Sep 4 2012, 00:23) Пото...   Sep 3 2012, 20:42
- - Lotor   Не так, так не так. Я попытался Вас направить в ну...   Sep 3 2012, 20:29
|- - Allregia   Цитата(Lotor @ Sep 3 2012, 22:29) Не так,...   Sep 4 2012, 04:48
- - Lotor   Тема, на которую я дал Вам ссылку должна ответить ...   Sep 4 2012, 06:38
|- - Allregia   Цитата(Lotor @ Sep 4 2012, 08:38) Тема, н...   Sep 4 2012, 07:38
|- - Lotor   Цитата(Allregia @ Sep 4 2012, 11:38) Нали...   Sep 4 2012, 08:40
|- - Allregia   Цитата(Lotor @ Sep 4 2012, 10:40) Абсолют...   Sep 4 2012, 10:44
- - Serg_D   скорее всего оно форматирует с выравниваением (так...   Sep 4 2012, 14:36
|- - Allregia   Цитата(Serg_D @ Sep 4 2012, 16:36) скорее...   Sep 4 2012, 15:26
- - Serg_D   А частоту клока карты в 48мгц не пробовали ставить...   Sep 4 2012, 16:29
|- - Allregia   Цитата(Serg_D @ Sep 4 2012, 18:29) А част...   Sep 4 2012, 17:03
- - Allregia   Еще интересный факт: при переводе SDIO в 1-битный ...   Sep 5 2012, 10:19
- - aaarrr   Факты есть, а системы нет. Вам нужно проверить ра...   Sep 5 2012, 10:37
- - Allregia   Да, конечно. Я просто рассказываю интересные момен...   Sep 5 2012, 19:25
- - Allregia   Возникла проблема - пока писал на малой скорости в...   Nov 6 2012, 18:40
- - Allregia   Посмотрел более внимательно флешка входит в паузу...   Nov 7 2012, 15:42
- - Allregia   Отформатировал карточку в компе при помощи SDForma...   Nov 8 2012, 09:17
|- - Lotor   Цитата(Allregia @ Nov 8 2012, 13:17) 2) Ф...   Nov 8 2012, 10:06
|- - _Pasha   Цитата(Lotor @ Nov 8 2012, 13:06) А что и...   Nov 8 2012, 11:22
|- - Allregia   Цитата(Lotor @ Nov 8 2012, 12:06) А что и...   Nov 8 2012, 15:01
|- - Lotor   Цитата(Allregia @ Nov 8 2012, 19:01) Проб...   Nov 9 2012, 06:47
|- - Allregia   Цитата(Lotor @ Nov 9 2012, 08:47) Я прост...   Nov 9 2012, 07:47
- - RabidRabbit   Может после форматирования SDFormatter'ом карт...   Nov 9 2012, 08:02
|- - Allregia   Цитата(RabidRabbit @ Nov 9 2012, 10:02) М...   Nov 9 2012, 08:40
- - Allregia   Народ подкажите еще такую штуку: Посмотрел я что э...   Nov 21 2012, 20:54
|- - aaarrr   Цитата(Allregia @ Nov 22 2012, 00:54) Что...   Nov 21 2012, 21:20
|- - Allregia   Цитата(aaarrr @ Nov 21 2012, 23:20) А сам...   Nov 21 2012, 22:45
|- - aaarrr   Цитата(Allregia @ Nov 22 2012, 02:45) А у...   Nov 21 2012, 23:31
- - Allregia   Нашел 3.0, и еще в примераз в IAR. Попробую завтра...   Nov 22 2012, 19:20
- - Allregia   aaarrr, видимо нужна Ваша помощь. Я попробовал та...   Nov 24 2012, 17:07
|- - aaarrr   Цитата(Allregia @ Nov 24 2012, 21:07) Пок...   Nov 27 2012, 20:53
|- - Allregia   Цитата(aaarrr @ Nov 27 2012, 22:53) Прове...   Nov 27 2012, 21:25
|- - aaarrr   Цитата(Allregia @ Nov 28 2012, 01:25) Я в...   Nov 27 2012, 21:35
- - Allregia   У меня стоят по 10к на всех линиях, кроме CLK (ему...   Nov 28 2012, 08:31
- - Allregia   А не может это быть тем случаем, описанным в эррат...   Nov 29 2012, 06:16
- - Allregia   Вот есть еще интересный вопрос - в F4 используется...   Nov 29 2012, 15:03
- - Stepanov.I.L   Здравствуйте товарищи форумчане. Чтобы не плодить ...   Oct 31 2013, 03:14
- - esaulenka   Была похожая проблема с использованием ST-шного пр...   Oct 31 2013, 16:14
|- - mantech   Цитата(esaulenka @ Oct 31 2013, 19:14) US...   Oct 31 2013, 19:26
- - Stepanov.I.L   Всем спасибо, все свободны. Проблему решил, причин...   Nov 6 2013, 04:00


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:53
Рейтинг@Mail.ru


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