在移植wavplay过程中,发现文件读取异常,获取的WAV文件描述错误。wavplay中用到fopen、fread。
在使用fread读取文件时,会根据文件的大小出现异常;
在文件很小时,读出是正确的;
在文件比较大时(超出一个scetor时),读出是错误的。
采用2b.wav测试文件6737036字节,7b.wav为2b.wav的前80个字节。
如图所示,我用2b.wav时,读取wavheader_read时,
我用7b.wav时,读取wavheader_read时,
配置如下:
请问,这个问题要如何解决?
刚刚写了个读写测试函数,fread的前512个字节,是无法读取到的,相当于往后偏移了512个字节。
问题解决了,确认是BSP驱动的BUG。用的是华芯微特swm32的BSP,在swm_sdio_rxconfig中,使用2个块,但是写入BUF地址没有实现块的偏移,导致BUF只有1个块的数据。