先楫 HPM6750 环境搭建 跑分

文章目录

    • HPM6750简介
    • 各厂家 MCU 的 CoreMark 对比
    • Embedded Studio 安装
    • FTDI 驱动安装
    • 原厂自带程序的运行
    • start_cmd
    • generate_project
    • program_flash
    • CoreMark 官方程序的运行过程和结果
    • HEX文件的生成

以下操作都是 Win11 21H2 , sdk_env_v0.11.0下进行, 如有不同, 纯属正常.

HPM6750简介

现在出的有 HPM67xx(双核双千兆以太网), 64xx(单核双千兆), 63xx(单核单百兆或无百兆), 做产品另说, 学的话现在挑个最猛的HPM6750就可以, 反正SDK是一样的, 一通百通. 官方现在有3款板子, 注册直接买就可以, 买了最贵的, 顺丰包邮, 无骚扰电话好评

先楫 HPM6750 环境搭建 跑分_第1张图片

下面是HPM6750的资源, 双核双千兆, 4路CANFD, 不论是做电机控制, 双目视觉, OpenMV, 仪器仪表, 还是汽车电子周边等, 都是目前最好的选择.

先楫 HPM6750 环境搭建 跑分_第2张图片

相关资料可参考:

  • 先楫半导体 (hpmicro.com), 官网和论坛
  • hpmicro (github.com), 官方Github仓库
  • Embedded Studio for RISC V (segger.com), 下载IDE
  • SEGGER Embedded Studio License Activation, IDE License申请
  • HPM6750EVK (hpmicro.com), 下载板子的手册

各厂家 MCU 的 CoreMark 对比

B站这个 黑辞旧 的Up主上传的 谁才是最强单片机?_哔哩哔哩_bilibili 中的 CoreMark 跑分, 也可以看到 HPM6750 也是遥遥领先:

先楫 HPM6750 环境搭建 跑分_第3张图片

先楫 HPM6750 环境搭建 跑分_第4张图片

根据 CPU Performance Benchmark – MCU Performance Benchmark – CoreMark – EEMBC Embedded Microprocessor Benchmark Consortium 整理下常见 MCU 的跑分情况(CoreMark/MHz没有除以核数)

MHz Cores CoreMark CoreMark/MHz
HPM6750 816 2 9220 11.299
Infineon AURIX TC397XE 300 6 4047 13.49
STM32H745XI 360 2 3223 8.96
ESP32 160 2 660 4.13
CH32V307 144 1 380 2.64
S32K144 112 1 366 3.27
RH850/F1KM-S1 120 1 343 2.858
RP2040 125 2 246 2.0

参考:

  • Performance-orientiertes Speichermanagement bei Embedded-Multicore-Mikrocontrollern (embedded-software-engineering.de)
  • protik09/CoreMark-RP2040: This is the COREMARK® embedded benchmark ported by me to the RP2040 chip from the folks over at Raspberry Pi. (github.com)
  • nickfox-taterli/pico-coremark: Raspberry Pi Picro Coremark (github.com)
  • Coremark — Wenting’s Web Page (zephray.me)
  • CH32V307 coremark跑分测试 - 知乎 (zhihu.com)
  • 微控制器性能评价,一文搞定CoreMark! - 哔哩哔哩 (bilibili.com)
  • S32K Microcontroller Family Technical Deep Dive - NXP

Embedded Studio 安装

熟悉RT-Thread的可以用RT-Thread Studio, 对于喜欢从头开始撸的可以用 Segger Embedded Studio, 手册中也提到了基于VS Code的环境, 还有图形化配置工具:

先楫半导体也将为开发者提供基于VS Code 的 免费集成开发环境HPM Studio 和 PC 桌面端图形化的 SoC 资源配置工具

下载: Embedded Studio for RISC V (segger.com), 可以选Win或Linux版本, 按部就班安装即可, 先楫半导体向用户提供免费商用的license.

打开 Embedded Studio -> Tools -> License Manager -> Diagnose Problems, 复制下网卡的MAC:

先楫 HPM6750 环境搭建 跑分_第5张图片

到 SEGGER Embedded Studio License Activation 这里填下名字邮箱和上面的MAC地址

先楫 HPM6750 环境搭建 跑分_第6张图片

