#c #mbed #lpc
#c #мбед #lpc #mbed
Вопрос:
У меня есть приложение , в котором я хочу открыть до 27 различных.файлы wav на ARM MBED LPC1768 для последующего вывода на плате кодека. В настоящее время я смог открывать и воспроизводить файлы на mbed (файлы хранятся на карте micro-sd). Однако у меня возникла проблема с одновременным открытием более 11 файлов.
Вызов, который я использую для открытия любого заданного файла, выглядит следующим образом:
FILE* mywav1 = fopen("/sd/mydir/SoundDecoder_second/01.wav","rb");
Я выполнил тесты, в которых, если я попытаюсь открыть, скажем, 20 файлов таким образом, я буду тестировать каждое открытие с:
if(mywav1 == NULL){
printf("Cannot Open mywav1nr");
}
Я могу открыть только 11 файлов, остальные 9 вернут значение NULL.
Я проверил, и, насколько я вижу, это не имеет никакого отношения к соглашениям об именовании — все это связано с количеством файлов, которые физически могут быть открыты в отдельных файловых потоках.
Существует ли какое-то ограничение на количество файлов, которые могут быть открыты в файловом потоке одновременно в библиотеке mbed sdfilesystem?
Комментарии:
1. Да, есть.
FILE*
это очень большой объект, и он очень быстро съедает вашу оперативную память.2. Вам действительно нужно открывать их вместе? Разве вы не можете открывать каждый файл по своему усмотрению, когда это необходимо?
3. Привет @MatteoItalia, к сожалению, мне тогда нужно было бы открывать и закрывать файлы, продолжая отправлять аудиоданные на мою плату кодека в процедуре прерывания. Открытие файла предотвратит переход кода к процедуре прерывания (насколько я помню).
Ответ №1:
При чтении кода библиотеки FATFileSystem ограничений нет, если только у вас не заканчивается память. Это может быть так.
Обратите внимание, что Mbed OS 5 имеет встроенную поддержку для монтирования SD-карт и файловой системы FAT, поэтому вам, вероятно, следует использовать это поверх библиотеки SDFileSystem. Последний не обновлялся в течение 2 лет, в то время как новые библиотеки получают регулярные обновления.
Комментарии:
1. Привет, Ян, спасибо за указатель — позволят ли мне эти новые библиотеки открывать более 11 файлов .wav одновременно?
2. Вероятно, нет, потому что я подозреваю, что у него заканчивается память. Используйте статистику кучи в Mbed OS, чтобы увидеть текущее использование памяти.
3. Привет, Ян — позволит ли мне использовать LittleFileSystem открыть больше. файлы wav сразу?