比肩Arduino和树梅派的新晋“网红”,国外工程师都玩疯啦
下做出选择即可,整个过程非常简约,界面友好。
值得注意的是JetPack安装程序不仅可以在Host电脑和Jetson TX1上搭建开发环境,同时还可以对Jetson TX1进行刷机,用来恢复出场设置和升级最新的操作系统版本,使用JetPack刷机比用命令行工具更加简便和不易出错。
在Host电脑上为JetPack安装包添加运行权限并执行
全程只需要依据安装引导进行配置即可
在Jetson TX1上测试开发编译环境是否安装成功
小试牛刀——运行/开发环境初探
运行环境方面,JetPack搭建好开发环境后,Jetson TX1将重启并引导之图形界面。目前Jetson TX1上最新的操作系统为Linux For Tegra R24.1,该操作系统在用于ARM架构的Ubuntu 14.04 LTS版本基础上定制开发。Ubuntu在国内拥有庞大的用户基础和社区环境,基于Ubuntu定制开发的Linux For Tegra对于发者们来说,在界面,命令和操作习惯等方面非常熟悉,极易上手;与此同时,开发者使用过程中遇到的问题,除了官方论坛外,也可以在更广泛的Ubuntu操作系统社区环境内向众大神寻求帮助。
Jetson TX1操作系统 Linux for Tegra概览
一般来说,针对嵌入式平台的开发有两种编译模式:原生编译和交叉编译。原生编译就是直接在嵌入式平台上编译代码并运行,而交叉编译就是在个人电脑等平台编译代码,然后加载到嵌入式平台运行。我们在Jetson TX1开发上使用交叉编译。这里需要提醒一下各位小伙伴,交叉编译需要在Jetson TX1和Host电脑间同步代码,所以需要提前安装和配置Git,否则在后续编译执行的时候会报错的呦,开发工具会深情地问你"Can you tell me who you are"。
NVDIA Nsight启动界面
NVDIA Nsight操作界面
Jetson TX1使用的开发工具NVDIA Nsight是基于eclipse定制开发,其界面和操作习惯于eclipse基本保持一致,消除了开发人员的熟悉工具的时间和精力消耗。
接下来分享下在Jetson TX上创建,编辑,生成和运行一个项目的过程。
· 新建项目
NVIDIA Nsight新建项目中目标系统设置
NVIDIA Nsight新建项目中目标系统设置
NVIDIA Nsight新建项目中目标系统设置
由于使用交叉编译模式,所以在新建项目时,需要指定目标系统,即实际编译运行程序的系统——Jetson TX1。这里按提示输入Jetson TX1的网络地址,用户名,以及Jetson TX1上CUDA Toolkit的安装路径就可以了。
如果不知道Jetson TX1上CUDA Toolkit的路径也没有关系,新建项目向导很贴心的设置了一个"自动检测"的功能,只要轻轻一点,向导会自动搜寻CUDA Toolkit的路径,非常方便。
· 编辑代码
NVIDIA Nsight代码编辑视图
NVIDIA Nsight代码编辑与eclipse完全一致,只是增加针对CUDA代码的代码补全,高亮提示以及语法检查,用惯eclipse的开发者绝对能感觉到屠龙在手,天下我有。
· 生成/运行项目
NVIDIA Nsight远程运行项目对话框
NVIDIA Nsight远程运行项目对话框
同样的,在按照工具的提示配置好Jetson TX1后,就可以完成程序的编译,运行,然后坐等收获结果!
软硬件配置概览
在简单介绍了Jetson TX1以及它的开发环境后,现在从Jetson TX1的软硬件配置入手,来探索Jetson TX1开发者套件带给广大开发者的无限可能。
· CUDA
CUDA是整套平台的核心,保证了Jetson TX1超高的计算性能。同时,Jetson TX1也支持各种基于CUDA跨架的软件库,从而可以用于多种高并行度计算和高数据密度的应用场景,如机器学习,深度学习,大数据实施分析以及物联网边缘计算等。
· GPIO、I2C、I2S、SPI、带流控制的TTL UART等接口
丰富的接口给了今后基于Jetson TX1进行扩展开发的无限可能,即可以通过TTL UART、GPIO等接口实现其它单片机、嵌入式系统的所有功能外,还能通过自身强大的性能,升任其它单片机、嵌入式系统,如树梅派等无力支撑的高数据密度业务和高处理实时性业务,如智能机器人,机器人,无人驾驶汽车等。
· 摄像头扩展头
通过将摄像头(最高支持4K)与Jetson TX1连接,并借助OpenCV和Visionworks进行视觉计算。
· PCIe x4接口
这使得Jetson TX1与其它扩展板卡得以结合,并碰撞出创新的火花。如可以通过PCIe x4接口将可编程的FPGA接入系统,协助处理通信,加解密等业务,从而进一步提升Jetson TX1针对特殊应用场景的性能。
· USB 2.0 Client/Host接口
USB2.0 Client/Host口也为很多应用提供便利。一方面通过
- 您是否真的适合做嵌入式开发?(07-14)
- 令人拍案称绝的10大最精致小微嵌入式开发板(07-01)
- 给学习嵌入式开发者的十点建议(06-21)
- 嵌入式开发的设计模式及发展趋势(05-05)
- 谨献给为了知识执着的嵌入式初学者(07-25)
- 如何选择更适合你的ARM Cortex内核?(10-13)