对先楫早有耳闻,据说做的挺不错的。这次有机会拿到HPM6750EVKMINI开发板的试用,刚好接机好好了解一下。

这次的开发板是HPM6750EVK MINI,相对于以前看到别人玩的,确实挺Mini的:
image.png
image.png

但Mini不减功能,接口丰富,而且是Type-C,良心企业!

经过一番了解,下载了官方提供的HPM_SDK,其中有关于Linux环境的说明,参考之后,一番尝试,搞定嘞macOS环境下的VSCode开发环境。
参考的文档为: hpm_sdk/README_zh.md at main · hpmicro/hpm_sdk (github.com)

具体的步骤如下:
1. 下载hpm_sdk
  • mkdir -p ~/hpm_work
  • git clone https://github.com/hpmicro/hpm_sdk.git
  • cd hpm_sdk
  • 复制代码

    2、设置GNURISCV_TOOLCHAIN_PATH
    HPM板子的代码,要使用 riscv32-unknown-elf,可以找遍了网上,都没有找到 for macOS的。
    riscv-collab/riscv-gnu-toolchain: GNU toolchain for RISC-V, including GCC (github.com) 下载了 riscv-gnu-toolchain 的源码,编译riscv32的,结果失败了。
    后来,经过一番了解,原来,那要什么专门for riscv32的版本呀,编译riscv64的版本,只要启用了multilibs,就能够支持riscv32,也就是用riscv64-unknown-elf一样可以编译。
    在macOS上,安装了brew的话,使用下面三行代码,轻松搞定
    brew tap riscv-software-src/riscv
  • brew install riscv-tools
  • brew link --overwrite riscv-gnu-toolchain
  • 复制代码

    安装后,还需要修改一下HPM_SDK中的cmake配置文件,具体如下:
    image.png
    可以使用下面的命令,轻松搞定:
  • cd ~/hpm_work/hpm_sdk
  • sed -i "" "s#riscv32-unknown-elf#riscv64-unknown-elf#g" cmake/toolchain.cmake
  • 复制代码

    3. 编译openocd
    先楫使用的openocd是定制的,类似WCH,需要自己编译,步骤如下:
  • cd ~/hpm_work
  • git clone https://github.com/hpmicro/riscv-openocd.git
  • cd riscv-openocd
  • ./bootstrap
  • ./configure --prefix=/usr/local/openocd-hpm --disable-werror --disable-internal-jimtcl --disable-internal-libjaylink --enable-ftdi --enable-cmsis-dap-v2 --enable-cmsis-dap CPPFLAGS=-I/usr/local/Cellar/jimtcl/0.81_1/include LDFLAGS=-L/usr/local/Cellar/jimtcl/0.81_1/lib
  • make -j4
  • sudo make install
  • 复制代码

    编译的过程中,可能会提示./doc/openocd.texi中@raggedright的错误,按照如下连接修改即可:
    https://review.openocd.org/c/openocd/+/2781/2/doc/openocd.texi#b8463
    image.png

    4. 安装依赖,设置环境
  • cd ~/hpm_work/hpm_sdk
  • [color=rgb(36, 41, 47)][backcolor=var(--color-canvas-subtle)][font=ui-monospace, SFMono-Regular, "][size=13.6px]pip3 install --user -r [/size][/font][/backcolor][/color][color=var(--color-prettylights-syntax-string)][backcolor=var(--color-canvas-subtle)][font=ui-monospace, SFMono-Regular, "][size=13.6px]"$HPM_SDK_BASE/scripts/requirements.txt"[/size][/font][/backcolor][/color]
  • [color=var(--color-prettylights-syntax-string)][backcolor=var(--color-canvas-subtle)][font=ui-monospace, SFMono-Regular, "][size=13.6px]brew install ninja[/size][/font][/backcolor][/color]
  • . ./env.sh
  • export GNURISCV_TOOLCHAIN_PATH=/usr/local
  • 复制代码

    5. 编译测试代码:
  • cd ~/hpm_work/hpm_sdk
  • . ./env.sh
  • export GNURISCV_TOOLCHAIN_PATH=/usr/local
  • cd samples/hello_world
  • mkdir build
  • cd build
  • cmake -GNinja -DBOARD=hpm6750evkmini -DCMAKE_BUILD_TYPE=flash_xip ..
  • ninja
  • 复制代码
    成功编译后,结果如下:
    image.png