Xilinx vcu-ctrl-sw源码包使用qt交叉编译与二次开发

1.vcu-ctrl-sw源码包下载

vcu-ctrl-sw下载地址

  进入到github中要注意xilinx官方给的源码包的版本。第一次访问进去的版本是18年的,里面的代码写的很抽象…各种宏定义还有goto,如果vavido和petalinux的版本不是18年的话,是不能使用18年版本的那个vcu-ctrl-sw-master源码包的,要进到branches里面找与自己硬件版本相匹配的源码包,具体版本可以通过在板子上执行ctrlsw_encoder命令查看显示出来的版本号(比如1.0.61),根据对应的版本号选择相同的源码包,否则程序的ioctl和channel部分会报错。


图1.进入到github中xilinx目录下的vcu源码包要选择branches找与自己硬件相应的版本


2.关于源码包如何编译

  根据黑金提供的资料里面有一份sdk文件,执行他文件内的sdk.sh后会生成交叉编译工具aarch64-xilinx-linux-xxx,具体过程参考下面正点原子的链接,sdk文件点这里下载

配置qt交叉编译环境

  根据链接中的内容,执行完source environment-setup-aarch64-xilinx-linux后(就是产生系统临时变量配置编译器的指令),我们进入vcu源码的文件夹,将makefile中的编译器全都注释掉,即在CC,CXX,LD,AR等前面相继添加"#"号(如果不注释掉会与刚才配置的系统临时变量冲突,我推测也可以直接一步到位把aarch64-xilinx交叉编译工具放在系统环境变量里,但是随便改.bashrc文件很容易产生问题,不推荐这样做),然后就可以在文件目录下通过命令行执行make(这个命令行终端要与刚才那个source的命令行终端是同一个),这时在bin目录下就生成可以执行的文件了。


在这里插入图片描述

图2.对源码包makefile文件的配置


在这里插入图片描述

图3.交叉编译环境配置&源码包编译


3.关于vcu源码包如何进行二次开发(qt方式)

  首先Xilinx给的这个源码包应该是手工写makefile进行编译的,自己去写一个makefile再去更改这样源码文件肯定很困难,加之文件数目非常多,这里给出的方案是将bin文件中内含有的所有.o文件一起打包成一个静态库.a/.lib再进行操作(动动手把所有.o拷贝到一个文件夹执行以下命令)。

ar rc lib_enc.a *.o//通过此命令行命令打包.o文件变成库文件lib_enc.a

  qt新建c++空工程后,先在pro文件中通过INCLUDEPATH+=添加include,lib_app,lib_encoder,exe_encoder等文件的路径,然后通过CONFIG += precompile_headerPRECOMPILE_HEADER += config.h(就是include目录下的那个,这个文件要先预编译,不然宏定义就不好用了),然后添加静态库,再用LIBS+=-pthread指令调用多线程的库就完成工程的配置了。
  这里还要再多一嘴,最好把所有要用到的文件都放在工程目录里,因为直接引用静态库的话,在qt的.pro文件里默认生成的是$$PWD路径,表示当前工程的路径,如果库文件在其他目录里可能会有找不到库函数的情况出现。
  最后我们可以把exe_encoder中的main.cpp的内容拷贝替换我们当前工程的main.cpp中的内容,可以发现编译成功了,此时工程里只有一个main.cpp和config.h,这样进行二次开发就很方便了,直接调用库中已经编译好的函数接口来进行开发。

在这里插入图片描述

图4.所建qt工程目录文件(目录所示仅有编码内容,需要解码可以往里自己加)


在这里插入图片描述

图5.所建qt工程的.pro文件配置,编译成功




^_^最后的最后我要狠狠感谢一位大佬的idea,给了我很多启发^_^。

这个是那个大佬的博客相关文章链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L.fountain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值