gantt
title HPM SDK Release Plan
dateFormat YYYY-MM-DD
section Mainline Release
v1.1.0 :a1, 2023-01-01, 2023-03-31
v1.2.0 :a2, 2023-04-01, 2023-06-30
v1.3.0 :a3, 2023-07-01, 2023-09-30
v1.4.0 :a4, 2023-10-01, 2023-12-31
HPM SDK项目是基于HPMicro 公司的MCU编写的软件开发包,支持多种MCU。基于BSD许可证,包含了底层驱动,中间件和RTOS,例如littlevgl/ lwIP/ TinyUSB/ FreeRTOS等,支持大量评估板。
目录名称 | 描述 |
---|---|
/arch | cpu架构相关文件 |
/boards | 板级文件 |
/cmake | cmake扩展 |
/components | 软件组件 |
/docs | 文档 |
/drivers | 底层驱动文件 |
/middleware | 中间件 |
/samples | 驱动、中间件以及软件组件示例代码 |
/scripts | 辅助脚本 |
/soc | SoC相关文件 |
/utils | 辅助文件 |
软件名称 | 版本号 |
---|---|
CMake | 3.13 |
Python | 3.8 |
Ubuntu:
安装工具:
sudo apt install build-essential cmake ninja-build libc6-i386 libc6-i386-cross libstdc++6-i386-cross
安装python3 (3.8.5 minimum) 与pip:
sudo apt install python3 python3-pip
Windows:
禁用全局安装确认:
choco feature enable -n allowGlobalConfirmation
安装CMake:
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'
安装其他工具:
choco install git python ninja
关闭该命令行窗口
工具链:
gnu-gcc:
Linux, 以zsh为例(确保将TOOLCHAIN_PATH替换成你自己的路径):
export GNURISCV_TOOLCHAIN_PATH=TOOLCHAIN_PATH
export HPM_SDK_TOOLCHAIN_VARIANT=
Windows命令行:
set GNURISCV_TOOLCHAIN_PATH=TOOLCHAIN_PATH
set HPM_SDK_TOOLCHAIN_VARIANT=
nds-gcc:
Linux, 以zsh为例(确保将TOOLCHAIN_PATH替换成你自己的路径):
export GNURISCV_TOOLCHAIN_PATH=TOOLCHAIN_PATH
export HPM_SDK_TOOLCHAIN_VARIANT=nds-gcc
Windows命令行:
set GNURISCV_TOOLCHAIN_PATH=TOOLCHAIN_PATH
set HPM_SDK_TOOLCHAIN_VARIANT=nds-gcc
Note: Windows平台上Andes toolchain需要以下cygwin库文件:
SDK编译所需环境变量设置:
Linux:
source env.sh
Windows 命令行:
env.cmd
手工设置环境变量"HPM_SDK_BASE"指向SDK根目录:
Linux, 以zsh为例(假定$HOME/hpm_sdk为SDK根目录):
export HPM_SDK_BASE=$HOME/hpm_sdk
Windows 命令行(假定c:\hpm_sdk为SDK根目录):
set HPM_SDK_BASE=c:\hpm_sdk
安装Python依赖包:
Linux:
pip3 install --user -r "$HPM_SDK_BASE/scripts/requirements.txt"
Window (Windows平台上Python 3.x 安装之后无法找到 python3/pip3, 只有python/pip):
pip install --user -r "%HPM_SDK_BASE%/scripts/requirements.txt"
使用GNU GCC工具链编译示例应用: 做完尚书步骤之后, 就可以构建编译SDK示例工程. 以下步骤描述了如何编译hello_world:
切换到示例应用目录:
cd samples/hello_world
创建build目录:
Linux:
mkdir build
Windows:
md build
切换目录到"build"
cd build
为Ninja-build产生构建文件:
cmake -GNinja -DBOARD=hpm6750evk ..
Note: 如果提示"CMAKE_MAKE_PROGRAM is not set", 可以通过在以上命令中追加"-DCMAKE_MAKE_PROGRAM=YOUR_MAKE_EXECUTABLE_PATH" (NINJA_PATH为ninja-build的目录,在其下可以找到ninja):
# cmake -GNinja -DBOARD=hpm6750evk -DCMAKE_MAKE_PROGRAM=NINJA_PATH/ninja ..
编译:
ninja
当编译完成后,生成的elf以及对应的其他文件可以在output目录中找到.
运行/调试示例程序说明(hello_world):
Linux:
$ source env.sh
Windows command prompt:
env.cmd
或者手动设置名为OPENOCD_SCRIPTS的环境变量:
Linux:
$ export OPENOCD_SCRIPTS=${HPM_SDK_BASE}/boards/openocd
Windows:
set OPENOCD_SCRIPTS=%HPM_SDK_BASE%\boards\openocd
运行openocd, 需要按顺序指定配置文件: 调试器配置, 内核配置, 目标板配置。例如,通过ft2232在hpm6750evk上进行单核调试,可以运行如下命令:
openocd -f probes/ft2232.cfg -f soc/hpm6750-single-core.cfg -f boards/hpm6750evk.cfg
Note: 如果使用FTDI调试器并遇到提示Error: libusb_open() failed with LIBUSB_ERROR_NOT_FOUND
, 请检查FTDI usb驱动。如果驱动未正确安装,使用 zadig 更新驱动:
打开zadig,点击 Options->List All Devices.
选择 Dual RS232-HS (Interface 0).
然后点击 Install Driver 或 Replace Driver.
切换到hello_world目录
cd samples/hello_world
打开另一个终端,启动GDB client:
gnu-gcc:
TOOLCHAIN_PATH/bin/riscv32-unknown-elf-gdb
nds-gcc:
TOOLCHAIN_PATH/bin/riscv32-elf-gdb
连接GDB client到openocd GDB server (缺省状态下, openocd gdbserver 端口为 3333)
gdb> file build/output/demo.elf
gdb> target remote localhost:3333
gdb> load
gdb> b main
gdb> c
顺利运行后可以在串口终端上打印"hello_world".
使用Segger Embedded Studio for RISC-V编译应用
注意:openocd可执行文件应该可以通过当前终端的PATH环境变量中可以找到, 否则无法在工程文件中生成相应的调试配置,需要之后在Segger Embedded Studio中手工配置。