SDFAT с поддержкой длинных имен файлов

Werecatf
Солнце 24 апреля 2016 г. 8:28
Грейман добавил поддержку STM32F1 в своей все еще в бета-версии SDFAT AT https: // github.com/greiman/sdfat-бета

Библиотека поддерживает длинные имена файлов и все такие причудливые вещи, и использует DMA для ускорения передачи и поддерживает SPI-транзакции.

Martinayotte
Солнце 24 апреля 2016 г. 12:34
Да, я использую Greiman SDFAT в течение почти года, снимок от его GitHub, сделанного перед бета -версией, поэтому мне пришлось немного его настроить.

Пито
Пн 25 апреля 2016 г., 17:38
Я пробовал SDFAT-бета на Maple Mini. Прекрасно работает на SPI2 и PA8 /CS. Не настраивать, только отредактировал штифт Chipselect и добавил SPI.SetModule (2); До начала SDCARD () (согласно подсказку Билла).
Не уверен насчет скорости записи скамейки, однако. Junk Box Sdcard.
PS:
Кажется, есть проблема с настройкой скорости SPI, так как записи довольно медленные :( ..
Итак, нужен настройка..
Type any character to start This program can erase and/or format SD/SDHC cards. Erase uses the card's fast flash erase command. Flash erase sets all data to 0X00 for most cards and 0XFF for a few vendor's cards. Cards larger than 2 GB will be formatted FAT32 and smaller cards will be formatted FAT16. Warning, all data on the card will be erased. Enter 'Y' to continue: Y Options are: E - erase the card and skip formatting. F - erase and then format the card. (recommended) Q - quick format the card without erase. Enter option: F Card Size: 3951 MB, (MB = 1,000,000 bytes) Erasing .............................. All data set to 0x00 Erase done Formatting Blocks/Cluster: 64 FAT32 ........ Format done Type any character to start FreeStack: 14871 Type is FAT32 Card size: 3.95 GB (GB = 1E9 bytes) Manufacturer ID: 0X2 OEM ID: TM Product: SA04G Version: 0.6 Serial number: 0X242C2445 Manufacturing date: 6/2011 File size 5 MB Buffer size 512 bytes Starting write test, please wait. write speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 23.45,645886,2269,21816 23.45,497538,2270,21819 Starting read test, please wait. read speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 404.73,101411,926,1263 407.97,1634,926,1253 Done Type any character to start SdFat version: 20160422 Assuming the SD is the only SPI device. Edit DISABLE_CHIP_SELECT to disable another device. Assuming the SD chip select pin is: 27 Edit SD_CHIP_SELECT to change the SD chip select pin. type any character to start init time: 2 ms Card type: SDHC Manufacturer ID: 0X2 OEM ID: TM Product: SA04G Version: 0.6 Serial number: 0X242C2445 Manufacturing date: 6/2011 cardSize: 3951.03 MB (MB = 1,000,000 bytes) flashEraseSize: 128 blocks eraseSingleBlock: true OCR: 0XC0FF8000 SD Partition Table part,boot,type,start,length 1,0X0,0XB,8192,7708672 2,0X0,0X0,0,0 3,0X0,0X0,0,0 4,0X0,0X0,0,0 Volume is FAT32 blocksPerCluster: 64 clusterCount: 120320 freeClusters: 120166 freeSpace: 3937.60 MB (MB = 1,000,000 bytes) fatStartBlock: 14502 fatCount: 2 blocksPerFat: 941 rootDirStart: 2 dataStartBlock: 16384 type any character to start

Пито
Ср 27 апреля 2016 г., 16:00
«скамейка» с размером буфера 8192, та же самая SDCard, что и выше.
========================

Размер файла 5 МБ
Размер буфера 8192 байт
Начальный тест записи, пожалуйста, подождите.

скорость записи и задержка
скорость, макс, мин, avg
KB/Sec, USEC, USEC, USEC
1035.03,564362 6300,7905
1061.86 388000 6299 7705
1063.90 375521 6301,7690
1044.55 373082 6297 7832
1052.91 368699 6301,7706
1011.97 361148 6300 7871

Запуск тестирования, пожалуйста, подождите.

Читать скорость и задержка
скорость, макс, мин, avg
KB/Sec, USEC, USEC, USEC
1140.63 8157 5651 7181
1140.90 8148 5653 7179
1140.37,8147 5652,7181
1140.37,8157 5661,7181
1140.63 8151 5654 7181
1140.63 8154 5651 7181

Сделанный
Введите любого персонажа, чтобы начать

Werecatf
Ср 27 апреля 2016 г., 16:15
Пито написал:«скамейка» с размером буфера 8192, та же самая SDCard, что и выше.

Werecatf
Ср 27 апреля 2016 г. 16:19
Пито написал:Кажется, есть проблема с настройкой скорости SPI, так как записи довольно медленные :( ..

Пито
Ср 27 апреля 2016 г. 18:31
Билл сделал исправление сегодня, так как коммутатор DMA/Nonedma был немного сломан.
Вышеуказанные сегодняшние результаты с SPI1, а разделитель - div2. Карта - старый Kingston MicroSD 4GB Class4.
С размером буфера 512 в «скамейке» не имеет значения, какова скорость SPI (Div2 Div4 Div16), я всегда получаю скорость записи 23 кб/с/с. Читает масштабируется со скоростью SPI, однако.
Это похоже на производительность SDIO, я протестировал 4y обратно на STM32F407Discovery - размер блока 512bytes сделал ~ 300 КБ/с, чтобы получить IE 4-5 МБ/секунду.
PS: Как мы экспериментировали с Биллом сегодня, его Кингстон того же параметров, что и у меня, но на 2 -е старше ~ 70 КБ/с. С буфером 8 КБ его карта сделала 1.4 МБ/сек. Итак, чем старше карта, тем быстрее :)

Werecatf
Ср 27 апреля 2016 г. 8:19 вечера
Пито написал:Итак, чем старше карта, тем быстрее :)