然后马上就能到邮箱里找到邮件, 复制 SEGGER Embedded Studio License Activation Key for HPMicro DevicesEmbedded Studio -> Tools -> License Manager -> Activate Embedded Studio, 粘贴安装即可

先楫 HPM6750 环境搭建 跑分_第7张图片

FTDI 驱动安装

sdk_env_v0.11.0\tools\FTDI_InstallDriver.exe, 双击装就可以了, 装完后设备管理器里面

先楫 HPM6750 环境搭建 跑分_第8张图片

原厂自带程序的运行

先楫 HPM6750 环境搭建 跑分_第9张图片

start_cmd

start_cmd.cmd 作用是把工具链和脚本等加入环境变量, 仅对当前窗口生效

这个运行到最后打开的是cmd, 没有powershellls之类的命令, 不好用, 所以这里手动把 cmd 注释掉, 改成 powershell, 不知道会不会有影响.

先楫 HPM6750 环境搭建 跑分_第10张图片

参考:

  • Path to Powershell.exe (v 2.0) - Stack Overflow

generate_project

tools\scripts\generate_project.cmd 先来查看帮助

>generate_project -h
generate_project [-f] [-b board] [-a] [-list] [-h]
  -f: force clean already existed build directory # 比如之前生成的是ram工程, 想改成flash工程可以加-f
  -b board: specify board for project generation  # 指定3种板子中的一个
  -a: generate projects for all supported boards
  -list: list all supported boards				 # 列出支持的板子
  -t type: specify build type		       # 定义构建类型, 默认debug(RAM), 片外Flash要用flash_xip 
  -h: show this text
ECHO 处于关闭状态。
 Here're supported build types:
   -  release
   -  debug
   -  flash_xip
   -  flash_xip_release
   -  flash_sdram_xip
   -  flash_sdram_xip_release
   -  flash_uf2
   -  flash_uf2_release
   -  flash_sdram_uf2
   -  flash_sdram_uf2_release
   -  sec_core_img
   -  sec_core_img_release
   
# 目前支持的3块板子
>generate_project -list 
hpm6360evk
hpm6750evk
hpm6750evkmini

# 切换到示例工程文件夹
# 生成hpm6750evk板子的hello_work示例, 默认RAM跑跑就行(速度快, 但断电程序消失)
> cd .\hpm_sdk\samples\hello_world\
> generate_project -b hpm6750evk -f

# 生成hpm6750evk板子的coremark示例, 下载到外部的Flash里面(下载速度慢, 但断电后程序还在)
# 双击 hpm_sdk\samples\coremark\hpm6750evk_build\segger_embedded_studio\coremark.emProject 打开
> cd .\hpm_sdk\samples\coremark\
> generate_project -b hpm6750evk -t flash_xip -f

左边Flash工程, 右边RAM工程, link脚本文件是不一样的

先楫 HPM6750 环境搭建 跑分_第11张图片

看一下这两个icf文件的区别

先楫 HPM6750 环境搭建 跑分_第12张图片

先楫 HPM6750 环境搭建 跑分_第13张图片

这个地址当然不是瞎写的, 参考手册可以查到,

先楫 HPM6750 环境搭建 跑分_第14张图片

如果使用了link文件中没有定义的地址, 一定要手动添加 section, 不然生成的HEX会七零八落, 或者bin文件巨大, 不利于boot升级.

link 文件中也指明了 app_load_addr 等, 对于做 boot + app 的可能要好好修改link文件

先楫 HPM6750 环境搭建 跑分_第15张图片

program_flash

tools\scripts\program_flash.cmd 刷写脚本

> program_flash.cmd -h
program_flash [-b board] [-elf elf_file] [-bin bin_file address] [-h] [-f]
  -b board: specify board for project generation
  -elf elf_file: program elf file to flash
  -bin bin_file address: program bin file to flash at given flash address
  -f: force to run even if elf or bin file does not exist, instead it will start openocd
  -h: show this text
  Note: -elf and -bin can't be specified at the same time

还有一个刷写软件 HPMProgrammmer_v0.1.0, 当没有Jlink时, 可以用串口或USB来刷写程序

先楫 HPM6750 环境搭建 跑分_第16张图片

对于EVK就是

先楫 HPM6750 环境搭建 跑分_第17张图片

CoreMark 官方程序的运行过程和结果

