在NVIDIA Tegra K1 ARM平台进行本地应用编译

供稿:韬睿(上海)计算机科技有限公司

  • 关键词:NVIDIA,ARM,K1
  • 作者:胡珊逢
  • 摘要:传统的ARM 处理器由于其性能或者存储空间的缘故,源码代码都是在 PC 机上用相应的编译器交叉编译为二进制可执行文件。最后再将其部署目标板进行远程调试。因此,用户必须在 PC 上配置 ARM 开发环境,这一般包括交叉编译工具、头文件、交叉编译所得的库文件以及其他配置文件等。

1). 简介

传统的ARM 处理器由于其性能或者存储空间的缘故,源码代码都是在 PC 机上用相应的编译器交叉编译为二进制可执行文件。最后再将其部署目标板进行远程调试。因此,用户必须在 PC 上配置 ARM 开发环境,这一般包括交叉编译工具、头文件、交叉编译所得的库文件以及其他配置文件等。


Nvidia Tegra K1 处理器,具有 4 核 Cortex-A15,最高主频为 2.2 GHz。本文将使用Toradex公司基于此处理器的ApalisTK1 ARM计算机模块进行测试,在这个模块上,除了可以使用 Toradex 提供的基于 Angstrom 的Linux BSP 外,用户还可以在上面使用由Nvidia 提供的JetPack BSP。该 BSP 是基于 Ubuntu 的针对 Tegra K1 处理器的发行版本,包含基本的 Linux 工具和 Nvidia 专属的 CUDA 支持库文件,方便用户开发 K1 上的 Kepler GPU,发挥其强大的并行计算能力。


由于 JetPack BSP 采用了 Ubuntu,Apalis TK1 的软件系统能够延续 PC 上的用户使用习惯,包括支持使用 apt-get 在线安装软件,软件名字与基于 x86 的 Ubuntu 系统并无二致。加之 Apalis TK1 处理器本身强大的性能,以及 16 GB 的片上存储,用户能够直接在 Apalis TK1 编译应用源代码。下面将以OpenCV 2.4.13 在 Apalis TK1 本地编译为例进行说明。


2).具体操作步骤



3). 总结

上面编译  OpenCV 的过程均在 Apalis TK1 计算机模块上完成,所有编译工作不使用在 PC 机上的交叉编译工具。该方法的优点是,用户能够快速地编译源代码,免于在 PC 机上配置开发环境。程序编译过程中所依赖的头文件以及链接的库文件,均在本地目录中寻找。在交叉编译的时候,如果没有配置好目标的 BSP 目录,编译器会使用 PC 机上系统的头文件。如果对应软件在目标板和 PC 机的版本不同,会导致应用在目标板上运行出错。缺点则是在于编译性能。即使具有  4 Cortex-A15,但是与 x86 CPU,特别是高端处理器如 i7i5 相比,K1 仍然存在一定的差距。因此,在编译大型应用的时候,K1  可能需要更多的时间。例如 OpenCV 2.4.13 Intel® Core i5-3337U CPU @ 1.80GHz × 4 编译耗时约为TK1 的三分之一。如果考虑到源码的管理工具,如 gitsvnPC 机会比 TK1 更具优势。当然对于小型的应用程序,或者一些测试代码,在 TK1 本地编译显然会更具便利。接下来的文章中,我们会介绍在 PC 机使用交叉编译工具开发 Apalis TK1 应用程序。


发布时间:2016年12月16日 11:04  人气:   审核编辑(李晨晖)
相关链接

我有需求