如何使用英特尔® Inspector for Systems

背景

英特尔® System Studio 是一款全新的嵌入式软件工具套件,其中包括 Intel® Inspector for Systems。 本文将介绍如何在嵌入式平台上运行 Inspector for Systems。

概述

我们将以 Yocto Project* 1.2 版为例。 该平台支持多种英特尔主板支持包 (BSP),它还支持通过它们提供的仿真器进行开发,从而无需运行物理嵌入式硬件仅可使用。 以下步骤介绍了如何设置应用,然后通过 Yocto Project* 仿真器 (runqemu) 在该应用上运行英特尔® Inspector for Systems 集合。  以下是我们运行集合所采取的步骤:

  1. 设置 Yocto Project* 1.2 环境。
    1. 交叉编译器
    2. Yocto Project* 预构建内核
    3. 从主机执行 NFS mount 的文件系统
  2. 安装英特尔 System Studio
    1. 将安装程序复制至之前创建的根文件系统。
  3. 交叉编译 tachyon 示例应用
    1. 构建应用
    2. 复制至之前创建的根文件系统。
  4. 启动 QEMU 仿真器会话
    1. 登录仿真器
    2. cd /home/root
  5. 在 tachyon 示例代码上运行英特尔 Inspector for Systems
  6. 在 Linux* 主机上,打开 Inspector for Systems 结果,在 Inspector for systems GUI 中查看结果

设置 Yocto Project* 1.2 环境

  1. 下载预构建工具链,包括 runqemu 脚本可支持文件
    下载地址: http://downloads.yoctoproject.org/releases/yocto/yocto-1.2/toolchain/
    1. 以下工具链 tarball 用于 32 位开发主机系统和 32 位目标架构:poky-eglibc-i686-i586-toolchain-gmae-1.2.tar.bz2
    2. 您需要将该 tar ball 安装到 Linux* 主机中的根 “/” 目录下。 这将创建一个安装区 “/opt/poky/1.2”
  2. 下载预构建 Linux* 内核:
    您可以下载 Linux* 内核(*zImage-qemu<arch>.bin 或 vmlinux-qemu<arch>.bin)。
    1.   http://downloads.yoctoproject.org/releases/yocto/yocto-1.2/machines/qemu/
      1. 下载:bzImage-qemux86.bi
      2. 本文假定该文件位于 ~/yocto/ bzImage-qemux86.bin
  3. 通过以下链接
    1. 创建文件系统: http://downloads.yoctoproject.org/releases/yocto/yocto-1.2/machines/qemu/
    2. 下载 core-image-sato-sdk-qemux86.tar.bz2
    3. source /opt/poky/1.2/environment-setup-i586-poky-linux 
      mkdir -p ~/yocto/file_system/
      runqemu-extract-sdk core-image-sato-sdk-qemux86.tar.bz2  ~/yocto/file_system/
    4. 这将创建您在主机和模拟会话时能够访问的根文件系统。

安装英特尔® Inspector 2013 for Systems

  1. 在 Linux* 主机上安装英特尔® System Studio。
  2. 将英特尔 Inspector for Systems 安装程序复制到之前创建的文件系统中。
    1. cp inspector_for_systems ~/yocto/file_system/home/root

交叉编译 tachyon 示例代码

  1. tachyon 示例应用包含在 Inspector for Systems 发布中。
  2. 在 Linux* 主机上     
    1. cd ~/yocto
    2. 解压 tachyon:tar xvzf /opt/intel/systems_studio_2013.0.xxx/inspector_for_systems/samples/en/C++/tachon_insp_xe.tgz
    3. 您需要按照以下方式修改 tachyon 示例:
    4. 在顶层 Makefile 中:  对包含 CXX 的行进行注释。
    5. 下层 Makefile.gmake (&apos;tachyon/common/gui/Makefile.gmake&apos;) 添加以下行:
UI = x
EXE = $(NAME)$(SUFFIX)
CXXFLAGS += -I$(OECORE_TARGET_SYSROOT)/X11
LIBS += -lpthread -lX11
#LIBS += -lXext
CXXFLAGS += -DX_NOSHMEM
  1. source /opt/poky/1.2/environment-setup-i586-poky-linux
  2. e.     生成
  3. f.        复制 tachyon 二进制文件并在 ~/yocto/file_system/home/yocto/test 中创建 libtbb.so 文件

 

启动 QEMU 仿真器会话

  1. 对 /opt/poky/1.2/environment-setup-i586-poky-linux 执行 source 操作
  2. 对 bzImage-qemux86.bin ~/yocto/file_system/ 执行 runqemu 操作

 

在 tachyon 示例代码上运行英特尔 Inspector for Systems

  1. 登录 QEMU 模拟器会话
    1. 用户根无密码
    2. 对 /home/root/inspector_for_systems 执行 cd 操作
  2. 您应可在之前复制的文件系统中看到 tachyon 二进制文件和 inspector 目录。
  3. 对 /home/root/inspector_for_systems/inspxe-vars.sh 执行 source 操作
  4. 运行 Inspector 集合:

创建目录测试;执行 cd 测试

inspxe-cl –no-auto-finalize –collect mi2 ../tachyon_find_hotspots

请注意:以上代码将执行第二级内存检查分析。

运行 inspxe-cl –collect 帮助,查看您可以执行的其他集合。

在 Linux* 主机上: 打开 Inspector for Systems 结果

  1. 您可以查看之前在 Linux 主机上创建的结果。 您应查看目录 ~/yocto/file_system/home/root/test/r000mi2。
  2. 如要在 Linux 主机上查看英特尔® Inspector for Systems 中的结果
    1.  对 /opt/intel/system_studio_2014.0.xxx/inspector_for_systems/inspxe-vars.sh 执行 Source 操作
    2.  inspxe-gui ~/yocto/file_system/home/root/test/r000mi2
    3. 您看到的结果应与以下相似:

 

总结

英特尔 Inspector for Systems 是一款在代码中正确查找错误的强大工具。

有关编译器优化的更完整信息,请参阅优化通知