基于SDSoC平台配置一个新的项目指南

作为地球上最具性价比的嵌入式视觉应用开发平台,Digilent Zybo-Z7 去年一经推出,就凭借华丽丽升级的Zynq器件与各种板载外设接口,俘获了众多Zynq爱好者的芳心。这还不算这一业界标杆性的入门级Zynq-7000平台还免费附赠SDSoC Vochuer!

这一赠可谓激起千层浪,对于垂涎SDSoC已久的Digilent社区用户而言,识货者此等福利当然不会错过。然,作为版主,在下也因此收到了不少关于SDSoC开发的问题。继上一篇我们聊了聊“如何在Zynq开发板上入门SDSoC开发工具”,为响应Digilent开源社区用户的需求,今天我们就再来一发「SDSoC勾搭OpenCV指南」,教你如何用Zybo-Z7创建一个基于OpenCV的SDSoC项目。

 基于SDSoC平台配置一个新的项目指南_设计制作_MEMS/传感技术

在开篇之前提醒一下:

1. 在本教程中,使用的SDSoC版本是2015.4。

2. OpenCV要求Linux易于使用,因为它会使用到许多库,例如pthread.。。本文中不会介绍任何裸机配置方面的内容。

1. 软硬件清单

● SDSoC

● Zybo Z7

● 包含Linux内核+根文件系统的平台

● 装有Linux系统的计算机

2. 获取OpenCV

这一步你至少可以有两个选择,一种是下载并交叉编译库( docs.opencv.org/2.4/doc/tutorials/introduc  TI on/crosscompila  TI on/arm_crosscompile_with_cmake );第二种是获取一个已经交叉编译好的库。在这一教程中,我们事先已经在SDSoC安装文件夹中建立好了OpenCV 2.4.5版本。

3. 修改平台

这里我们需要将编译好的库添加到你想要用于项目的SDSoC平台的根文件系统中。在这步操作之后,可执行文件(你的应用程序)将能够加载库。 在Zybo Z7平台中使用的文件系统镜像类型是initramfs。如果你手头的是另一种镜像类型,你可以在Xilinx wiki上得到更多的所需信息:+and+Modify+a+Rootfs

3.1 将根文件系统复制到临时文件夹中

将位于平台的启动文件夹中名为“uramdisk.image.gz”的存档复制黏贴到一个临时文件夹中。打开终端,并进入该文件夹。

3.2 去掉U-BOOT头文件以获得CPIO存档

dd if=uramdisk.image.gz bs=64 skip=1 of=ramdisk.gz

3.3 将新的CPIO存档压缩到一个新创建的文件夹中

mkdir my_root

gunzip -c ramdisk.gz | sh -c ‘cd my_root/ && sudo cpio -i’

3.4 复制库与头文件(-P保存链接)

sudo cp -p /opt/Xilinx/SDSoC/2015.4/SDK/2015.4/data/embeddedsw/ThirdParty/opencv/lib/* my_root/lib/

sudo cp -r /opt/Xilinx/SDSoC/2015.4/SDK/2015.4/data/embeddedsw/ThirdParty/opencv/include/* my_root/usr/include/

3.5 压缩到CPIO和GUNZIP

sudo sh -c ‘cd my_root/ && find 。 | cpio -H newc -o’ | gzip -9 》 my_ramdisk.image.gz

3.6 添加U-BOOT头文件

mkimage -A arm -T ramdisk -C gzip -d my_ramdisk.image.gz my_uramdisk.image.gz

这里需要确保文件的权限设置为755:

sudo chmod 755 。/my_uramdisk.image.gz

3.7 在平台中更换新创建的镜像

cp 。/my_uramdisk.image.gz /pathToZyboPlatform/boot/uramdisk.image.gz

4. 在SDSoC中创建并配置一个新项目

在SDSoC中创建并配置一个新项目

4.1 添加包含路径

创建一个新项目,选择你修改后的平台,然后选择你想要使用Linux。在project explorer(左侧面板)中右键单击项目,然后点击属性。 进入“C/C ++ build” - 》“设置” - 》 “SDS ++编译器” - 》“目录”,为所选的“build/debug/es  TI mate配置”添加OpenCV的包含路径(/opt/Xilinx/SDSoC/2015.4/SDK/2015.4/data/embeddedsw/ThirdParty/opencv/include),如下图所示:

 基于SDSoC平台配置一个新的项目指南_设计制作_MEMS/传感技术

4.2 链接库

完成后,转到SDS ++ linker‘s configura  TI on,在“库”下,添加要在项目中使用的库及其所在的路径(我这里是: /opt/Xilinx/SDSoC/2015.4/SDK/2015.4/data/embeddedsw/ThirdParty/opencv/lib )

 基于SDSoC平台配置一个新的项目指南_设计制作_MEMS/传感技术

4.3 添加-RPATH-LINK

最后,你需要指定路径,使得链接器能够搜索OpenCV所需的依赖关系(libs)。 转到SDS ++linker configuration,在“Miscellaneous” - 》“Linker Flag”下添加以下行(-Wl,-rpath-link = / opt / Xilinx / SDSoC / 2015.4 / SDK / 2015.4 / data / embeddedsw / ThirdParty / opencv /LIB)。 -Wl选项向工具链表明选项-rpath-link = 。。.将被提供给链接器。

 基于SDSoC平台配置一个新的项目指南_设计制作_MEMS/传感技术

5.进行测试

到这里,我们就要进行本文中最令人兴奋的部分:测试! 以下代码将对一张图像进行FAST特征点检测:

 基于SDSoC平台配置一个新的项目指南_设计制作_MEMS/传感技术


75
183
0
55

相关资讯

  1. 1、教你如何预测连接器的使用寿命3843
  2. 2、新基建下中国制造数字化转型痛点,西门子数字化工业软件发布2030中国战略4055
  3. 3、一文告诉你全球半导体板块到底怎么了2419
  4. 4、将PLC连接到互联网——为新的自动化和信息系统创造更多可能性1749
  5. 5、三相电机改为单相运行3种接线方法2649
  6. 6、数字电路干扰要素和抑制干扰源的常用措施62
  7. 7、亚马逊推智能购物车!自动检测商品,部分替代收银员2415
  8. 8、运动传感器原理/数据处理和融合介绍3766
  9. 9、盘点智能制造发展的新趋势2603
  10. 10、嵌入式GUI软件MicroWindows的体系结构和图形引擎特性与实现3113
全部评论(0)
我也有话说
0
收藏
点赞
顶部