如何使用ZStudio IDE编译运行调试先楫半导体RISC-V内核MCU

下载terapines工具链参考:https://1nfinite.ai/t/terapines-zcc-risc-v/70
下载带ZCC工具链支持的HPMicro SDK链接:https://github.com/Terapines/hpm_sdk/tree/zcc
注意:git clone 下载的SDK项目需要切换到remotes/origin/zcc分支

SDK导入

HPMicro SDK是一个CMake工程,所以我们需要进行CMake导入

  1. 鼠标点击File 选择Import CMake Project

  1. 如下图所示Project Root Path填入SDK的根目录。CMake Work Directory填入在项目中build文件夹目录,build目录需要自行创建,例如我要导入SDK 中的coremark这个项目,在导入前我需要在SDK目录中的sample/coremark目录下新建一个build文件夹,往CMake Work Directory填入新建的build文件夹的绝对路径。CMake Arguments填入CMake参数“-DBOARD=hpm6750evk …”表示编译hpm6750的目标程序,如果要编译hpm6200的目标程序则填写“-DBOARD=hpm6200evk …”这个参数。Environment Variables填入CMake运行时所需要的环境变量分别是
    GNURISCV_TOOLCHAIN_PATH工具链目录的绝对路径,如:GNURISCV_TOOLCHAIN_PATH=/home/lt/APP/Terapines/zstudio/5.08/zstudio-pro-ubuntu22/resources/app/resources/toolchains/zcc,在ZStudio安装目录resources/app/resources/toolchains/zcc中可以找到工具链。HPM_SDK_TOOLCHAIN_VARIANT=zcc使用ZCC工具链进行编译,HPM_SDK_BASE是SDK根目录的绝对路径,如:HPM_SDK_BASE=/home/lt/work/SDK/hpmicro/5.07/hpm_sdk,以上信息填写完成点击Import即可

  1. 导入成功左侧项目导航栏会出现hpm_sdk_gcc_lib、hpm_sdk_lib、demo这三个工程

配置与编译

  1. 在Active Project中选择hpm_sdk_gcc_lib这个工程随后点击做下方的Configuration for Active Project

  1. 在Language Standard中选择GNU17,随后点击Save

  1. 随后点击 Build编译hpm_sdk_gcc_lib这个工程

  2. 对hpm_sdk_lib、demo这两个工程重复上面1、2、3步骤完成编译完成对hpm_sdk_lib、和demo的编译。注意:一定要对hpm_sdk_lib、demo两个工程执行1、2步骤才能执行第三个编译步骤,否则直接执行步骤三编译会报错

  3. 编译成功在demo工程output/zcc/risc-v/debug/build-output目录下生成demo可执行文件

运行调试

先楫半导体OpenOCD下载,参考连接https://1nfinite.ai/t/terapines-zcc-risc-v-mcu/78/1
目录 “下载启动OpenOCD与开发板建立连接”

在ZStudio中配置OpenOCD

  1. 点击左上方功能框View,选择OpenOCD Explorer

  1. 点击上方“+”号,添加OpenOCD配置

  1. 在Add OpenOCD Configuration中填入 OpenOCD配置,OpenOCD Name和Board Name分别为OpenOCD的名字和目标板卡的名字,这里可以自由定义。OpenOCD Excutable为下载好的先楫半导体OpenOCD的可执行文件路径。

OpenOCD Configuration File 为添加OpenOCD启动配置文件路径,这里我们使用的是hpm6750evk这个开发板,所以会有三个配置文件,分别是hpm6750-single-core.cfg、ft2232.cfg、hpm6750evkmini.cfg,将这个三个文件的绝对路径添加到OpenOCD Configuration File即可。当然如果是其他型号的开发板就要选择其他的配置文件。添加完成点击Save保存。

  1. OpenOCD配置添加完成,鼠标右击自己先前添加的OpenOCD配置点击Start检查OpenOCD是否启动成功

  1. OpenOCD启动成功如下图所示,随后鼠标右击将其关闭(注意:运行了OpenOCD后确认可以正常启动,在程序运行前要将其关闭,因为在点击Run程序和Debug的时候会启动OpenOCD,如何此时OpenOCD被人为先前启动了会出错)

配置串口

  1. 配置ZStudio串口工具,点击View->Serial POrt Monitor

  1. 在Serial Port Monitor控制台中右侧点击“+”号添加监视串口,在Serial Port中选择开发板对应的串口驱动,Baud Rate设置为115200,设置完成点击OK,打开串口驱动

运行

  1. 点击Run右侧设置按钮

  1. 在Run Configuration 的Connect Target中选择Board,在OpenOCD Configuration中选择先前创建的OpenOCD配置,点击Save

  1. 点击Run即可将程序下载到开发板中运行,coremark程序输出结果如下图所示

调试

  1. 和Run一样我们需要设置调试选项,是仿真器调试还是开发板调试,点击Debug右侧的按钮

选择Connect Target中选择Board,在OpenOCD Configuration中选择先前创建的OpenOCD配置,点击Save

  1. 我们在202行处打一个断点,点击Debug

  1. 随后跳转到调试界面,在此你可以执行单步跳过,步入步出,查看寄存器和查看变量值