写点什么

哪吒 D1-H 测试 microbench

作者:贾献华
  • 2022 年 7 月 25 日
  • 本文字数:2683 字

    阅读完需:约 9 分钟

烧写固件

PhoenixSuit:基于 Windows 的系统的烧写工具,是最常用的烧写工具,通过数据线将 PC 和开发板连接,把固件烧到开发板上,支持分区烧写,适用于开发和小规模生产使用。建议开发者开发时使用该工具进行固件升级。

PhoenixSuit 使用简介

下面主要介绍用 PhoenixSuit 烧写的方法,LiveSuit 和 PhoenixUSBpro 烧写的方法类似。

PhoenixSuit 下载地址:固件烧写工具PhoenixSuit

同时需安装全志 USB 驱动,下载链接:全志USB驱动

*企业开发者在安装 APST 的同时也会安装全志 USB 驱动,无需单独再安装

具体步骤如下:

(1)打开 PhoenixSuit,当设备上电启动并插入 USB 与 PC 相连的时,PhoenixSuit 会提示识别到设备;

(2)点击 一键刷机-浏览选择要烧写的固件;

(3)点击 立即升级,此时会通过 USB 给设备发送重启命令,设备会带着烧写标识重启,并在重启阶段进入烧写模式;

(4)设备重新到 boot 的时候会自动进行烧写,可以看到 PhoenixSuit 的进度条在动;

(5)烧写成功,设备重启。



空设备烧写

当设备第一次烧写时(即设备内没有系统),PC 打开烧写工具,设备插入 USB,烧写工具工具会自动弹出烧写提示,此时按 YES 按钮即可进行烧写(需提前在固件处选好要烧写的固件)。

按住 fel 按键烧写

在开发板正面中间位置有一个 fel 按键,PC 打开烧写工具后,按住 fel 按键再插入 USB 上电,此时也会如空设备烧写一样进入烧写模式.

*提示:当 PC 识别到设备弹出提示后,即可松掉 fel 键,不用一直按着

已有设备固件烧写

对于已经烧过固件的设备,在开发过程中,可以在串口或 ADB 终端输入烧写重启命令 reboot efex重启设备,此时设备会重启并在启动过程中自动进入烧写模式,后续烧写过程同上 PhoenixSuit 使用简介 。

*串口及 ADB 调试方法见: USB及串口调试


RootFS

咱们这里介绍的方式贼简单,大家只要有一台 X86 电脑,装上 Docker 就行,接下来我们演示一下。

简单准备

咱们以本次活动推荐的统一实验环境 Linux Lab Disk 为例(其他环境请自行安装 Docker)。

Linux Lab Disk 已经支持 6 大主流 Linux 发行版,包括 Ubuntu, Kali, Mint (薄荷) , Deepin, Manjaro, Fedora 等,这里任选了一个 Kali 版本来做实验。

首先是打开桌面的 Cloud Lab Manager,并安装 qemu-user-static,以 Ubuntu, Kali, Mint (薄荷) , Deepin 版本为例,除了软件安装命令略有差异,其他都一样。

$ sudo apt install -y qemu-user-static jq
复制代码

接着是直接进入到 Linux Lab 的工作目录:

$ pwd~/Develop/cloud-lab$ cd labs/linux-lab
复制代码

查询支持的 RISC-V Linux 发行版

然后检索 Docker 中已经支持的 riscv64 发行版:

$ docker search riscv64 | grep ^riscv64/riscv64/debian                  Debian is a Linux distribution that's compos… 1riscv64/busybox Busybox base image. 0riscv64/alpine A minimal Docker image based on Alpine Linux… 0riscv64/ubuntu Ubuntu is a Debian-based Linux operating sys… 0
复制代码

可以看到已经有 busybox, debian, alpine (高山) 和 ubuntu,接下来以 ubuntu 为例,先看看支持的 tags:

$ ../../tools/docker/tags riscv64/ubuntu"latest""devel""jammy""jammy-20220315""22.04""rolling""impish""impish-20220316""21.10""focal"
复制代码

可以看到,最新已经支持 Ubuntu 22.04 了。

