[EVK_UserGuide]HPM EVK 软件开发套件

文中以板载 FT2232 的 HPM6E00EVK 开发板、在 Windows 操作系统上为例进行说明,其他 HPM 系列开发板的使用方法与之类似。

1 简介

本文介绍 HPM SDK 软件开发套件的功能特性与使用方法,包括开发环境搭建、工程创建与编译、调试器配置及常见问题处理等内容,帮助用户快速掌握软件开发流程。

HPM SDK(HPM 软件开发套件,以下简称 SDK )是基于 BSD 3-Clause 许可证发布的 HPM 系列 SoC 底层驱动软件包,提供了 SoC 上各 IP 模块的底层驱动代码,并集成了多种中间件与 RTOS 。

2 开发环境搭建

SDK 开发环境支持以下两种搭建方式,用户可根据自身需求选择:

  • 使用 sdk_env 工具:sdk_env 集成了 SDK 及所需工具链,开箱即用,适合快速上手。
  • 手工搭建 SDK 开发环境:用户可自行下载 SDK 及工具链并配置环境变量,灵活性更高,具体步骤请参考 SDK 目录下 README.md 文件。

3 开发工具

HPM_SDK 支持第三方 IDE 开发,如 Segger Embedded Studio for RISC-V。

Segger Embedded Studio 提供了基于 C/C++ 的专业嵌入式开发所需的各种工具和特性,包括工程管理器与构建系统、含代码补全和折叠功能的源代码编辑器,以及用于下载和安装板卡及器件支持包的分包管理系统。

先楫半导体向用户提供免费商用的 license,用户可在以下网址申请:https://license.segger.com/hpmicro.cgi

4 快速使用指南

  1. 下载安装 Segger Embedded Studio,本文档使用版本号为 8.10

    软件相关版本号需要适配 sdk,具体支持版本号参见 sdk 中 CHANGELOG.md

  2. 下载最新版本 sdk_env_vx.x.x.zip 压缩包后解压(本文以 sdk_env_v1.6.0 为例)
    > 解压目标路径中只可包含英文字母以及下划线,不可包含空格、中文等字符。

  3. 安装调试器驱动

    • 对于板载基于 HPM5301 的 HSLink 调试器的开发板,不需要另外安装驱动程序
    • 对于板载 FT2232 的开发板,运行 sdk_env_v1.6.0\tools\FTDI_InstallDriver.exe 以安装可用于调试的 FT2232 驱动。

图 1 安装 FTDI 驱动

正确安装驱动后,使用 USB Type-C 线缆将 HPM6E00EVK 上的 J16 连接到 PC,在 Windows 设备管理器中可看到一个 USB Serial Port 以及一个 Dual RS232-HS (Interface 0)。


图 2 查看 Windows 设备管理器
  1. sdk_env 目录下有两种创建工程的方式,即命令行工具和 GUI Project Generator 工具,用户可根据喜好自行选择。

图 3 sdk_env 创建工程方式

以命令行工具为例,双击打开 sdk_env_v1.6.0start_cmd.cmd ,该脚本将打开一个 Windows command prompt (以下简称为 sdk prompt ),如果之前步骤配置正确,将会看到


图 4 打开 sdk prompt
  1. 在 sdk_prompt 中将路径切换到 SDK 中的一个示例例程,以 hello_world 为例
cd hpm_sdk\samples\hello_world
  1. 运行以下命令查询支持的目标板
generate_project -list
  1. 确认目标板名称后(以 HPM6E00EVK 为例),可通过以下命令构建工程。若构建成功,将看到如下提示:
generate_project -b hpm6e00evk -f

图 5 构建目标板工程

generate_project 可以生成多种工程类型,例如 flash_xip (链接完成后,应用程序将在 flash 地址空间原地执行)和 debug (链接完成后,应用程序将在片上 sram 中执行,掉电后程序不能保存)等。

generate_project -b hpm6e00evk -f -t flash_xip

图 6 构建目标板 flash_xip 工程

更多 generate_project 的使用方法可通过以下命令查看。

generate_project -h

图 7 generate_project 帮助
  1. 当前目录下将生成名为 hpm6e00evk _build 的文件夹,该目录下 segger_embedded_studio 的目录中可找到 Segger Embedded Studio 的工程文件 hello_world.emProject ,双击可打开该工程。

图 8 Segger Embedded Studio 打开 hello_world 工程
  1. 使用 Segger Embedded Studio 打开 hello_world 工程即可进行编译。

图 9 Segger Embedded Studio 编译 hello_world 工程
  1. 使用 Segger Embedded Studio 进行 hello_world 调试。

图 10 Segger Embedded Studio 调试 hello_world 工程
  1. 在 Segger Embedded Studio 中配置串口

图 11 Segger Embedded Studio 中配置串口
  1. 在 Segger Embedded Studio 中连接串口

图 12 Segger Embedded Studio 中连接串口
  1. 在 Segger Embedded Studio 中打开串口

图 13 Segger Embedded Studio 打开串口
  1. 运行 hello_world

图 14 Segger Embedded Studio 运行 hello_world
  1. sdk_env 提供了 GUI project generator 工具,用户亦可使用该工具生成工程。

图 15 start_gui 工具
  1. 双击打开 start_gui.exe

图 16 GUI project generator 工具操作界面
  1. 在 GUI project generator 界面中的SAMPLES下拉列表中选择hello_world,在BOARDS下拉列表中选择hpm6e00evk,在TYPE下拉列表中选择flash_xip。点击Generate Project按钮,即可生成 flash_xip 类型的 hello_world 工程。

图 17 GUI project generator 生成 hello world 工程
  1. 点击Open with IDE(SES)即可打开 hello_world 工程

5 调试出错常见原因

FT2232 驱动没有正确安装