# 生成hpm6750evk板子的coremark示例, 下载到外部的Flash里面(下载速度慢, 但断电后程序还在)
> cd .\hpm_sdk\samples\coremark\
> generate_project -b hpm6750evk -t flash_xip -f

双击 hpm_sdk\samples\coremark\hpm6750evk_build\segger_embedded_studio\coremark.emProject 打开工程

编译工程

先楫 HPM6750 环境搭建 跑分_第18张图片

确定FTDI驱动装好且连接正常

先楫 HPM6750 环境搭建 跑分_第19张图片

连接GDB

先楫 HPM6750 环境搭建 跑分_第20张图片

可以直接下ELF文件

先楫 HPM6750 环境搭建 跑分_第21张图片

先楫 HPM6750 环境搭建 跑分_第22张图片

先楫 HPM6750 环境搭建 跑分_第23张图片

下完后可以 Disconnect 掉

先楫 HPM6750 环境搭建 跑分_第24张图片

板子的拨码开关 BOOT1, BOOT0拨到 OFF OFF

先楫 HPM6750 环境搭建 跑分_第25张图片

打开串口助手, 按下复位按键, 等十几秒就可以看到跑分结果

先楫 HPM6750 环境搭建 跑分_第26张图片

这个是下载到XPI0的单核跑分, 双核比double略少一点, 接近官方宣称的 9200 分

==============================
 hpm6750evk clock summary
==============================
cpu0:		 816000000Hz
cpu1:		 816000000Hz
axi0:		 200000000Hz
axi1:		 200000000Hz
axi2:		 200000000Hz
ahb:		 200000000Hz
mchtmr0:	 24000000Hz
mchtmr1:	 1000000Hz
xpi0:		 133333333Hz
xpi1:		 400000000Hz
dram:		 166666666Hz
display:	 74250000Hz
cam0:		 59400000Hz
cam1:		 59400000Hz
jpeg:		 200000000Hz
pdma:		 200000000Hz
==============================

----------------------------------------------------------------------
$$\   $$\ $$$$$$$\  $$\      $$\ $$\
$$ |  $$ |$$  __$$\ $$$\    $$$ |\__|
$$ |  $$ |$$ |  $$ |$$$$\  $$$$ |$$\  $$$$$$$\  $$$$$$\   $$$$$$\
$$$$$$$$ |$$$$$$$  |$$\$$\$$ $$ |$$ |$$  _____|$$  __$$\ $$  __$$\
$$  __$$ |$$  ____/ $$ \$$$  $$ |$$ |$$ /      $$ |  \__|$$ /  $$ |
$$ |  $$ |$$ |      $$ |\$  /$$ |$$ |$$ |      $$ |      $$ |  $$ |
$$ |  $$ |$$ |      $$ | \_/ $$ |$$ |\$$$$$$$\ $$ |      \$$$$$$  |
\__|  \__|\__|      \__|     \__|\__| \_______|\__|       \______/
----------------------------------------------------------------------
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 316281778
Total time (secs): 13.178408
Iterations/Sec   : 4552.902343
Iterations       : 60000
Compiler version : GCC10.3.0
Compiler flags   : -Wall -Wno-format -fomit-frame-pointer -fno-builtin -ffunction-sections -fdata-sections -mabi=ilp32 -march=rv32imac -g -O3 -funroll-all-loops -finline-limit=600 -ftree-dominator-opts -fno-if-conversion2 -fselective-scheduling -fno-code-hoisting -mstrict-align
Memory location  : STACK
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0xbd59
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 4552.902343 / GCC10.3.0 -Wall -Wno-format -fomit-frame-pointer -fno-builtin -ffunction-sections -fdata-sections -mabi=ilp32 -march=rv32imac -g -O3 -funroll-all-loops -finline-limit=600 -ftree-dominator-opts -fno-if-conversion2 -fselective-scheduling -fno-code-hoisting -mstrict-align / STACK

HEX文件的生成

工程右键 -> Options

先楫 HPM6750 环境搭建 跑分_第27张图片
欢迎扫描二维码关注微信公众号, 及时获取最新文章:
在这里插入图片描述

你可能感兴趣的:(先楫HPM6xxx,先楫半导体,HPM6750,HPM6750EVK,RISCV,CoreMark)