取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
xudakang
Observer
Observer
578 次查看
注册日期: ‎01-23-2021

Vitis 2020.2 import projects error

跳至解决方案

My old project is built by SDK 2018.3,I mark sure this project is right,because I have programed it to my FPGA and my FPGA works well。 Now i want to migrate it to Vitis 2020.2, but there are some problems when i import project in Vitis 2020.2。I can't solve it。thank you for helping me and giving me some advice。

简单说是从SDK迁移到Vitis 2020.2老是报错,心态崩了,求帮助。

xudakang_0-1611416151647.png

xudakang_2-1611416233763.png

xudakang_3-1611416259230.png

 

标记 (1)
0 项奖励
回复
1 解答

已接受的解答
xudakang
Observer
Observer
247 次查看
注册日期: ‎01-23-2021

问题已经解决了,成功从2018.3迁移到了2020.2。Vivado那边没什么问题,需要将用到的系统IP更新下,自定义IP再更新下,重新连线即可。

在Vitis中遇到的问题很多,首先新建新工程,将原本的src中文件拷贝过去,编译报错:ff.h No such file or directory

xudakang_1-1611737640726.png

 

这是因为我代码中使用了库函数xilffs,但我的domin中没有包含此函数,需要在BSP setting中勾选上xilffs。

xudakang_0-1611737494710.png

然后再编译,继续报错too few arguments to function "f_mkfs"。此函数的参数太少。这个是因为这个程序之前是参考xilffs V3.7的,但在Vitis的BSP中xilffs的版本为V4.4,其中的一些函数更新了,所以原本正确的代码报错了,我查看了新的函数定义,给新多出的两个函数一个赋值""即空指针,另一个赋值0。事实证明这样做是OK的。然后再编译,继续报错undefined reference to ‘cabs’,undefined reference to ‘cos’,...

xudakang_2-1611738129829.png

显然是数学库没有并包含在编译路径中,解决办法是右击工程,选择Properties,打开属性设置,在C/C++ Build -> Setting -> Tool Settings -> Libraries中点击+号,写一个字母m,确定即可。这就将math库路径添加到了编译路径中。xxx.png

再次编译通过。

下载到板上发现程序正常。

问题解决!

在原帖中查看解决方案

8 回复数
terryn
Xilinx Employee
Xilinx Employee
503 次查看
注册日期: ‎06-19-2019

首先2018.3到2020.2是非常大的一个版本跨越。你这样导入基本上是无法成功的。

而且你导入的内容中还包含硬件平台。2018.3中使用的是hdf,而2020.2中使用的是xsa。2个文件从格式和结构都区别很大,所以不可行。

你要做版本升级,首先要升级的你硬件平台,也就是要先把你2018.3的vivado工程,升级成2020.2的vivado工程,然后用新的xsa文件在vivtis中生成硬件平台。

接着你可以创建empty application,然后你可以导入source code(不是工程),再重新编译。

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
回复
xudakang
Observer
Observer
491 次查看
注册日期: ‎01-23-2021

你好,我最初就是按照你说的方法,先用Vivado2020.2升级硬件,并生成xsa文件,然后在Vitis中新建硬件平台,然后新建空应用工程,再把原来SDK中的src中的文件导入进去。

xudakang_2-1611544635820.png

 

xudakang_1-1611544586018.png

 

但编译会出错。报错信息如下图:

xudakang_0-1611544564482.png

这个ff.h在硬件平台的zynq_fsbl这个domin中,它在生成硬件平台时自动生成。但报的错是找不到这个文件。

我的疑问是是不是要导入这几个src文件?,或者除了导入src外是否还要进行其它操作?。

谢谢回复!

0 项奖励
回复
terryn
Xilinx Employee
Xilinx Employee
479 次查看
注册日期: ‎06-19-2019

看你的截图,有2个domain,你在创建application的时候选择的是哪个domain?

