将 Intel® System Studio 与 Yocto* 项目结合使用
本文档介绍如何将 Intel System Studio 2015 集成层与 Yocto* Project 一起安装和使用。
1 引言
Yocto* Project 是一个开源协作项目,提供模板、工具和方法,帮助您为嵌入式产品创建定制的基于 Linux 的系统。Yocto* Project 使用基于 Poky 项目的构建系统来构建完整的 Linux 映像。Intel® System Studio 2015 为 Yocto* Project 构建系统提供了集成层支持。通过使用集成层支持,您可以将 Intel® C++ 编译器用作项目和应用程序构建的辅助工具链。您可以选择并构建目标系统的组件,其中包括 Intel C++ 编译器运行时库、用于系统目标包的 Intel VTune™ Amplifier、Intel® Integrated Performance Primitives 和 Intel® Math Kernel Libraries。
本文档介绍如何将 Intel System Studio 2015 集成层与 Yocto* Project 一起安装和使用。对于 Intel System Studio 2015 之前的版本,请参阅本文档的“参考”部分。在使用 Intel System Studio 和 Yocto* Project 构建之前,请按照“Yocto Project 快速入门”中的说明设置 Yocto Project 构建环境。上述文档将指导您构建映像并在 QEMU 模拟器中运行它。例如,要构建一个 Yocto Project 1.5 QEMU 映像,使用 poky-dora-10.0.0,
$ wget
http://downloads.yoctoproject.org/releases/yocto/yocto-1.5/poky-dora-10.0.0.tar.bz2
$ tar xjf poky-dora-10.0.0.tar.bz2 $ cd poky-dora-10.0.0 $ source oe-init-build-env $ bitbake -k core-image-sato $ runqemu qemux86
请遵循“Yocto Project 快速入门”手册和“Yocto* Project 文档”开始 Yocto* Project 构建。
在接下来的会话中,我们将使用 <YOCTO_HOME> 作为 Yocto* Project 构建系统的根目录。例如,如果您使用的是 poky-dora-10.0.0,则 <YOCTO_HOME> 将是 /path/to/poky-dora-10.0.0/。
2 Intel® System Studio 集成层安装
安装 Intel System Studio 后,您将在 Intel System Studio 安装文件夹中找到集成层。请按照以下步骤将 Intel System Studio 与 Yocto* Project 开发环境集成。
- 将集成层从 Intel System Studio 安装文件夹复制到 Yocto* Project 开发文件夹,如下图所示
运行以下命令
$cp -r <ISS_BASE_DIR>/wr-iss-2015 <YOCTO_HOME>/
其中 <ISS_BASE_DIR> 是 Intel System Studio 安装的根文件夹。默认情况下,它是 /opt/intel/system_studio_2015.x.y/。<YOCTO_HOME> 是 Yocto* Project 构建系统的根文件夹,例如 /path/to/poky-dora-10.0.0/。
- 通过运行安装后脚本来注册层。
在 shell 控制台中,进入 <YOCTO_HOME> 文件夹
$wr-iss-2015/yp-setup/postinst_yp_iss.sh <ISS_BASE_DIR>
如果您想卸载 Intel System Studio 的集成,请执行以下步骤。
- 在 shell 控制台中,进入 <YOCTO_HOME> 文件夹并运行 uninst_yp_iss.sh 脚本: $wr-iss-2015/yp-setup/uninst_yp_iss.sh
- 删除 wr-iss-2015 层。
3 Intel System Studio 配方
在 Intel System Studio 集成层中,提供了以下配方:recipe-icc
您可以使用此配方将 Intel C++ 编译器运行时库添加到目标系统中。软件包名称为“intel-iss-icc-target”。库将安装在目标系统的库文件夹中。recipe-vtune
此配方包含 VTune™ Amplifier 目标包和采样启用产品 (SEP) 目标包。使用软件包名称“intel-iss-vtune-target”或“intel-iss-vtune-sep-target”为目标系统构建软件包。recipe-ipp
IPP 库根据不同领域分为小块。每个配方都可以单独添加到目标映像中。recipe-mkl 您可以使用此配方将 MKL 库添加到目标映像。请按照以下步骤为您的项目构建 Intel System Studio 配方。
- 将 wr-iss-2015 的路径添加到层 conf 文件。
$ vi <YOCTO_HOME>/build/conf/bblayers.conf BBLAYERS = " \ ... <YOCTO_HOME>/wr-iss-2015 \ ... "
请将
<YOCTO_HOME>
替换为您的 Yocto* 项目安装文件夹的完整路径。 - 将所需的 System Studio 配方添加到“conf/local.conf”。例如,
$ vi "conf/local.conf" IMAGE_INSTALL_append = " intel-iss-icc-target" IMAGE_INSTALL_append = " intel-iss-vtune-target" IMAGE_INSTALL_append = " ippCORE"
请注意,您不能同时添加“intel-iss-vtune-target”和“intel-iss-vtune-sep-target”。
- 构建目标系统。例如,
$ bitbake core-image-sato
4 将 Intel® C++ 编译器用作 Yocto* Project 构建的辅助工具链
通过集成层支持,Intel® C++ 编译器可用作辅助工具链来构建软件包。要为特定软件包启用 ICC 构建,请在软件包配方 .bb 文件中添加以下行。
TOOLCHAIN_pn-${PN} = "icc"
Intel C++ 编译器将自动调用以构建此软件包。
5 从 Yocto* Project SDK 使用 Intel® C++ 编译器
应用程序开发人员可能会使用 Yocto* Project SDK 开发应用程序。安装 Intel® System Studio 集成层后,当您从项目构建中导出 SDK 时,Intel® C++ 编译器工作环境脚本将在默认 gcc 编译器环境脚本所在的文件夹中自动生成。ICC 环境设置文件的名称与 gcc 编译器的文件名称相同,但后缀为“-icc”。例如,当您使用以下命令导出 SDK 包时,$ bitbake meta-toolchain
或者 $bitbake core-image-sato -c populate_sdk Intel® C++ 编译器环境文件将自动生成,并成为 SDK 包的一部分。例如,构建完成后,您将在 /path/to/poky-dora-10.0.0/build/tmp/work/i586-poky-linux/meta-toolchain-gmae/ 1.0-r7/sdk/image/opt/poky/1.5/environment-setup-i586-poky-linux-icc 找到 icc 环境文件。
SDK 包位于 bitbake 构建的文件夹中,例如 /path/to/poky-dora-10.0.0/build/tmp/deploy/sdk。
安装 SDK 后,您可以 source ICC 环境脚本文件来设置编译环境的变量,例如 CC、CXX、AR、LD 等。请注意,ICC 环境设置文件中的路径是在导出 SDK 包时配置的,指向安装在计算机上的 Intel System Studio 的路径。如果您更改了 Intel System Studio 的安装路径,则需要使用正确的 ICC 路径更新 ICC 环境设置文件。
- 设置 GCC 开发环境并构建一个“hello world”应用程序。
$ source /opt/poky/1.5.1/environment-setup-i586-wrs-linux $ $CC helloworld.c
- 设置 ICC 开发环境并构建一个“hello world”应用程序。
$ source /opt/poky/1.5.1/environment-setup-i586-wrs-linux-icc $ $CC helloworld.c
您可以检查 environment-setup-<xxx>-icc 文件中的内容,如有必要,请更新编译标志。请注意,在使用 Yocto* Project SDK 的 ICC 编译器之前,您需要在 Linux 主机上安装 Intel System Studio 产品。如果您已经安装了 Yocto* 项目 SDK,还可以参考以下文章手动添加 Intel C++ 编译器工作环境脚本文件。
http://software.intel.com/en-us/articles/building-yocto-applications-using-intel-c-compiler
6 使用 SEP 进行性能分析
采样收集器 (SEP) 是一款命令行工具,用于使用基于事件的采样 (EBS) 进行基于硬件的采样。使用集成层,SEP 驱动程序可以自动构建并集成到目标系统中。
- 将 SEP 目标包添加到目标系统中。如前一节所述,编辑您的 Yocto* Project conf/local.conf 文件,添加
IMAGE_INSTALL_append = " intel-iss-vtune-sep-target"
- 构建目标系统。例如,
- $bitbake core-image-sato
- 您将在目标系统文件夹“/opt/intel/”中找到 SEP 驱动程序和 SEP 二进制文件。
- 在真实硬件上启动目标系统,并使用 SEP 收集性能数据。
- 如果驱动程序未在目标系统中加载,请插入 SEP 驱动程序。
$ cd <VTUNE_TARGET_DIR>/sepdk/src $ ./insmod-sep3
此处
<VTUNE_TARGET_DIR>
是 VTune Amplifier for Systems 目标文件所在的文件夹。默认情况下,它位于“/opt/intel/vtune_amplifier_2015_for_systems.0.0.xyz”。在受限环境中,您可以添加“-re”选项。请使用命令“./insmod-sep3 -h”获取更多详细信息。您需要目标系统的 root 访问权限才能加载 VTune Amplifier 驱动程序。
- 将 SEP 目录添加到 PATH,例如
$ export PATH=$PATH:<VTUNE_TARGET_DIR>/bin32[64]
- 运行 SEP 在目标系统上收集性能数据。例如
$sep -start -app a.out
性能数据将收集在 .tb6 文件中。有关使用 SEP 进行性能分析的详细说明,请参阅 SEP 用户指南。
- 如果驱动程序未在目标系统中加载,请插入 SEP 驱动程序。
- 将性能数据文件 (.tb6) 复制到主机系统,将文件导入 VTune™ Amplifier GUI 并调查性能问题。有关导入性能数据文件的详细信息,请参阅 Intel VTune Amplifier 帮助文档 > 用户指南 > 管理结果文件。
7 使用 VTune™ Amplifier 进行远程性能分析
您可以按照以下步骤使用 VTune Amplifier 进行性能远程分析,并进行远程数据收集。
- 将 VTune Amplifier 目标包添加到目标系统中。
如前一节所述,编辑您的 Yocto* Project conf/local.conf 文件,添加
IMAGE_INSTALL_append = " intel-iss-vtune-target"
- 构建目标系统。您将在目标系统文件夹“/opt/intel/”中找到 VTune Amplifier 驱动程序和远程数据收集实用程序。
- 在真实硬件上启动目标系统,并为远程数据收集设置目标系统。
- 如果 SEP 驱动程序未加载,请插入 SEP 驱动程序。
$ cd <VTUNE_TARGET_DIR>/sepdk/src $ ./insmod-sep3
此处 <VTUNE_TARGET_DIR> 是 VTune Amplifier for Systems 目标文件所在的文件夹。默认情况下,它位于“/opt/intel/vtune_amplifier_2015_for_systems.0.0.xyz”。在受限环境中,您可以添加“-re”选项。请使用命令“./insmod-sep3 -h”获取更多详细信息。
您需要目标系统的 root 访问权限才能加载 VTune Amplifier 驱动程序。
- 设置从主机到目标的无密码 root 访问。有关详细信息,请参阅 VTune Amplifier 帮助文档 -> 用户指南 -> 远程运行分析 -> 准备目标嵌入式 Linux 系统进行远程分析 -> 设置 SSH 进行远程收集。
- 如果 SEP 驱动程序未加载,请插入 SEP 驱动程序。
- 从主机系统启动远程数据收集。
有关详细信息,请参阅 VTune Amplifier 帮助文档 -> 用户指南 -> 远程运行分析 -> 远程收集数据。
8 参考
- Intel System Studio 网站
http://software.intel.com/en-us/intel-system-studio - 使用 Intel® C++ 编译器构建 Yocto* 应用程序
http://software.intel.com/en-us/articles/building-yocto-applications-using-intel-c-compiler - 将 Intel C++ 编译器用作 Yocto* Project 的辅助工具链
https://software.intel.com/en-us/articles/using-intel-c-compiler-as-the-secondary-toolchai n-for-yocto-project - 将 Intel System Studio 与 Wind River Linux 构建环境结合使用 https://software.intel.com/en-us/articles/using-intel-system-studio-with-wind-river-linux-build-environment
免责声明和法律信息
本文档中的信息是结合 INTEL® 产品提供的。本文档不授予任何明示或暗示的、禁止反言的或以其他方式的知识产权许可。除 INTEL 的销售条款和条件另有规定外,INTEL 对本文档中的信息不承担任何责任,并免除与 INTEL 产品销售和/或使用相关的任何明示或暗示的保证,包括对特定用途的适用性、适销性或对任何专利、版权或其他知识产权的侵权保证。
“任务关键型应用”是指任何应用,在其发生故障时,可能直接或间接导致人身伤害或死亡的 Intel 产品。如果您购买或使用 INTEL 的产品用于任何此类任务关键型应用,您将赔偿 INTEL 及其子公司、分包商和关联公司,以及上述各方的董事、高级职员和员工,使其免受所有索赔、成本、损害和费用以及合理的律师费,这些索赔、成本、损害和费用,直接或间接,因任何产品责任、人身伤害或死亡的索赔而产生,无论 INTEL 或其分包商在 INTEL 产品或其任何部分的 설계、制造或警告方面是否存在疏忽。
Intel 可随时更改规格和产品描述,恕不另行通知。设计人员不得依赖标记为“保留”或“未定义”的任何特性或说明的缺失或特性。Intel 保留这些以供将来定义,并且对因其未来更改而引起的任何冲突或不兼容性不承担任何责任。此处提供的信息如有更改,恕不另行通知。请勿使用此信息完成设计。本文档中描述的产品可能存在设计缺陷或错误,称为勘误,这可能导致产品偏离发布规格。当前勘误可在请求时获得。
请联系您当地的英特尔销售办事处或您的经销商以获取最新的规范,并在下订单前进行咨询。
可以通过致电 1-800-548-4725 或访问 Intel 网站获取本文档中引用的带有订单号的文档副本或其他 Intel 文献。
本文档包含处于设计阶段的产品信息。Intel 处理器编号不是性能的衡量标准。处理器编号用于区分同一处理器系列内的不同功能,而不是不同处理器系列之间的功能。有关详细信息,请参阅 http://www.intel.com/products/processor_number/。
Centrino、Cilk、Intel、Intel Atom、Intel Core、Intel NetBurst、Itanium、MMX、Pentium、Xeon、Intel Xeon Phi 是 Intel Corporation 在美国和/或其他国家的商标。
* 其他名称和品牌可能被声明为他人财产。版权所有 © 2014,Intel Corporation。保留所有权利。12
优化通知
Intel 的编译器在针对非 Intel 微处理器进行优化时,可能不会达到与针对 Intel 微处理器相同的优化程度。这些优化包括 SSE2、SSE3 和 SSSE3 指令集以及其他优化。Intel 不保证任何优化在非 Intel 制造的微处理器上的可用性、功能或有效性。本产品中的微处理器相关优化旨在与 Intel 微处理器一起使用。某些非 Intel 微体系结构特有的优化保留给 Intel 微处理器。有关此声明涵盖的具体指令集的信息,请参阅适用的产品用户和参考指南。通知修订版 #20110804