Пито
Чт 28 апреля 2016 г., 6:30 утра
SDCards все разные. Самая быстрая карта, которую я видел,-это те 64-128 МБ. Новые карты делают гораздо больше домашнего хозяйства (например, выравнивание износа и другие), и они используют гораздо большие блоки Flash Erase, поэтому накладные расходы с небольшими объемами данных могут быть больше.
Также существует разница в стратегиях, которые используют SDCards. Есть карты, которые хорошо работают с файловыми системами (т. Е. Samsung) и другими, которые лучше всего справляются с написанием больших кусков. Мы много испортились с такими измерениями в RetroBSD.орг в прошлом - см., Например, результаты
https: // github.com/sergev/litebsd/wiki/ ... -Эталон
http: // retrobsd.org/wiki/doku.PHP/DOC/SD-Benchmark

Пито
Чт 28 апреля 2016 г., 8:39 вечера
Sandisk 16GB CL10 UHS-I ========================= File size 5 MB Buffer size 8192 bytes Starting write test, please wait. write speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 834.80,619179,7542,9803 828.85,621921,7736,9873 752.01,621304,7740,10883 830.36,620154,7733,9856 753.71,617407,7738,10858 830.91,617178,7735,9847 Starting read test, please wait. read speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 1445.09,6437,5649,5667 1445.93,6434,5646,5665 1445.09,6445,5649,5667 1444.67,6429,5653,5667 1445.09,6436,5649,5667 1445.09,6435,5653,5667 Samsung Evo 16GB UHS-I CL10 =========================== File size 5 MB Buffer size 8192 bytes Starting write test, please wait. write speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 1202.68,15608,5888,6803 1210.84,21699,5885,6756 1206.16,23213,5888,6782 1204.71,23194,5888,6792 1211.13,21612,5888,6756 1206.45,23179,5889,6782 Starting read test, please wait. read speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 1427.34,7057,5670,5737 1427.75,7053,5664,5735 1428.16,7049,5671,5735 1427.75,7051,5670,5736 1428.16,7041,5668,5735 1427.75,7052,5668,5736

