首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

如何在HiKey上部署streamline

如何在HiKey上部署streamline

1. HiKey 介绍HiKeyLeMaker version 搭载了Kirin 620主控芯片,集成了8 64Cortex-A53 处理器,以及Mali450-MP4高性能图形运算处理器,配置1GB/2GB LPDDR3(800MHz)内存,8GB eMMC存储。
HiKey 还是一款符合Linaro LCG组织的96Boards设计标准的开发板。96Boards是基于ARM架构芯片的开放平台规范,是第一个定义Cortex-A开发板的开放规范,基于96Boards标准开发的组件可以在任意兼容96Boards的平台上使用。Linaro LCG将全面推广符合Linaro制定的96Boards标准的开发板,而LeMaker作为Linaro LCG会员将针对96Boards标准硬件平台提供全面的技术服务和社区支持。HiKey产品参数,请参阅【1】。
2. Streamline 介绍      StreamlineARM DS-5中十分重要的性能分析工具,既支持CPU的性能分析,又支持GPU的性能分析。Streamline以丰富的图形化界面为用户提供TimelineCall Paths FunctionCodeLog5种视图,简单、直观、易用。
最新版的streamline (v5.25) 集成了MGDMali Graphics Debugger),在streamline中可以配置和启动MGD,旨在帮助开发人员观测和分析OpenGL ES, EGL, OpenCL Vulkan API 的调用参数和返回值等信息。关于streamline的详细介绍,请参阅【2】,关于MGD的详细介绍,请参阅【3】。
3. HiKey 环境搭建3.1 Quick start     如果说从零开始搭建Hikey的环境的话,请参阅“快速入门”【4】,可以方便快速的帮我们boot android系统。然而,默认情况并没有使能PMU Driver,因此CPUhardware event无法通过streamline查看。作为自强不息的工程师,我们必须解决这个问题,尝试重新编译,从源代码级别构建Hikey的环境。下面分享一下本人为streamline准备Hikey环境的一些心得体会和关键步骤,希望对大家,尤其是Hikey的“玩家”有所帮助。
3.2 Rebuild android system                 参照如下链接,可以帮助我们从源代码级别一步一步将整个android系统build好。具体可以搜索“AOSP Build From Source”。

熟悉streamline的朋友都知道,streamline自带编译好的gatord,可以直接运行。如果想 profling GPU的话,目前需要编译gator driverMali driver。下一步我们需要编译kernel
3.3 Build kernel                  参看如下链接,搜索“Building the kernel”.

     注意目前最新支持的kernel版本是4.4,因此:git checkout -b android-hikey-linaro-4.4 origin/android-hikey-linaro-4.4


     在DTS中增加PMU的支持,以便在kernel启动的时候初始化PMU


                    
                  HiKeykernel目录下有自己的DTS home位于/hikey-linaro/arch/arm64/boot/dts/hisilicon, 编译完成后,生成的kernel位于:/hikey-linaro/arch/arm64/boot
                  
3.4 Build Mali driver       Mali driver的代码位于 drivers/gpu/arm/utgard”,目前使用的DDK版本为r6p0-01rel0。若要编译通过需要适当修改“mali_linux_trace.h”文件,请参阅附件。
编译命令行如下:
sudo make -C /home/davxia01/Hikey/hikey-linaro/ M=`pwd`  ARCH=arm64 CROSS_COMPILE=/home/davxia01/Hikey/AOSP/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-  KCFLAGS="-I /home/davxia01/Hikey/hikey-linaro/drivers/gpu/arm/utgard " GATOR_WITH_MALI_SUPPORT=MALI_4xx CONFIG_GATOR_MALI_PATH=/home/davxia01/Hikey/hikey-linaro/drivers/gpu/arm/utgard GATOR_MALI_INTERFACE_STYLE=4 MALI_TIMELINE_PROFILING_ENABLED=1 MALI_FRAMEBUFFER_DUMP_ENABLED=1 MALI_SW_COUNTERS_ENABLED=1 modules


告诉大家一个好消息,熟悉streamline的朋友应该知道ARM建议把Mali driver编译进kernel,目前在新版的streamline (v5.25)已经很好的支持Mali driver编译成kernel module,从而解决了partner在大项目中需要跨部门合作的问题。
3.5 Program kernel
     那么如何将我们编译生成的kernel image烧写到flash上呢?
     在3.1 Quick start中烧写内核镜像时使用:sudo fastboot flash boot boot_fat.uefi.img


      下文中我们称boot_fat.uefi.imgboot.img,那么我们要烧写的kerneldtb就打包在boot.img中。为此,我使用两个脚本(请查阅附件hikey_unpack.sh+hikey_mkbootimage.sh)完成boot.img的解包和打包,如下图所示:
                  
     最后boot.img更新之后,使用fastboot将其烧写到flash中。
4. Streamline 分析有图有真相,下面是运行GeekbenchAntutu时的streamline截图,供大家赏析。
4.1 运行 Geekbench当运行Geekbench时,streamline实时采样,获取不同的view,包括timeline, call paths, functions   code view供事后性能分析。
4.2 运行 Antutu                     
5. 总结    本文主要介绍在Hikey上部署streamline的基本步骤,尤其是HiKey kernel的编译和烧录方法, 最后把通过streamline对运行GeekbenchAntutu时系统的性能实例呈现给大家,希望有所帮助,谢谢。
返回列表