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

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

|
спасибо! вроде заработало. тестировался на шести 2ГБ файлах на 16ГБ SanDISC uSD, читал начало и конец файла. использую крайний FatFS свой самописный драйвер (SDIO+DMA)->SDCARD как было сказано нужно обращать внимание на адресацию. в моем коде был косяг с умножением индекса блока на размер блока (512), до тех пор пока 32 бит хватало - работает, если файл лежал далеко за 2 ГБ все естественно читалось и писалось в неправильные блоки. еще нужно обратить внимание, что если не включать опцию FF_USE_EXFAT тип аргумента f_lseek - uint32_t и по большому файлу не полазишm даже если он есть. если FF_FS_EXFAT=1 то указатель позиции uint64_t ff.h: Код ... /* Type of file size variables */
#if FF_FS_EXFAT typedef QWORD FSIZE_t; #else typedef DWORD FSIZE_t; #endif ... настоятельно рекомендую использовать фичу FF_USE_FASTSEEK=1, без карты индексов FatFS итерациями в цикле индексы блокв индексирует. на маленьких файлах это не заметно. на больших все замедляется. http://elm-chan.org/fsw/ff/doc/lseek.html
|
|
|
|
|
Aug 27 2018, 13:19
|
Участник

Группа: Свой
Сообщений: 69
Регистрация: 22-10-04
Пользователь №: 956

|
Цитата(klen @ Aug 3 2018, 10:27)  ... еще нужно обратить внимание, что если не включать опцию FF_USE_EXFAT тип аргумента f_lseek - uint32_t и по большому файлу не полазишm даже если он есть. если FF_FS_EXFAT=1 то указатель позиции uint64_t а в fat32 может быть файл размером больше UINT32_MAX? Цитата(klen @ Aug 3 2018, 10:27)  ... как было сказано нужно обращать внимание на адресацию. в моем коде был косяг с умножением индекса блока на размер блока (512), до тех пор пока 32 бит хватало - работает, если файл лежал далеко за 2 ГБ все естественно читалось и писалось в неправильные блоки. 32 бит должно хватать для адресации карт до 2Tb включительно. Умножение требуется для карт SDSC (max 2Gb), там байтная адресация. 4.3.14 Command Functional Difference in Card Capacity Types CCS in the response of ACMD41 determines card capacity types: CCS=0 is SDSC and CCS=1 is SDHC or SDXC. Memory access commands include block read commands (CMD17, CMD18), block write commands (CMD24, CMD25), and block erase commands (CMD32, CMD33). Following are the functional differences of memory access commands between SDSC and SDHC, SDXC: Command Argument SDHC and SDXC use the 32-bit argument of memory access commands as block address format. Block length is fixed to 512 bytes regardless CMD16, SDSC uses the 32-bit argument of memory access commands as byte address format. Block length is determined by CMD16, i.e.: (a) Argument 0001h is byte address 0001h in the SDSC and 0001h block in SDHC and SDXC (  Argument 0200h is byte address 0200h in the SDSC and 0200h block in SDHC and SDXC
|
|
|
|
Сообщений в этой теме
klen stm32f4 + Chan's FatFS Aug 1 2018, 20:40 Genadi Zawidowski кэши, выравнивание... Все там работает. Версию пон... Aug 1 2018, 20:52 Genadi Zawidowski Вот мой конфиг, служит хорошо. За FF_USE_FASTSEEK ... Aug 3 2018, 07:36 klen здравcтуйте.
с помощью такой то матери дописал sdi... Aug 26 2018, 15:38  mantech Цитата(klen @ Aug 26 2018, 18:38) ... теп... Aug 27 2018, 08:00   aaarrr Цитата(mantech @ Aug 27 2018, 11:00) А во... Aug 27 2018, 08:25    klen дело в том что платы летают+вибрируют, и иногда с ... Aug 27 2018, 09:06     Arlleex Цитата(klen @ Aug 27 2018, 12:06) я сам н... Aug 27 2018, 12:36      Obam Цитата(Arlleex @ Aug 27 2018, 15:36) Изи ... Aug 27 2018, 15:50       Arlleex Цитата(Obam @ Aug 27 2018, 18:50) Ну, есл... Aug 27 2018, 15:57        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
|
|
|