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

news2024/9/17 7:22:32

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中包含

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1613305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mklink 命令的使用(适用场景:C盘爆满,转移到其他盘)

一、背景 将Oracle数据库安装在D盘,由于磁盘爆满,需要将数据库转移到其他磁盘(如:J盘)。 在移动数据库之后,会出现数据库无法使用的情况,这时该如何解决?经了解,可以使用…

基于Hadoop的电商用户行为分析系统设计与实现的系统架构设计

采集层:利用Flume采集电商服务器端用户行为数据,把数据处理后发送至HDFS。 存储层:用户行为数据采集上传至HDFS存储, 导入到数据仓库Hive进行计算处理,分析结果保存至MySql数据库中。 计算层:根据分析需求建…

基于Java+SpringBoot+vue动物救助平台设计和实现

基于JavaSpringBootvue动物救助平台设计和实现 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 &#…

rancher-rke2 修改--service-cluster-ip-range

一、场景 因为需要部署新版本的ingress-nginx,而部署ingress-nginx的时候需要使用hostnetowrk以及nodeport的端口为80和443,service-node-port-range 默认为30000开始,部署会报错。 二、产生修改的需求 1、api-servier的配置文件位置 默认是没有的&…

基于STM32的蓝牙小车的Proteus仿真(虚拟串口模拟)

文章目录 一、前言二、仿真图1.要求2.思路3.画图3.1 电源部分3.2 超声波测距部分3.3 电机驱动部分3.4 按键部分3.5 蓝牙部分3.6 显示屏部分3.7 整体 4.仿真5.软件 三、总结 一、前言 proteus本身并不支持蓝牙仿真,这里我采用虚拟串口的方式来模拟蓝牙控制。 这里给…

【PyTorch】torch.gather() 用法

gather常被用于image做mask的操作中,对哪些地方进行赋值0/1 API: torch.gather — PyTorch 2.2 documentation torch.gather(input, dim, index, outNone) → Tensor gather()的意义: 顾名思义,聚集、集合:gather…

java-单列集合List详解

一、List概述 ​​​​​​​List 接口继承自 Collection 接口。这意味着所有 List 类型的对象都是 Collection 类型的对象,它们共享 Collection 接口中定义的所有方法。 List集合的特点: 1、有序:存和取得元素顺序一致 2、有索引&#xf…

在一台笔记本电脑上试用Ubuntu22.04

在一台笔记本电脑上试用Ubuntu22.04。 本来想看以下该操作系统能否识别笔记本电脑上的硬盘,于是下载试一下。选了一个国内镜像网站下载。下载速度很快。下载以后用软件win image 将下载的iso文件写到U盘上,用的是usb2.0的U盘,该操作用时11分…

Oracle之SQL plus的一些经验心得

每次登入SQL plus后,不知道时哪个用户登入,非常不方便,只能使用show user查看。 以下时可以通过一些设置实现上述的效果,知道时哪个用户登入,和实现输出效果等 1)SQL plus使用细则 SQL plus登录时,我们可以设置一些通用的设置,在每次登入SQL plus的时候生效。 [root@c…

macbook spotlightknowledged 占用 cpu 过高

参考 https://discussions.apple.com/thread/251221314?sortBybesthttps://blog.csdn.net/tree_legend/article/details/136580949

图搜索算法详解

图搜索算法详解 图搜索算法是一种常用的算法技术,广泛应用于计算机科学、人工智能、数据挖掘、网络优化等领域。它的主要目的是在图结构中寻找从起点到终点的最优路径,使得搜索过程更加高效、准确。图搜索算法有多种,包括广度优先搜索、深度优…

MKS 质量MFC流量控制器原理及应用课件PPT

MKS 质量MFC流量控制器原理及应用课件PPT

2、关于数据库事务那些事

目录 1、什么是事务? 2、介绍下数据库事务? 3、并发事务会带来什么问题? 3.1、不可重复读和幻读有什么区别? 4、数据库隔离级别有哪几种? 5、MySQL默认使用隔离级别是啥? 6、如何控制并发事务&#…

TCP 协议特性

1. TCP 基本认识 TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。 面向连接:一定是「一对一」才能连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的; 可靠的:无论的网络链…

论文笔记:Time-LLM: Time Series Forecasting by Reprogramming Large Language Models

iclr 2024 reviewer 评分 3888 1 方法 提出了 Time-LLM, 是一个通用的大模型重编程(LLM Reprogramming)框架将 LLM 轻松用于一般时间序列预测,而无需对大语言模型本身做任何训练 为什么需要时序数据和文本数据对齐:时…

【信号处理】基于CNN的心电(ECG)信号分类典型方法实现(tensorflow)

关于 本实验使用1维卷积神经网络实现心电信号的5分类。由于数据类别不均衡,这里使用典型的上采样方法,实现数据类别的均衡化处理。 工具 方法实现 数据加载 Read the CSV file datasets: NORMAL_LABEL0 , ABNORMAL_LABEL1,2,3,4,5 ptbdb_abnormalpd.…

C语言练习——上三角矩阵

前言 今天我们来看看如何使用代码实现上三角矩阵吧。首先我们来了解一下上上三角矩阵是什么,上三角矩阵就是在矩阵从左上到右下的对角线之下的数组元素都为0的数组方矩阵,例如: 以一个三阶矩阵为例,在对角线元素之下,就…

江西智博环境| 邀您参加2024全国水科技大会暨技术装备成果展览会

展位号:A28 企业介绍 江西智博环境技术有限公司始创于2008年初,总部位于江西省域副中心城市-赣州。公司主要从事一体化净水设备、单村供站、泵船、无负压供水设备自动化控制系统、低配电系统、工艺设备及智慧水务的设计研发、生产、销售、安装、调试等业…

基于深度学习的脑部肿瘤检测系统

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 当大脑中形成异常细胞时,就会发生脑肿瘤。肿瘤主要有两种类型:癌性(恶性)肿瘤和良性肿瘤。恶性肿瘤可分为原发性肿瘤和继发性肿瘤,前者始…

Redis中的慢查询日志(一)

慢查询日志 概述 Redis的慢查询日志功能用于记录执行时间超过给定时长的命令请求,用户可以通过这个功能产生的日志来 监视和优化查询速度。服务器配置有两个和慢查询日志相关的选项: 1.slowlog-log-slower-than选项指定执行时间超过多少微妙(1秒1000 000微妙)的命…