Стевех
Солнце 01 мая 2016 г., 3:16
Пито написал:SDCards все разные. Самая быстрая карта, которую я видел,-это те 64-128 МБ. Новые карты делают гораздо больше домашнего хозяйства (например, выравнивание износа и другие), и они используют гораздо большие блоки Flash Erase, поэтому накладные расходы с небольшими объемами данных могут быть больше.
Также существует разница в стратегиях, которые используют SDCards. Есть карты, которые хорошо работают с файловыми системами (т. Е. Samsung) и другими, которые лучше всего справляются с написанием больших кусков. Мы много испортились с такими измерениями в RetroBSD.орг в прошлом - см., Например, результаты
https: // github.com/sergev/litebsd/wiki/ ... -Эталон
http: // retrobsd.org/wiki/doku.PHP/DOC/SD-Benchmark

Пито
Солнце 01 мая 2016 г., 7:39
Да, CRC был установлен на 2, самый медленный, так что это с CRC Off.
Имейте в виду, что Сандиск, скорее всего, является фальшивым или дефектом, так как задержка MAX записи увеличивается со временем с 600 мс до 1400 мс : Twisted: Samsung Evo 16GB CL10 UHS-I ========================= File size 5 MB Buffer size 8192 bytes Starting write test, please wait. write speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 1737.52,96531,2312,4701 1950.48,91484,2313,4165 1717.22,92899,2313,4759 1787.24,92709,2313,4572 1798.82,135607,2313,4543 1772.66,92645,2313,4610 read speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 2929.14,4870,2739,2794 2932.58,3622,2740,2790 2934.30,3679,2737,2791 2934.30,3641,2738,2791 2934.30,3624,2738,2790 2934.30,3624,2738,2791 Sandisk 16GB CL10 UHS-I ======================== File size 5 MB Buffer size 8192 bytes Starting write test, please wait. write speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 865.30,1406436,4460,9458 883.98,1404723,4457,9256 708.01,1410744,4401,11559 855.67,1403142,4400,9562 708.61,1406538,4458,11550 881.02,1417802,4401,9287 read speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 2901.93,5164,2756,2821 2908.68,3474,2756,2815 2905.30,3475,2756,2817 2905.30,3478,2757,2818 2905.30,3479,2757,2818 2905.30,3477,2758,2818

Пито
Пт 06 мая 2016 г. 13:15
Второй Sandisk Ultra 16 ГБ CL10 UHS-I, MMINI, SPI1 @36 МГц, SDFAT «скамейка», кажется, не подделка, но задержка записи действительно высока (не свежоформатированная): Type any character to start FreeStack: 7191 Type is FAT32 Card size: 15.93 GB (GB = 1E9 bytes) Manufacturer ID: 0X3 OEM ID: SD Product: SL16G Version: 8.0 Serial number: 0X424D3885 Manufacturing date: 8/2015 File size 5 MB Buffer size 8192 bytes Starting write test, please wait. write speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 1792.37,706978,2555,4565 1689.36,733356,2551,4843 1693.94,711411,2542,4831 1575.88,712173,2535,5190 1689.36,708789,2548,4843 1685.37,708251,2556,4855 Starting read test, please wait. read speed and latency speed,max,min,avg KB/Sec,usec,usec,usec 2985.14,3259,2679,2743 2983.36,3129,2686,2744 2983.36,3138,2681,2744 2983.36,3129,2680,2744 2983.36,3134,2683,2744 2983.36,3133,2680,2744 Done Type any character to start

Rogerclark
Пт, 6 мая 2016 г., 21:39
Возможно, некоторые карты автоматически переключаются в режим высокой скорости, если они обнаруживают высокую частоту тактовой частоты SPI