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

本文主要是介绍在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' git@github.com: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 位,这增加了密钥的安全性。

 编译固件

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-V64架构的CV1811C开发板上应用perf工具进行多线程程序性能分析及火焰图调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/925099

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in