65.9K
CodeProject 正在变化。 阅读更多。
Home

将 Intel® System Studio 与 Yocto* 项目结合使用

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2014年10月17日

CPOL

11分钟阅读

viewsIcon

14315

本文档介绍如何将 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 开发环境集成。

  1. 将集成层从 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/

  2. 通过运行安装后脚本来注册层。

    在 shell 控制台中,进入 <YOCTO_HOME> 文件夹

    $wr-iss-2015/yp-setup/postinst_yp_iss.sh <ISS_BASE_DIR>

如果您想卸载 Intel System Studio 的集成,请执行以下步骤。

  1. 在 shell 控制台中,进入 <YOCTO_HOME> 文件夹并运行 uninst_yp_iss.sh 脚本: $wr-iss-2015/yp-setup/uninst_yp_iss.sh
  2. 删除 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 配方。

  1. 将 wr-iss-2015 的路径添加到层 conf 文件。
     $ vi <YOCTO_HOME>/build/conf/bblayers.conf 
     BBLAYERS = " \
     ...
     <YOCTO_HOME>/wr-iss-2015 \
     ...
    "

    请将 <YOCTO_HOME> 替换为您的 Yocto* 项目安装文件夹的完整路径。

  2. 将所需的 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”。

  3. 构建目标系统。例如,
    $ 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 环境设置文件。

  1. 设置 GCC 开发环境并构建一个“hello world”应用程序。
    $ source /opt/poky/1.5.1/environment-setup-i586-wrs-linux
    $ $CC helloworld.c
  2. 设置 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 驱动程序可以自动构建并集成到目标系统中。

  1. 将 SEP 目标包添加到目标系统中。如前一节所述,编辑您的 Yocto* Project conf/local.conf 文件,添加
    IMAGE_INSTALL_append = " intel-iss-vtune-sep-target"
  2. 构建目标系统。例如,
  3. $bitbake core-image-sato
  4. 您将在目标系统文件夹“/opt/intel/”中找到 SEP 驱动程序和 SEP 二进制文件。
  5. 在真实硬件上启动目标系统,并使用 SEP 收集性能数据。
    1. 如果驱动程序未在目标系统中加载,请插入 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 驱动程序。

    2. 将 SEP 目录添加到 PATH,例如
      $ export PATH=$PATH:<VTUNE_TARGET_DIR>/bin32[64]
    3. 运行 SEP 在目标系统上收集性能数据。例如
      $sep -start -app a.out

    性能数据将收集在 .tb6 文件中。有关使用 SEP 进行性能分析的详细说明,请参阅 SEP 用户指南。

  6. 将性能数据文件 (.tb6) 复制到主机系统,将文件导入 VTune™ Amplifier GUI 并调查性能问题。有关导入性能数据文件的详细信息,请参阅 Intel VTune Amplifier 帮助文档 > 用户指南 > 管理结果文件。

7 使用 VTune™ Amplifier 进行远程性能分析

您可以按照以下步骤使用 VTune Amplifier 进行性能远程分析,并进行远程数据收集。

  1. 将 VTune Amplifier 目标包添加到目标系统中。

    如前一节所述,编辑您的 Yocto* Project conf/local.conf 文件,添加

    IMAGE_INSTALL_append = " intel-iss-vtune-target"
    
    • 构建目标系统。您将在目标系统文件夹“/opt/intel/”中找到 VTune Amplifier 驱动程序和远程数据收集实用程序。
    • 在真实硬件上启动目标系统,并为远程数据收集设置目标系统。
      1. 如果 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 驱动程序。

      2. 设置从主机到目标的无密码 root 访问。有关详细信息,请参阅 VTune Amplifier 帮助文档 -> 用户指南 -> 远程运行分析 -> 准备目标嵌入式 Linux 系统进行远程分析 -> 设置 SSH 进行远程收集。
    • 从主机系统启动远程数据收集。

      有关详细信息,请参阅 VTune Amplifier 帮助文档 -> 用户指南 -> 远程运行分析 -> 远程收集数据。

8 参考

免责声明和法律信息

本文档中的信息是结合 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

© . All rights reserved.