|
个人习惯开发环境本来就是vscode + cmake + clangd 后端, 调试直接用segger ozone(hpm全系列都支持,不过jlink9是不支持riscv核心的,最好jlink11以上)。
hpm本是的sdk默认就是cmake的,从 https://github.com/hpmicro/hpm_sdk 处下载,非常方便接入以前习惯的这个。
编译器由于hpm的核心是用的台湾晶心的,https://github.com/andestech/Andes-Development-Kit/releases 在这里下载, 解压 nds32le-elf-mculib-v5d。
这个nds32le效果最好,编译出来代码速度最快、体积最小,比官方的那个强不少。
弄好以后在系统环境变量
HPM_SDK_BASE - 指向HPM SDK的路径 (https://github.com/hpmicro/hpm_sdk)
GNURISCV_TOOLCHAIN_PATH - 指向RISC-V工具链的路径 (https://github.com/andestech/Andes-Development-Kit/releases 下载后解压的路径)
HPM_SDK_TOOLCHAIN_VARIANT - 设置为'nds-gcc'
这样弄了以后,在hpm_sdk下sample例程里,就可以在终端用cmake指定特定板子进行编译了,如
cmake -GNinja -DBOARD=hpm6750evkmini ..
ninja
一般vscode要用的方便点的话,会定义一些构建的预定义,在项目目录的 .vscode/tasks.json文件中,写如
"tasks": [
{
"label": "构建调试版本",
"type": "process",
"command": "python",
"args": [
"${workspaceFolder}/tools/build.py",
"--board",
"${input:boardType}",
"--output",
"${workspaceFolder}"
],
"group": {
"kind": "build",
},
"problemMatcher": []
},
],
"inputs": [
{
"id": "boardType",
"type": "pickString",
"description": "选择目标板卡类型",
"options": [
"hpm6750evkmini",
......
],
"default": "hpm6750evkmini"
},
{
"id": "componentType",
"type": "pickString",
"description": "选择要操作的组件",
"options": [
......
],
"default": "all"
}
]
在VS Code中按下 `Ctrl+Shift+B` 或通过任务菜单可访问以下预定义任务:
| 构建调试版本 | 构建所有组件的调试版本 |
....
所有构建任务会自动提示选择目标板卡型号(hpm6750evkmini或其他)。
本身hpm_sdk就是cmake的,配clangd和vscode cmake项目管理工具插件开发会非常方便,直接用cmake当项目管理,用clion也差不多,这么弄好处是全系统兼容windows、linux、mac。现在宗旨就是vscode搞定一切开发即可,然后还有各种AI编码接入。
调试就用segger ozone打开编译出来的elf文件就好了,直接用ozone调试,ozone调试功能很强,也是全系统兼容都可以运行。
|
|