Vitis通过f_mount 挂载 SD卡报错的可能解决方案
电工86
编辑于 2024年02月15日 08:35
收录于文集
共2篇

想要对ZYNQ上的sd卡进行读写,Vitis提供的example用的是XSdPs系统,如XSdPs_CardInitialize,XSdPs_WritePolled,XSdPs_ReadPolled等,配置起来不是很直观。在一些第三方ZYNQ开发板的例程中使用了更方便的fatfs系统来对FAT32格式的SD进行挂载和读取。

然而在调用f_mount需要注意,f_mount需要三个输入,文件对象,驱动器号和挂在选项0或1。0代表驱动器会在首次被调用时挂载,1代表立刻挂载并检查驱动器是否正常。

代码块
JavaScript
自动换行
复制代码
f_mount (
  FATFS*       fs,    /* [IN] Filesystem object */
  const TCHAR* path,  /* [IN] Logical drive number */
  BYTE         opt    /* [IN] Initialization option */
);
复制成功

在一些例程中,挂在ZYNQ上的SD卡时,PATH会被赋"0:/&#​34;,0号驱动器即为开发版上的第一个驱动器即SD卡。不知道是不是我Vitis或者之前硬件配置有问题,此时SD卡无法被挂载,f_mount会回复3。需要将驱动器号PATH改为"0:&#​34;才能正常执行f_mount。

Vivado&Vitis版本2020.1