先楫 HPM6750 环境搭建 跑分

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

HPM6750简介

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

在这里插入图片描述

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

在这里插入图片描述

相关资料可参考:

各厂家 MCU 的 CoreMark 对比

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

在这里插入图片描述

在这里插入图片描述

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

MHzCoresCoreMarkCoreMark/MHz
HPM67508162922011.299
Infineon AURIX TC397XE3006404713.49
STM32H745XI360232238.96
ESP3216026604.13
CH32V30714413802.64
S32K14411213663.27
RH850/F1KM-S112013432.858
RP204012522462.0

参考:

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:

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

FTDI 驱动安装

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

在这里插入图片描述

原厂自带程序的运行

在这里插入图片描述

start_cmd

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

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

在这里插入图片描述

参考:

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脚本文件是不一样的

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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来刷写程序

在这里插入图片描述

对于EVK就是

在这里插入图片描述

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 打开工程

编译工程

在这里插入图片描述

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

在这里插入图片描述

连接GDB

在这里插入图片描述

可以直接下ELF文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

下完后可以 Disconnect 掉

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

这个是下载到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

在这里插入图片描述
欢迎扫描二维码关注微信公众号, 及时获取最新文章:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值