想要对ZYNQ上的sd卡进行读写,Vitis提供的example用的是XSdPs系统,如XSdPs_CardInitialize,XSdPs_WritePolled,XSdPs_ReadPolled等,配置起来不是很直观。在一些第三方ZYNQ开发板的例程中使用了更方便的fatfs系统来对FAT32格式的SD进行挂载和读取。
然而在调用f_mount需要注意,f_mount需要三个输入,文件对象,驱动器号和挂在选项0或1。0代表驱动器会在首次被调用时挂载,1代表立刻挂载并检查驱动器是否正常。
f_mount (
FATFS* fs, /* [IN] Filesystem object */
const TCHAR* path, /* [IN] Logical drive number */
BYTE opt /* [IN] Initialization option */
); 在一些例程中,挂在ZYNQ上的SD卡时,PATH会被赋"0:/",0号驱动器即为开发版上的第一个驱动器即SD卡。不知道是不是我Vitis或者之前硬件配置有问题,此时SD卡无法被挂载,f_mount会回复3。需要将驱动器号PATH改为"0:"才能正常执行f_mount。
Vivado&Vitis版本2020.1