NVIDIA Jetson TX1 系列开发教程之四:Nsight Eclipse Edition进阶

本文主要是介绍NVIDIA Jetson TX1 系列开发教程之四:Nsight Eclipse Edition进阶,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NVIDIA Jetson TX1 系列开发教程之四:Nsight Eclipse Edition进阶


  • 转载请注明作者和出处:http://blog.csdn.net/u011475210
  • 嵌入式平台:NVIDIA Jetson TX1
  • 嵌入式系统:Ubuntu16.04
  • 虚拟机系统:Ubuntu14.04
  • 编者: WordZzzz

    上一篇博文简单介绍了如何使用Nsight Eclipse Edition来导入CUDA例程并构建应用程序到NVIDIA Jetson TX1开发板上。本篇博文将继续介绍Nsight Eclipse Edition的进阶使用,通过OpenCV测试程序和GStreamer测试程序,分别介绍如何添加库链接和库路径到工程文件中,全是干货。友情提示,记得打开开发板并接入到局域网哦~

1. OpenCV测试程序

    JetPack3.0为TX1预装的OpenCV版本为OpenCV2.4.13,环境变量都已配置好,所以我们无需在开发套件上进行任何操作。

1.新建CUDA C++工程,如下图所示:

2.填入工程名称,工程类型为空工程,工具链为CUDA Toolkit 8.0,单击Next:

3.基础设置,这里我们之前已经说过了,对于TX1,全部选5.3。当然按默认的2.0一般也不会报错:

4.目标系统,默认的是主机。如果你之前设置过,这次你只需要单击下拉条就会出现之前的设置,选中就好。我在这里还是重复一遍操作吧,单击Manage:

5.上一步骤之后出现远程连接对话框,填入开发板IP地址和用户名,其他的默认就好,然后单击Finish退出:

6.把Local System关掉,然后选择远程连接的工程路径、工具箱路径和CPU类型地,选完后单击Finish。7、8、9会分别对这三项进行详细说明:

7.Project Path:在步骤6中单击Project Path后面的Browse,出现下图所示对话框,里面显示的是远程连接的开发套件的文件目录,可以进行简单的新建删除等功能。这里我们选择好自己的工程路径。中间可能会出现链接提示,有时还会让你填写TX1的密码,大家乖乖填上就好:

8.Toolkit:在步骤6中单击Tookit后面的Manage,弹出下图所示对话框,第一次打开的话里面的Toolkit path 是空的。我们不需要自己去找工具箱的路径,只需要单击Detect,系统就会帮我们自动填写上工具箱路径。中间可能会出现链接提示,有时还会让你填写TX1的密码,大家乖乖填上就好:

9.CPU Architecture:下拉菜单中有很多类型,我们的TX1对应的是AArch64:

10.对新建的工程添加源文件:

11.因为我们例程用的是OpenCV的hpp头文件,所以源文件最好也写成C++的源文件。填入文件名,选择默认的C++源文件模板:

12.测试代码如下:

/** test_opencv.cpp**  Created on: Jun 3, 2017*      Author: wordzzzz*/#include "opencv2/highgui/highgui.hpp"int main()
{cv::Mat img(512, 512, CV_8UC3, cv::Scalar(0));cv::putText(img,"Hello, OpenCV on Jetson!",cv::Point(10, img.rows / 2),cv::FONT_HERSHEY_DUPLEX,1.0,CV_RGB(118, 185, 0),2);cv::imshow("Hello!", img);cv::waitKey();
}

13.查看库链接。前面已经说到,JetPack3.0已经预装了OpenCV2.4.13,各种环境变量都已设置好,具体信息我们可以通过如下命令在TX1上进行查看:

pkg-config --cflags --libs opencv

    查看结果如下图所示:

ubuntu@tegra-ubuntu:~$ pkg-config --cflags --libs opencv
-I/usr/include/opencv -L/usr/local/cuda-8.0/lib64 -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lopencv_detection_based_tracker -lopencv_esm_panorama -lopencv_facedetect -lopencv_imuvstab -lopencv_tegra -lopencv_vstab -lcufft -lnpps -lnppi -lnppc -lcudart -latomic -ltbb -lrt -lpthread -lm -ldl

14.打开性能设置,即在工程右键,然后选择Properties:

15.重点来了:添加库链接。

    如果你在第12步直接构建上述代码,肯定会出错,因为我们现在所有的设置,都是在为我们的工程文件编写编译命令。熟悉g++/gcc的朋友们可能会有印象,就是我们直接用g++/gcc编译文件的时候,如果用到哪个链接库,一般都是在后面加上-l这种链接的,否则会找不到相应的库链接。

16.经过上述步骤后再CTR+B进行构建,我们可以看到构建命令包括了我们添加的库链接,没有报错表明构建成功:

2. Gstreamer测试程序

1.新建项目,过程不再赘述,然后添加源文件,这次我们用C模板,而不是C++。

/** basic-tutorial-1.c**  Created on: Jun 1, 2017*      Author: wordzzzz*/#include <gst/gst.h>int main(int argc, char *argv[]) {GstElement *pipeline;GstBus *bus;GstMessage *msg;/* Initialize GStreamer */gst_init (&argc, &argv);/* Build the pipeline */pipeline = gst_parse_launch ("playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm", NULL);/* Start playing */gst_element_set_state (pipeline, GST_STATE_PLAYING);/* Wait until error or EOS */bus = gst_element_get_bus (pipeline);msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);/* Free resources */if (msg != NULL)gst_message_unref (msg);gst_object_unref (bus);gst_element_set_state (pipeline, GST_STATE_NULL);gst_object_unref (pipeline);return 0;
}

2.添加头文件路径和库链接:此处比OpenCV多了头文件路径的添加,因为gstremer-1.0的头文件路径貌似没有加入到环境变量中。

    上图中添加的路径,切记是TX1上的路径,而不是虚拟机里的路径。之前用过QT进行过交叉编译,感觉被洗脑了。Nsight的构建,是通过你的设置产生的编译命令,直接在TX1上进行编译的,而不是先生成在虚拟机里再拷贝到TX1上。所以你只要保证你添加的头文件路径和库路径能在TX1上找到就行,没必要把TX1上的库都拷过来,这样反而会出错。

3.CTRL+B构建后在TX1上运行,会有视频播放出来。

系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~

完的汪(∪。∪)。。。zzz

这篇关于NVIDIA Jetson TX1 系列开发教程之四:Nsight Eclipse Edition进阶的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1044760

相关文章

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3