zynq_fsbl的domain一般是创建FSBL的时候用的,应用程序一般用的是standalone的那个domain。ff.h对应的是哪个IP的驱动,你可以在standalone下确认一下。

另外你build的时候,是右击application编译,还是点击software system编译?

 

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
回复
xudakang
Observer
Observer
450 次查看
注册日期: ‎01-23-2021

你好,在创建好硬件平台后,新建应用工程时,虽然有两个domain,但zynq_fsbl这个domain没有显示,无法选择,只能选择standalone这个domain。这个不知道是Vitis的bug还是什么,从左边的Explorer也可以看到,这个zynq_fsbl的domain和standalone这个doamin目录层级不一样 。 

未命名图片.png

这是第一个疑问。另一个是,当我给standalone添加了xiffs和xilsa这两个Library后,在编译,选中工程,右键bulid project编译,还是会报错但错误信息不同了erroe.png未命名图片.png

Debug目录下的markfile如上图所示,修改markfile文件会提示,markfile是派生的,是否确认修改。

最后一个error是说f_mkfs的参数太少,我检查了一下发现,f_mkfs是5个参数的,然后我检查了我SDK的xilffs这个library的版本发现是3.7,而Vitis中的xilffs版本为4.4,一些函数改变了,所以原本OK的代码开始报错了。我能否将xilffs切换成3.7版本的?如何操作呢?

xudakang_0-1611560593331.png

两个疑问,谢谢!   

0 项奖励
回复
terryn
Xilinx Employee
Xilinx Employee
444 次查看
注册日期: ‎06-19-2019

如果看不到的话,应该是你在创建平台的时候,有勾选generate boot components。所以那个domain是用作自动生成boot用的fsbl的。

版本的话应该没法回退,即使你把bsp里的source code都替换掉,很可能3.7版本下依赖的一些其他函数也会不一样。

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
回复
xudakang
Observer
Observer
440 次查看
注册日期: ‎01-23-2021

依赖库无法回退的话,那SDK工程岂不是无法转为Vitis工程?有没有什么兼容版本的库?

0 项奖励
回复
terryn
Xilinx Employee
Xilinx Employee
437 次查看
注册日期: ‎06-19-2019

目前没有直接转换的这类工具,只能一点点改改看。

有没有什么兼容版本的库?

如果只是函数名称变化的话,你可以用重定义的方式试试。 

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
回复
xudakang
Observer
Observer
248 次查看
注册日期: ‎01-23-2021

问题已经解决了,成功从2018.3迁移到了2020.2。Vivado那边没什么问题,需要将用到的系统IP更新下,自定义IP再更新下,重新连线即可。

在Vitis中遇到的问题很多,首先新建新工程,将原本的src中文件拷贝过去,编译报错:ff.h No such file or directory

xudakang_1-1611737640726.png

 

这是因为我代码中使用了库函数xilffs,但我的domin中没有包含此函数,需要在BSP setting中勾选上xilffs。

xudakang_0-1611737494710.png

然后再编译,继续报错too few arguments to function "f_mkfs"。此函数的参数太少。这个是因为这个程序之前是参考xilffs V3.7的,但在Vitis的BSP中xilffs的版本为V4.4,其中的一些函数更新了,所以原本正确的代码报错了,我查看了新的函数定义,给新多出的两个函数一个赋值""即空指针,另一个赋值0。事实证明这样做是OK的。然后再编译,继续报错undefined reference to ‘cabs’,undefined reference to ‘cos’,...

xudakang_2-1611738129829.png

显然是数学库没有并包含在编译路径中,解决办法是右击工程,选择Properties,打开属性设置,在C/C++ Build -> Setting -> Tool Settings -> Libraries中点击+号,写一个字母m,确定即可。这就将math库路径添加到了编译路径中。xxx.png

再次编译通过。

下载到板上发现程序正常。

问题解决!

在原帖中查看解决方案