Vivado中开发ZYNQ系列芯片,在SDK中进行xilffs文件系统开发遇到的问题解决方法

由于项目的需要,使用了ZYNQ系列的7020芯片进行算法加速设计,算法中需要的数据存储在SD卡中,因此使能了ZYNQ的SD0功能。由于在裸机下进行开发不像具有操作系统那样,直接可以读写文件,因此文件系统的移植是一个很很大的问题,好在查阅相关资料以后发现Xilinx公司竟然提供了文件系统,也就是xilffs,这东西的实质说白了就是FATFS,两者的用法完全一样,甚至连底层读写SD卡的驱动都直接配置好了,瞬间感觉美滋滋,节省了不少时间,而使用也很简单,只需要打开bsp目录下的system.bss文件(默认是打开的),然后点击Modify this BSP’s Settings,在弹出的对话框中把xilffs前面的选项勾上,在点击OK就生成好了FATFS文件系统,包括已经移植好的底层diskio.c。
Vivado中开发ZYNQ系列芯片,在SDK中进行xilffs文件系统开发遇到的问题解决方法_第1张图片
但是操作就很简单了,只要用过FATFS的都知道怎么用了。我用的版本是vivado2015.4,不知道是版本的原因还是BUG,使用xilffs的时候存在一个问题,就是第一次生成的时候一点问题都没有,但是当我第二次重新打开SDK工程的时候发生了下面的问题,提示我f_open等与FATFS相关的函数不存在,也就是 undefined reference to `f_read’ 。
Vivado中开发ZYNQ系列芯片,在SDK中进行xilffs文件系统开发遇到的问题解决方法_第2张图片
我明明定义了,同时函数也能goto到源码里面,我猜想会不会是路径没有添加的原因,又在工程的属性里面添加了头文件路径,发现还是不行。在最后万不得已的情况下,尝试出来一种方法,就是在Project Explorer里面把BSP目录下面的ps7_cortexa9_0/libsrc/xilffs_v3_1直接复制到有main函数的工程里面,这下再也不会出现没有找到定义的错误了,其实我也不清楚为什么第一次没有提示错误,但是第二次就会提示我有错。估计只有把源码复制到对应的工程里面才行吧。

你可能感兴趣的:(Vivado中开发ZYNQ系列芯片,在SDK中进行xilffs文件系统开发遇到的问题解决方法)