我有一个应用程序,我想在ARM MBED LPC1768上打开多达27个不同的.wav文件,以便在编解码器板上进行最终输出。目前我已经能够在mbed上打开和播放文件(文件存储在micro-SD卡上)。但是,我有一个问题,一次打开超过11个文件。
我用来打开任何给定文件的调用是这样的:
FILE* mywav1 = fopen("/sd/mydir/SoundDecoder_second/01.wav","rb");
我已经进行了测试,如果我试图以这种方式打开20个文件,我将测试每个打开的:
if(mywav1 == NULL){
printf("Cannot Open mywav1\n\r");
}
我只能打开11个文件,其他9个将返回NULL。
我已经检查过,这与命名约定无关,据我所知 - 这与在单独的文件流中物理打开的文件数量有关。
在mbed sdfilesystem库中一次可以在文件流中打开多少文件有一些限制吗?
阅读FATFileSystem库的代码,没有限制,除非你的内存不足。情况可能就是这样。
请注意,Mbed OS 5具有用于安装SD卡和FAT文件系统的native support,因此您应该在SDFileSystem库上使用它。后者在2年内没有更新,而新图书馆定期更新。