以下操作都是 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没有除以核数)
| 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 |
参考:
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 Devices 到 Embedded Studio -> Tools -> License Manager -> Activate Embedded Studio , 粘贴安装即可
FTDI 驱动安装
sdk_env_v0.11.0\tools\FTDI_InstallDriver.exe , 双击装就可以了, 装完后设备管理器里面
原厂自带程序的运行
start_cmd
start_cmd.cmd 作用是把工具链和脚本等加入环境变量, 仅对当前窗口生效
这个运行到最后打开的是cmd , 没有powershell 中ls 之类的命令, 不好用, 所以这里手动把 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
-b board: specify board for project generation
-a: generate projects for all supported boards
-list: list all supported boards
-t type: specify build type
-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
>generate_project -list
hpm6360evk
hpm6750evk
hpm6750evkmini
> cd .\hpm_sdk\samples\hello_world\
> generate_project -b hpm6750evk -f
> 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 官方程序的运行过程和结果
> 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
欢迎扫描二维码关注微信公众号, 及时获取最新文章:
|