标题: 如何在HiKey上部署streamline [打印本页]
作者: look_w 时间: 2018-1-24 20:12 标题: 如何在HiKey上部署streamline
1. HiKey 介绍HiKey(LeMaker™ version) 搭载了Kirin 620主控芯片,集成了8核 64位Cortex-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 介绍 Streamline是ARM DS-5中十分重要的性能分析工具,既支持CPU的性能分析,又支持GPU的性能分析。Streamline以丰富的图形化界面为用户提供Timeline,Call Paths, Function,Code,Log等5种视图,简单、直观、易用。
最新版的streamline (v5.25) 集成了MGD(Mali 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,因此CPU的hardware event无法通过streamline查看。作为自强不息的工程师,我们必须解决这个问题,尝试重新编译,从源代码级别构建Hikey的环境。下面分享一下本人为streamline准备Hikey环境的一些心得体会和关键步骤,希望对大家,尤其是Hikey的“玩家”有所帮助。
3.2 Rebuild android system 参照如下链接,可以帮助我们从源代码级别一步一步将整个android系统build好。具体可以搜索“AOSP Build From Source”。
熟悉streamline的朋友都知道,streamline自带编译好的gatord,可以直接运行。如果想 profling GPU的话,目前需要编译gator driver和Mali 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。
HiKey在kernel目录下有自己的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.img”为boot.img,那么我们要烧写的kernel和dtb就打包在boot.img中。为此,我使用两个脚本(请查阅附件hikey_unpack.sh+hikey_mkbootimage.sh)完成boot.img的解包和打包,如下图所示:
最后boot.img更新之后,使用fastboot将其烧写到flash中。
4. Streamline 分析有图有真相,下面是运行Geekbench和Antutu时的streamline截图,供大家赏析。
4.1 运行 Geekbench当运行Geekbench时,streamline实时采样,获取不同的view,包括timeline, call paths, functions 和 code view供事后性能分析。
4.2 运行 Antutu
5. 总结 本文主要介绍在Hikey上部署streamline的基本步骤,尤其是HiKey kernel的编译和烧录方法, 最后把通过streamline对运行Geekbench和Antutu时系统的性能实例呈现给大家,希望有所帮助,谢谢。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |