Skip to content

Latest commit

 

History

History
64 lines (49 loc) · 8.72 KB

README_zh.md

File metadata and controls

64 lines (49 loc) · 8.72 KB

HPM SDK Windows 开发环境配置工具

快速开始指南

  1. 安装FT2232驱动。 驱动安装
  2. 双击start_cmd.cmd,该脚本将开启一个Windows命令行窗口,之后文中将以sdk prompt指代该命令行窗口。(sdk prompt中将把所有HPM SDK开发依赖的环境变量以及对应工具的路径设置正确,作用范围仅在sdk prompt内,不影响当前系统中的变量。)
  3. 双击generate_all_ses_projects.cmd,该脚本会在同级目录下生成文件夹samples_ses_project,该文件夹包含各种类型板子所有用例的segger工程

start_gui 快速上手

start_gui.exe 是一款适配 hpm_sdk 的项目构建可视化工具。通过该工具,您可以方便地对 hpm_sdk 中的 samples 进行构建,也可以自定义 BOARD 和 APP 目录来构建自己的应用程序。软件整体界面如下图所示:

start_gui

上方菜单栏支持设置中英双语以及打开当前使用指南。同时为方便用户查看使用 hpm_sdk,工具内置了三个快速打开 hpm_sdk 文档入口,即上图中三个浅紫色圆形按钮。 SDK ENV 右侧的帮助按钮会打开当前 hpm_sdk 的帮助文档首页。SDK Boards 下拉框右侧的帮助按钮会直接打开当前选择的开发板文档。SDK Samples 下拉框右侧的帮助按钮会直接打开当前选择的 sample 文档。您可以根据需要选择打开对应的文档。

  • 工具通过不同的背景色分为了以下几个功能区:
  1. SDK ENV 设置:此处可手动配置 SDK ENV 路径,点击 Advanced 按钮后,可以对 hpm_sdk 以及 CMake、Ninja 等工具路径进行更详细的配置;

  2. Board 设置:默认情况下,工具会列出 hpm_sdk/boards 文件夹下所有的开发板,您可以点击下拉框右侧的帮助按钮打开当前选择开发板的本地文档。同时,工具也支持加载用户自定义的开发板配置。用户需要首先勾选 Enable User Board Path 复选框启用 User Board 搜索功能,然后选择想要搜索的开发板文件夹,软件会搜索当前文件夹以及第一级子文件夹,当查找到文件夹下存在CMakeLists.txt 以及 与文件夹同名的 yaml 配置文件时,会识别当前文件夹为开发板配置,加入到列表项中。当当前文件夹被识别为开发板配置时,不会再搜索子文件夹;

    注意:如果使用自定义 board,CMake 构建过程会尝试在自定义目录下搜索与 board 目录同名的 .cfg 文件作为板级 openocd 的配置文件,若无此文件,openocd 将不会添加任何板级配置文件

  3. Sample 设置:选择了开发板后,工具会根据开发板的yaml配置文件自动筛选符合条件的 sample。默认情况下,会展示hpm_sdk/samples 文件夹下经过筛选的 sample,您可以点击下拉框右侧的帮助按钮打开当前选择 sample 的本地文档。对于双核程序,该 sample 列表默认隐藏 core1 项目,用户如果想要展示 core1 项目,只需要点击右侧复选按钮进行设置即可。同时,工具也支持加载用户自定义的 sample 文件夹。用户需要首先勾选 Enable User Application Path 复选框启用 User Applications 搜索功能,然后选择想要搜索的 sample 文件夹,软件会搜索当前文件夹以及所有子文件夹,当查找到文件夹下存在 CMakeLists.txt时,会查找当前CMakeLists.txt是否调用了 hpm-sdk,符合条件的会识别为 sample 文件夹并加入到列表项中。当选择了 sample 之后,会自动识别当前 sample 支持的 hpm build type 以及 cmake build type 并加入到列表项中;当 Enable User GCC Linker File 未勾选时,hpm build type 切换时会自动将当前 hpm build type 使用的链接脚本加入到对应的输入框中,当勾选了该选项后,用户需要手动添加需要的链接脚本;

  4. Output 设置:用户可以在 Output 区域定义工程的构建生成路径。默认情况下,项目会生成在 ${sample}/${board}_${build_type} 文件夹。同时,工具支持选择一个父文件夹,将多个项目生成在当前父文件夹下。该功能需要用户勾选 Use Same Parent Directory 复选框,然后选择一个父文件夹,即 Parent Directory,之后构建生成的项目均会保存在当前文件夹下,Build Folder 为项目文件夹名称,工具会采用${sample}_${board}_${build_type}规则自动生成文件夹名称,用户也可以手动修改文件夹名称。在 Build Path 输入框右侧提供了打开 Build Path 控制台按钮以及打开 Build Path 资源管理器按钮。打开的控制台默认加载了 SDK_ENV 的环境变量,可以直接编译 Build Path 目录下程序以及运行命令;

  5. 构建选项: 当配置完毕后,用户可点击 Generate 按钮构建项目,当项目正确构建后,Open with IDE按钮会高亮,点击后会用默认选择的 IDE 拉起当前项目,用户可以通过右侧箭头选择想要使用的 IDE。工具也提供了 GCC Compile 按钮直接编译正确构建的程序。考虑到用户对于 hpm_sdk 的各种使用需求,工具也支持将当前构建项目使用的 hpm_sdk 文件提取到单独目录,即Localize SDK for App 按钮提供的功能。hpm_sdk 会被本地化到当前应用的 CMakeLists.txt 同级目录,以 hpm_sdk_localized_sdk_for_${BOARDNAME}命名。区域3中的SDK Samples 下拉框会对已本地化项目进行提示,同时已本地化的项目支持 UnLocalize SDK for App 操作转换回之前未本地化的工程。在区域5的最左侧,工具提供了启动 GDB Server 的快捷入口,当前支持的 GDB Server 为 OpenOCD,点击后用户可以进行简单配置并快速启动 GDB Server。GDB Server 默认会记录用户的配置,配置完成下次可直接启动,但当用户切换 board 后,再次启动 OpenOCD 需要重新配置。同时,工具也提供了FLASH镜像烧写快速烧写功能(不支持RAM镜像直接烧写),该功能通过调用 OpenOCD 来执行烧写操作,且与 GDB Server 启动共用一套 OpenOCD 启动配置来简化操作。

  6. 日志窗口:日志窗口会显示当前的日志信息,日志信息支持清空和导出。

  • 自定义 Borad 和 APP 的操作说明,请参考user_template目录下的 README.md.

目录结构:

  • hpm_sdk: hpm_sdk存放目录,当更新SDK时,需要将SDK解压至该文件夹,并确保可以存在hpm_sdk\cmake路径
  • toolchains: 工具链存放目录。当更新工具链时,将对应工具链解压至该文件夹(以TOOLCHAIN_NAME为例),并确保可以在toolchains\TOOLCHAIN_NAME\bin路径下可以找到riscv32-elf-unknown-gcc.exe可执行文件
    • 注意:
      • 使用不同toolchain的时候,对应TOOLCHAIN_NAME需要在start_cmd.cmd中进行正确配置
  • tools:
    • ninja
    • cmake
    • python3
    • openocd
    • scripts
    • project_generator
    • FTDI_InstallDriver.exe: FT2232 windows 驱动
  • doc: 文档目录

常见问题:

无法找到ftdi调试器

  • 确保正确安装FTDI_InstallDriver.exe驱动。注意:如果更换了PC USB端口, 有可能需要重新安装驱动

Segger Embedded Studio无法进行调试

可以做下尝试

  • 重新打开Segger Embedded Studio
  • 在Windows任务管理器中将残留的openocd进程终止
  • 将开发板上启动模式拨成“在系统编程“或者“串行启动”,再按RESET按钮,再尝试调试

Windows 10路径长度限制

若要解除路径长度限制可以通过导入tools/scripts/win10_enable_long_path.reg。有关该限制的详细信息, 请参考https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd

Windows 7 Python 3.9版本无法使用问题

使用 CMAKE 构建项目时提示 “The object file directory xxx has xxx characters. The maximum full path to an object file is 250 characters..The build may not work correctly.” 警告

该警告是由于当前构建项目的生成目录路径过长,有可能会使编译时生成的某些 obj 文件路径超过编译器支持的最大长度导致编译失败,可以做如下调整:

  • 将 SDK_ENV 放置到尽量靠近驱动器根目录位置如 “D:\sdk_env” ,缩短绝对路径下 sdk_env 的目录层级,这样可以缩短整个 hpm_sdk 的绝对路径长度;
  • 或者缩短最终生成目录路径长度,如 start_gui 中缩短 “Build Path” 路径,尽量减少该路径层级(绝对路径长度)可确保项目正常生成;