如何使用Terapines ZCC工具链编译运行调试先楫半导体RISC-V内核MCU

源码获取

  1. 使用命令 git clone https://github.com/Terapines/hpm_sdk.git 拉取HPmicro官方添加zcc 支持的SDK

  2. cd hpm_sdk/进入sdk目录,使用git branch -a命令查看SDK分支

lt@carina:~/work/SDK/hpmicro/4.29/hpm_sdk$ git branch -a
* main
  remotes/origin/HEAD -> origin/main
  remotes/origin/main
  remotes/origin/zcc
  1. git checkout 切换tag,这里我们切换到remotes/origin/zcc,如下:
lt@carina:~/work/SDK/hpmicro/4.29/hpm_sdk$ git checkout remotes/origin/zcc
Note: switching to 'remotes/origin/zcc'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at d48ec80e support Terapines zcc toolchain

编译

  1. 在sdk目录执行export GNURISCV_TOOLCHAIN_PATH=TOOLCHAIN_PATH命令,

TOOLCHAIN_PATH为zcc工具链的路径,确保在TOOLCHAIN_PATH路径下存在bin目录,
例如:

export GNURISCV_TOOLCHAIN_PATH=/home/lt/APP/Terapines/zstudio/4-24/zstudio-linux/resources/app/resources/toolchains/zcc

  1. 执行export HPM_SDK_TOOLCHAIN_VARIANT=zcc

  2. 在hpm_sdk/目录命令行下执行source envzcc.sh脚本文件

  3. 手工设置环境变量"HPM_SDK_BASE"指向SDK根目录, export HPM_SDK_BASE=/path/hpm_sdk

  4. cd hpm_sdk/samples/coremark 进入编译目标目录,mkdir build ,cd build,创建构建目录并进入构建目录

  5. 执行此命令构建 cmake -GNinja -DBOARD=hpm6750evk … && ninja,编译成功会在output目录下生成demo.elf目标文件

下载启动openocd与开发板建立连接

  1. 先楫半导体资料百度云下载地址: https://pan.baidu.com/s/1RaYHOD7xk7fnotmgLpoAlA?pwd=xk2n#list/path=%2F&parentPath=%2Fsharelink2045992595-771695919049358
    提取码:xk2n,进入百度云网盘在 先楫系列资料->SDK->linux_toolchain目录下存在openocd_linux_x86-64.tar.gz压缩文件,我们需要将其下载下来进行解压。

  2. 在SDK根目录中使用find -name *.cfg命令找到,hpm6750-single-core.cfg、ft2232.cfg、hpm6750evkmini.cfg这三个配置文件,由于本次使用的是hpm6750evkmini开发板所以笔者选择这三个openocd启动配置文件,用户需要根据自己使用的开发板选择对应的openocd启动配置文件

  3. 使用命令 /home/lt/APP/hpmicro_openocd_linux_x86-64/bin/openocd -f ./boards/openocd/probes/ft2232.cfg -f ./boards/openocd/soc/hpm6750-single-core.cfg -f ./boards/openocd/boards/hpm6750evkmini.cfg 启动openocd,启动成功如下图所示:

运行调试

  1. 如果在当前命令行已经存在了zdb调试器的环境变量并且已经启动openocd建立与开发板的连接那么在build目录下可以使用命令zdb -o "gdb-remote localhost:3333" -o "load" -o "b main" -o "c" output/demo.elf将程序下载到开发板,随后我们在键盘输入“c”表示继续运行,这样就可以运行程序,你可以使用串口工具查看程序输出。

  2. 有关使用zdb进行程序的运行调试查看断点操作您可以参考链接https://1nfinite.ai/t/terapines-zcc-risc-v/70