Awesome
HPM SDK Development Environment for Windows
Quick Start Guide
- Install FT2232 driver.
- Open
start_cmd.cmd
to start a windows command prompt for HPM SDK development, it will configure all needed environment variables (only effective in this windows command prompt, not changing any in current system globally). So all the following operations need to be executed in this window command prompt opened bystart_cmd.cmd
. This windows command prompt will be refered as sdk prompt - The script will generate all examples' segger project of all vailable boards under folder samples_ses_project by clicking
generate_all_ses_projects.cmd
.
start_gui quick start
start_gui.exe
is a visual tool which is used to generate project by hpm_sdk
. User can not only generate sample in hpm_sdk
, but also generate private application by custom board and app directory. The whole GUI of start_gui.exe
is shown as below:
The menu bar supports setting both English and Chinese languages and provides access to the current user guide. For the convenience of users to view and use hpm_sdk
, the tool is equipped with three built-in quick access points to the hpm_sdk
documentation, represented by three light purple circular buttons as shown in the above image. The help button next to SDK ENV
opens the homepage of the current hpm_sdk
help documentation. The help button to the right of the SDK Boards
dropdown directly opens the documentation for the development board that is currently selected. Similarly, the help button beside the SDK Samples
dropdown instantly opens the documentation for the chosen sample. You may select and open the corresponding document as per your needs.
- The tool is split to different sections according by different background color:
-
SDK ENV configuration: You can set SDK ENV path manually. After clicking
Advanced
button, you can set the details ofhpm_sdk
path andCMake、Ninja
path and so on. -
Board configuration: the tool will list all the boards in
hpm_sdk/boards
by default. You can click the help button located on the right side of the dropdown box to open the local documentation for the currently selected board. And it also supports loading custom board configuration. You need to selectEnable User Board Path
at first and thenUser Board
search fuction will be enabled. Then, you need to select a board folder which is used to be searched. And the tool will searchcurrent folder
andthe first level subfolders
. WhenCMakeLists.txt and the yaml file whose name is the folders'
are found in the folder, the folder will be recongized as the board configuration and added to list. What's more, if the current folder is recongnized as the board configuration, the tool will not search its subfolders.Note: If custom board is used, the cfg file whose name is as same as the board will be searched as openocd board config file automatically in CMake generating process. If the file is not found, openocd will not add any board config file.
-
Sample configuration: After selecting a board, the tool will filter samples by the yaml configuration and display the sample list by default. You can click the help button located on the right side of the dropdown box to open the local documentation for the current sample. For dual-core programs, the sample list hides the core1 project by default. If users want to display the core1 project, they only need to click the checkbox on the right to configure it. The tool also supports loading custom sample configuration. You need to select
Enable User Application Path
at first and thenUser Applications
will be enabled. Then you need to select a sample which you want to search. The tool wiil searchcurrent folder and all of the subfolders
. WhenCMakeLists.txt
is found, the tool will search whetherhpm-sdk
is invoked and add the sample to the list. After selecting a sample, the tool will find all the hpm build types and cmake build types supported by the sample and add them to the list. WhenEnable User GCC Linker File
is not selected and switching the hpm build type, the linker script for the hpm build type will be added to the input box automatically. If the option is selected, you need to add the required linker script manually. -
Output configuration: You can custom the generation path in output section. The tool will use
${sample}/${board}_${build_type}
as the generation path by default. What's more, the tool supports parent directory which you can generate different projects in. You need to selectUse Same Parent Directory
at first and then select a parent directory. After that, all the projects will be generated to the parent directory.Build Folder
is the project folder whose name will be generated as${sample}_${board}_${build_type}
automatically. You can also change the folder name manually. On the right side of theBuild Path
input box, there are buttons to open the "Build Path" console and resource explorer. The opened console by default loads the environment variables ofSDK_ENV
, which allow user to compile project under the "Build Path" directory and run commands directly. -
Generate options: After configuration, you can use
Generate
to generate project. When the project is generated success,Open with IDE
will be highlighted and can be clicked to open the IDE which it can be switched by right arrow button.GCC Compile
button is supported to compile the project directly. Taking into account various user needs forhpm_sdk
, the tool also supports extracting thehpm_sdk
files used by the current project to a separate directory, which is the functionality provided by theLocalize SDK for App
button.hpm_sdk
will be localized to the same directory as the current application's CMakeLists.txt, namedhpm_sdk_localized_sdk_for_${BOARDNAME}
. The dropdown menu underSDK Samples
inRegion 3
will prompt for localized projects. Meanwhile, localized project supports the "UnLocalize SDK for App" operation to revert back to the previously unlocalized project. On the far left ofRegion 5
, the tool provides a shortcut entry to launch GDB Server. The currently supported GDB Server is OpenOCD. Clicking it allows users to perform simple configurations and quickly start the GDB Server. The GDB Server will remember the user's configuration by default, so it can be directly launched next time. However, when users switch the board, they need to reconfigure OpenOCD before launching it again. Meanwhile, this tool also provides a quick FLASH image programming feature (RAM image programming is not supported). This feature executes the programming operation by calling OpenOCD process, and shares the same OpenOCD launched configuration as the GDB Server to simplify the operation. -
Log window: The log window shows all the log informations and supports clearing and exporting.
- For user customizing Borad and APP files, please refer to README.md in the user_template directory.
Folder structure:
- hpm_sdk: sdk root directory in which sdk zip package should be unzip to, please make sure the folder of "cmake" can be found via path hpm_sdk\cmake
- toolchains: toolchain should be put in this folder. For example, copy toolchain files to toolchains folder, then riscv32-elf-*-gcc.exe must be found at toolchains\TOOLCHAIN_NAME\bin
- Note:
- TOOLCHAIN_NAME needs to be configured correctly in start_cmd.cmd
- Note:
- tools:
- ninja
- cmake
- python3
- openocd
- scripts
- project_generator
- FTDI_InstallDriver.exe: FT2232 windows driver installer
- doc: documentation
FAQ
Can't find FTDI debug probe
- Make sure install driver (FTDI_InstallDriver.exe) correctly. Please be aware it might need to be installed again if the debug usb cable is pluged to another USB port on PC.
Segger Embedded Studio fails to debug
Please try to following options
- Reopen Segger Embedded Studio, and try to debug again
- Close Segger Embedded Sutdio, then kill the process of "openocd" in Window task manager, reopen Segger Embedded Studio and try to debug again.
- Set boot mode to "ISP" or "Serial Download Mode" on evaluation board, then press reset button the board, try to debug again.
Issue caused by Windows 10 path limit
To enable long path support, please import registry file located at tools/scripts/win10_enable_long_path.reg. For more details about this limitation, please refer to https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd
Windows 7 can't use Python 3.9 or above
- Hpm_sdk relies on Python 3.9 or above, but it can't run directly on Windows 7, requiring installation of pythonw_win7_patch. Download link: https://pan.baidu.com/s/1RaYHOD7xk7fnotmgLpoAlA?pwd=xk2n, path is
先楫技术资料/SDK
.