任选一个下载下来

这里来选 22.04 下载下来:

$ tools/root/docker/extract.sh riscv64/ubuntu:22.04LOG: Pulling riscv64/ubuntu:22.0422.04: Pulling from riscv64/ubuntu779c5da60b92: Pull completeDigest: sha256:4de0b5a51c63b54d27ad151217f6cefaa4114a5db33abce6f47fc6a1f2c3bc2bStatus: Downloaded newer image for riscv64/ubuntu:22.04docker.io/riscv64/ubuntu:22.04LOG: Running riscv64/ubuntu:22.04WARNING: The requested image's platform (linux/riscv64) does not match the detected host platform (linux/amd64) and no specific platform was requestedLOG: Creating temporary rootdir: /home/kali/Develop/cloud-lab/labs/linux-lab/prebuilt/fullroot/tmp/riscv64-ubuntu-22.04LOG: Extract docker image to /home/kali/Develop/cloud-lab/labs/linux-lab/prebuilt/fullroot/tmp/riscv64-ubuntu-22.04[sudo] password for kali:LOG: Removing docker container2b3b9d005682e664f40f4ff80ce483e3673828eaafef51809757e2d91b2ba090LOG: Chroot into new rootfsLinux linux-lab-host 5.10.0-kali9-amd64 #1 SMP Debian 5.10.46-4kali1 (2021-08-09) riscv64 riscv64 riscv64 GNU/LinuxUbuntu Jammy Jellyfish (development branch) \n \l
复制代码

极速体验目标 Linux 系统

然后通过 chroot 运行:

$ tools/root/docker/chroot.sh riscv64/ubuntu:22.04LOG: Chroot into /home/kali/Develop/cloud-lab/labs/linux-lab/prebuilt/fullroot/tmp/riscv64-ubuntu-22.04root@linux-lab-host:/#root@linux-lab-host:/# uname -aLinux linux-lab-host 5.10.0-kali9-amd64 #1 SMP Debian 5.10.46-4kali1 (2021-08-09) riscv64 riscv64 riscv64 GNU/Linuxroot@linux-lab-host:/# uname -mriscv64root@linux-lab-host:/# exit
复制代码

如果不想持久化保存运行的结果,那么可以直接用 tools/root/docker/run.sh,用完即弃!

测试

git clone https://gitee.com/tinylab/riscv-linuxcd riscv-linux/test/microbenchmake logging PRODUCT='D1-H-nezha' O=0make logging PRODUCT='D1-H-nezha' O=1
复制代码

结果

Run on (1 X 1008 MHz CPU )Load Average: 1.43, 1.21, 1.10-------------------------------------------------------------------------Benchmark				Time		 CPU   Iterations-------------------------------------------------------------------------BM_nop				     10.1 ns	     10.0 ns	 69957559BM_ub				     10.2 ns	     10.0 ns	 69873414BM_bnez				     10.1 ns	     10.0 ns	 69937321BM_beqz				     10.1 ns	     10.0 ns	 69938862BM_load_bnez			     12.2 ns	     12.0 ns	 58255983BM_load_beqz			     12.2 ns	     12.0 ns	 58298861BM_cache_miss_load_bnez		     24.3 ns	     12.0 ns	 58107258BM_cache_miss_load_beqz		     24.3 ns	     12.0 ns	 58252024BM_branch_miss_load_bnez	     24.2 ns	     12.0 ns	 58267620BM_branch_miss_load_beqz	     24.3 ns	     12.0 ns	 58236516BM_cache_branch_miss_load_bnez	     24.4 ns	     12.0 ns	 58232276BM_cache_branch_miss_load_beqz	     24.7 ns	     12.0 ns	 58142354
复制代码

参考文档

两分钟内极速体验 RISC-V Linux 系统发行版 - 泰晓科技 (tinylab.org)

用户头像

贾献华

关注

及时当勉励 岁月不待人 2018.06.04 加入

https://2022.iosdevlog.com

评论

发布
暂无评论
哪吒 D1-H 测试 microbench_7月月更‘_贾献华_InfoQ写作社区