在RISC-V64架构的CV1811C开发板上应用perf工具进行多线程程序性能分析及火焰图调试

CV1811C环境编译

SDK目录结构

.
├── build               // 编译目录,存放编译脚本以及各board差异化配置
├── buildroot-2021.05   // buildroot开源工具
├── freertos            // freertos系统
├── fsbl                // fsbl启动固件,prebuilt形式存在
├── install             // 执行一次完整编译后,各image的存放路径
├── isp_tuning          // 图像效果调试参数存放路径
├── linux_5.10          // 开源linux内核
├── middleware          // 自研多媒体框架,包含so与ko
├── opensbi             // 开源opensbi库
├── ramdisk             // 存放最小文件系统的prebuilt目录
└── u-boot-2021.10      // 开源uboot代码

准备编译环境

  • 在虚拟机上安装一个ubuntu系统,或者使用本地的ubuntu系统,推荐Ubuntu 20.04 LTS
  • 安装串口工具: mobarXterm 或者 xshell 或者其他
  • 安装编译依赖的工具
    sudo apt install pkg-config
    sudo apt install build-essential
    sudo apt install ninja-build
    sudo apt install automake
    sudo apt install autoconf
    sudo apt install libtool
    sudo apt install wget
    sudo apt install curl
    sudo apt install git
    sudo apt install gcc
    sudo apt install libssl-dev
    sudo apt install bc
    sudo apt install slib
    sudo apt install squashfs-tools
    sudo apt install android-sdk-libsparse-utils
    sudo apt install android-sdk-ext4-utils
    sudo apt install jq
    sudo apt install cmake
    sudo apt install python3-distutils
    sudo apt install tclsh
    sudo apt install scons
    sudo apt install parallel
    sudo apt install ssh-client
    sudo apt install tree
    sudo apt install python3-dev
    sudo apt install python3-pip
    sudo apt install device-tree-compiler
    sudo apt install libssl-dev
    sudo apt install ssh
    sudo apt install cpio
    sudo apt install squashfs-tools
    sudo apt install fakeroot
    sudo apt install libncurses5
    sudo apt install flex
    sudo apt install bison

    注意:cmake版本最低要求3.16.5,安装cmake=3.16.5参考安装cmake=3.16.5_cmake 3.16-CSDN博客

获取SDK

  • git clone -b 'BranchName' [email protected]:sophgo/sophpi.git //在github上增加ssh key
    cd sophpi
    ./scripts/repo_clone.sh --gitclone scripts/subtree.xml

    在拉取源码之前要先向github中添加秘钥,进去./ssh目录下,找到id_rsa.pud并查看其内容将其添加到github中。如果没有,则在该目录下输入以下命令重新生成

ssh-keygen -t rsa -b 4096  //-t rsa 指定密钥类型为 RSA;-b 4096 指定密钥的位数为 4096 位,这增加了密钥的安全性。

在RISC-V64架构的CV1811C开发板上应用perf工具进行多线程程序性能分析及火焰图调试_第1张图片

 编译固件

source build/cvisetup.sh
defconfig cv1811c_wevb_0006a_spinand  //要注意板子是nand还是emmc,命令是不一样的
build_all
  • 编译成功后可以在sophpi/install/soc_cv1811c_wevb_0006a_spinand目录下看到生成的image

 SD卡烧录

  • 接好EVB板的串口线
  • 将SD卡格式化成FAT32格式
  • 将install目录下的image放入SD卡根目录
.
├── boot.emmc
├── cfg.emmc
├── fip.bin
├── fw_payload_uboot.bin
├── rootfs.emmc
└── system.emmc
  • 将SD卡插入的SD卡槽中
  • 将平台重新上电,开机自动进入烧录:
  • 烧录成功,拔掉SD卡,重新给板子上电,进入系统

 perf编译与移植

进入到sophpi/linux_5.10/tools目录下可以看到有perf文件夹,修改Makefile.conf文件,添加LIBC_SUPPORT := 1。 请注意,perf 是一个非常强大的工具,其功能可能因内核版本和系统配置的不同而有所差异。

不需要进入,直接在tools中编译。(perf文件一般不需要下载,linux kernel中包含的有

你可能感兴趣的:(risc-v,架构,嵌入式硬件)