HPM6E00EVK 板载了 FT2232 调试器,方便用户直接调试程序。当使用 FT2232 调试器遇到 GDB Server 连接失败时(如图 19 所示),首先确认 FT2232 驱动是否正确安装。可在设备管理器中检查总线和串口驱动是否已正确安装:应能看到一个 USB Serial Port 和一个 Dual RS232-HS 。


图 19 GDB Server 连接失败

BOOT Pin 配置异常

HPM6E00EVK 的 BOOT Pin 配置也可能影响芯片调试。如果调试失败,可尝试按如下配置调整 BOOT Pin 后复位: BOOT0 = 0 , BOOT1=1 。

原因在于,Flash 内部执行的代码,特别是中断较为频繁时,可能影响芯片进入 debug 模式。通过 BOOT Pin 配置将微控制器置于 bootloader 模式下,可避免未知的中断状态干扰。

如果是生成的 Flash 调试工程,为避免 Flash 内已有代码执行而影响调试连接,可先将 BOOT Pin 调整为 BOOT0 = 0 、 BOOT1=1 ,将芯片复位或重新上电,之后再将 BOOT Pin 调整为 BOOT0 = 0 、 BOOT1=0 ,即从 NOR Flash 启动。最后点击 Debug 按钮开始调试。

调试没有正常退出

如果调试环境依赖 openocd ,有时调试未正常退出,可能导致 openocd 进程驻留,影响下一次调试。在调试出错时,可进入 Windows 任务管理器,查找 openocd.exe 进程并关闭。同样,打开多个 Segger Embedded Studio 窗口时,若其中一个未退出调试状态,再开始另一个环境的调试,也可能导致类似问题。

Debug 跳线帽没有正确配置

为了方便用户调试, HPM EVK 提供了两种调试接口( on board debug-to-JTAG 和 JTAG 直连),两种调试模式不能同时进行。若使用 FT2232-to-JTAG 模式,需将 TRST、 TDI、 TMS、 TDO、 TCK 跳线帽安装;若使用 JTAG 直连方式,则需将这五个跳线帽拔掉。

openocd 没有正确配置

右键点击工程,选择Options,在弹出的对话框中查看 GDB Server ,如图所示,可在 GDB Server Command Line 中查看 openocd 配置文件。


图 20 查看 openocd 配置

SDK 默认配置如图,使用 FT2232 进行调试


图 21 GDB Server 默认配置

若是板载 HSLink 调试器的 EVK 此处默认为 cmsis_dap。
如果用户使用其他调试器,则需要更改此配置文件。以 cmsis_dap 调试器为例,更改后的配置如图所示。


图 22 使用 cmsis_dap 调试器 GDB Server 配置

J-Link 调试器没有正确配置

如果用户使用 Segger 授权的 J-Link 调试器,则需要安装 J-Link 驱动。用户可在以下网站下载 J-Link 驱动程序:

https://www.segger.com/downloads/jlink


图 23 J-Link 驱动下载

安装 J-Link 驱动程序


图 24 J-Link 驱动安装

安装驱动完成后,将 J-Link JTAG 接口连接到 HPM6E00EVK 的 J2 20pin 牛角插座,同时拔掉 TRST 、 TDI 、 TMS 、 TDO 、 TCK 跳线帽。通过 Project -> Options 打开工程配置界面,点击 Debugger 配置项,确保Target Connection配置值为 J-Link ,选中 J-Link 配置项并将 Target Interface Type 选择为 JTAG 。


图 25 Target Connection 设置为 J-Link

图 26 Target Interface Type 设置为 JTAG

6 更新 sdk_env 中的 SDK/toolchain

本节说明如何更新 sdk_env 中的 SDK 及 toolchain ,用户可根据需求按以下步骤操作。

6.1 更新 sdk_env 中的 SDK

  • 下载 hpm_sdk 并解压缩
  • 将解压后的 hpm_sdk 放至 sdk_env 目录下,确保 sdk_env\hpm_sdk\ 目录中存在 env.cmd

图 27 更新 SDK

6.2 更新 sdk_env 中的 toolchain

  • 下载 toolchain (以 rv32imac_zicsr_zifencei_multilib_b_ext-win.zip 为例)
  • 将解压后的 toolchain 放至 sdk_env\toolchains 目录下,确保 sdk_env\toolchains\rv32imafdc-ilp32d-x86_64-w64-mingw32 目录中存在 bin 文件夹。

图 28 覆盖 toolchain
  • 编辑 start_cmd.cmd ,更新环境变量 TOOLCHAIN_NAME

图 29 更新 start cmd.cmd 中的 TOOLCHAIN_NAME
  • 双击打开 start_gui.exe ,在界面中点击右上角Advanced`按钮,在设置列表中找到 GNURISCV_TOOLCHAIN_PATH 行,点击右侧浏览按钮,选择`C:/HPMICRO/SDK/V160/sdk_env_v1.6.0/toolchains/rv32imac_zicsr_zifencei_multilib_b_ext-win 目录,点击”SAVE”。即可在 LOG WINDOW 中看到更新完成的提示。

图 30 更新 start_gui.exe 中的 TOOLCHAIN_NAME

图 31 start_gui.exe 更新 TOOLCHAIN 完成

免责声明

上海先楫半导体科技有限公司(以下简称:“先楫”)保留随时更改、更正、增强、修改先楫半导体产品和/或本文档的权利,恕不另行通知。用户可在先楫官方网站 https://www.hpmicro.com 获取最新相关信息。

本声明中的信息取代并替换先前版本中声明的信息。

0
0

订阅

发表回复 0

Your email address will not be published. Required fields are marked *

captcha
Enter the characters shown in the image:
Reload

This CAPTCHA helps ensure that you are human. Please enter the requested characters.