硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1001|回复: 19
收起左侧

[技术讨论] HPM这个超强的MCU,哪位大佬用过,讲讲心得

[复制链接]

7

主题

117

回帖

138

积分

初级会员

积分
138
发表于 2025-7-3 17:33:23 | 显示全部楼层 |阅读模式
国产先楫半导体的这个HPM的MCU大佬们玩过没有,最近出了两款HPM6E和HPM6P,看起来硬件系统已经成熟了,性能超高,价格不高,非常适合做设备控制。

https://www.hpmicro.com/product-center/microcontroller/hpm6e00

我一直没敢下手搞这个主要是开发环境看起来比较难搞,这厂家连个论坛也没有FAE回答问题的样子。
6Eproweb222.jpg
回复

使用道具 举报

6

主题

306

回帖

324

积分

高级会员

积分
324
发表于 2025-7-4 08:32:57 | 显示全部楼层
HPM5301我买了一个29.9一发板,后来刷了一个高速的SWD固件,用着非常爽,用SES下载调试程序,也不错。
回复

使用道具 举报

0

主题

87

回帖

87

积分

初级会员

积分
87
发表于 2025-7-4 09:28:36 | 显示全部楼层
fxyc87 发表于 2025-7-4 08:32
HPM5301我买了一个29.9一发板,后来刷了一个高速的SWD固件,用着非常爽,用SES下载调试程序,也不错。

淘宝搜有个HPM5301EVKLite ,是这个开发板吗?不过现在价格翻倍了
如果有固件,做一个下载器确实不错
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2025-7-4 09:28:58 | 显示全部楼层
回复

使用道具 举报

39

主题

1516

回帖

1638

积分

至尊会员

积分
1638
发表于 2025-7-4 09:54:59 | 显示全部楼层
fxyc87 发表于 2025-7-4 08:32
HPM5301我买了一个29.9一发板,后来刷了一个高速的SWD固件,用着非常爽,用SES下载调试程序,也不错。

有固件吗大佬?支持keil使用吗
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2025-7-4 11:03:02 | 显示全部楼层
sanit 发表于 2025-7-4 09:54
有固件吗大佬?支持keil使用吗

keil不支持RISC-V 而且keil被arm收购了后期应该也不会支持RISC-V
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
发表于 2025-7-4 14:19:19 | 显示全部楼层
官方的sdk里的demo可以生成ses的工程,例子还是挺多的,ses用起来也不错,不过编辑代码还是习惯vscode,ses就调用daplink当个调试用
只是这个hpm的芯片封装不太友好(功能稍多一点的都是bga,电源管脚有点多了,io口少),再就是sdk里的"本地化"功能还是看不太懂,得制作板子bsp,一套一套的,建立自己的代码工程没有keil这么简单
感觉好多高性能的芯片都喜欢这样类似于linux下搞嵌入式开发一样,没有像keil这样简单的
顺便夸一下沁恒,他们自己基于vscode做的IDE就挺不错的,一站式开发
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
发表于 2025-7-4 14:27:49 | 显示全部楼层
回复

使用道具 举报

6

主题

306

回帖

324

积分

高级会员

积分
324
发表于 2025-7-4 15:39:06 | 显示全部楼层
sanit 发表于 2025-7-4 09:54
有固件吗大佬?支持keil使用吗

网上开源的,我就用的这款,
https://cherrydap.cherry-embedde ... HPM5301EVKLite.html
速度超级快,甩开我的J-LINK V11几条街。
回复

使用道具 举报

6

主题

306

回帖

324

积分

高级会员

积分
324
发表于 2025-7-4 15:39:33 | 显示全部楼层
cowen 发表于 2025-7-4 09:28
淘宝搜有个HPM5301EVKLite ,是这个开发板吗?不过现在价格翻倍了
如果有固件,做一个下载器确实不错

https://item.hqchip.com/2500409653.html
这里还卖的有,不过好像价格是39.9
固件网上开源的有
https://cherrydap.cherry-embedde ... HPM5301EVKLite.html
回复

使用道具 举报

0

主题

21

回帖

21

积分

新手上路

积分
21
发表于 2025-7-4 16:27:53 | 显示全部楼层
个人习惯开发环境本来就是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调试功能很强,也是全系统兼容都可以运行。
回复

使用道具 举报

7

主题

117

回帖

138

积分

初级会员

积分
138
 楼主| 发表于 2025-7-4 16:45:16 | 显示全部楼层
cking616 发表于 2025-7-4 16:27
个人习惯开发环境本来就是vscode + cmake + clangd 后端, 调试直接用segger ozone(hpm全系列都支持,不过 ...

牛,就是想着学会用VSCODE开发,免得换来换去的麻烦。要不大佬出个详细的,真不会嵌入式工具链,毕竟以前不是做这个的。
回复

使用道具 举报

7

主题

117

回帖

138

积分

初级会员

积分
138
 楼主| 发表于 2025-7-4 16:47:12 | 显示全部楼层
p00equal1 发表于 2025-7-4 14:19
官方的sdk里的demo可以生成ses的工程,例子还是挺多的,ses用起来也不错,不过编辑代码还是习惯vscode,ses就调 ...

最新的HPM6P系列都是LQFP的,有64、100和176三种封装,价格比HPM6E的要便宜不少,阉割了时以太网接口
回复

使用道具 举报

0

主题

21

回帖

21

积分

新手上路

积分
21
发表于 2025-7-4 17:00:14 | 显示全部楼层
死不低头 发表于 2025-7-4 16:45
牛,就是想着学会用VSCODE开发,免得换来换去的麻烦。要不大佬出个详细的,真不会嵌入式工具链,毕竟以前 ...

详细的你现在直接问ai,步骤一个个详细全部给你说清楚的,这种这么简单的流程性东西,AI全部都搞得定又很快,下面是把我上面的内容复制给claude了,让它自动生成的详细步骤:
# HPM SDK + VSCode 开发环境配置教程 (Windows 11)

## 环境概述

本教程将指导您在Windows 11系统上搭建基于VSCode的HPM SDK开发环境,包含以下核心组件:

- **开发环境**: VSCode + CMake + clangd
- **调试工具**: Segger Ozone (需要JLink 11及以上版本支持RISC-V)
- **SDK**: HPM SDK (基于CMake)
- **编译器**: Andes nds32le-elf-mculib-v5d (优化性能)

## 第一步:安装基础工具

### 1.1 使用winget安装必要软件

打开PowerShell或命令提示符(以管理员身份),依次执行以下命令:

```powershell
# 安装VSCode
winget install Microsoft.VisualStudioCode

# 安装Git
winget install Git.Git

# 安装Python(用于构建脚本)
winget install Python.Python.3.12

# 安装CMake
winget install Kitware.CMake

# 安装Ninja构建系统
winget install Ninja-build.Ninja
```

### 1.2 安装VSCode扩展

启动VSCode后,安装以下扩展:

1. **C/C++ Extension Pack** - 提供C/C++开发支持
2. **clangd** - 语言服务器,提供智能补全和错误检查
3. **CMake Tools** - CMake项目管理
4. **CMake** - CMake语法高亮
5. **GitLens** - Git增强功能
6. **Code Runner** - 代码运行支持

可以通过VSCode的扩展市场搜索安装,或使用命令行:

```powershell
code --install-extension ms-vscode.cpptools-extension-pack
code --install-extension llvm-vs-code-extensions.vscode-clangd
code --install-extension ms-vscode.cmake-tools
code --install-extension twxs.cmake
code --install-extension eamodio.gitlens
code --install-extension formulahendry.code-runner
```

## 第二步:下载和配置SDK及工具链

### 2.1 下载HPM SDK

创建开发目录并下载HPM SDK:

```powershell
# 创建开发目录
mkdir C:\Development\HPM
cd C:\Development\HPM

# 克隆HPM SDK
git clone https://github.com/hpmicro/hpm_sdk.git
```

### 2.2 下载Andes工具链

1. 访问 https://github.com/andestech/Andes-Development-Kit/releases
2. 下载最新版本的工具链压缩包
3. 解压到 `C:\Development\HPM\toolchain\` 目录
4. 确保解压后的目录结构为:`C:\Development\HPM\toolchain\nds32le-elf-mculib-v5d\`

### 2.3 配置环境变量

通过系统设置配置环境变量:

1. 右键"此电脑" → "属性"
2. 点击"高级系统设置"
3. 点击"环境变量"
4. 在"系统变量"部分添加以下变量:

**新建系统变量:**

| 变量名 | 变量值 |
|--------|--------|
| `HPM_SDK_BASE` | `C:\Development\HPM\hpm_sdk` |
| `GNURISCV_TOOLCHAIN_PATH` | `C:\Development\HPM\toolchain\nds32le-elf-mculib-v5d` |
| `HPM_SDK_TOOLCHAIN_VARIANT` | `nds-gcc` |

**更新PATH变量:**

在系统变量的PATH中添加:
- `%GNURISCV_TOOLCHAIN_PATH%\bin`
- `C:\Program Files\CMake\bin`
- `C:\Program Files\Git\bin`

## 第三步:VSCode项目配置

### 3.1 创建项目工作空间

1. 在VSCode中打开HPM SDK目录:`C:\Development\HPM\hpm_sdk`
2. 创建`.vscode`目录(如果不存在)
3. 在`.vscode`目录中创建配置文件

### 3.2 配置tasks.json

在`.vscode`目录中创建`tasks.json`文件:

```json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "构建调试版本",
            "type": "process",
            "command": "python",
            "args": [
                "${workspaceFolder}/tools/build.py",
                "--board",
                "${input:boardType}",
                "--output",
                "${workspaceFolder}/build"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": [],
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared"
            }
        },
        {
            "label": "CMake配置",
            "type": "process",
            "command": "cmake",
            "args": [
                "-GNinja",
                "-DBOARD=${input:boardType}",
                "-DCMAKE_BUILD_TYPE=Debug",
                ".."
            ],
            "options": {
                "cwd": "${workspaceFolder}/build"
            },
            "group": "build",
            "problemMatcher": []
        },
        {
            "label": "Ninja构建",
            "type": "process",
            "command": "ninja",
            "args": [],
            "options": {
                "cwd": "${workspaceFolder}/build"
            },
            "group": "build",
            "problemMatcher": []
        },
        {
            "label": "清理构建",
            "type": "process",
            "command": "ninja",
            "args": ["clean"],
            "options": {
                "cwd": "${workspaceFolder}/build"
            },
            "group": "build",
            "problemMatcher": []
        }
    ],
    "inputs": [
        {
            "id": "boardType",
            "type": "pickString",
            "description": "选择目标板卡类型",
            "options": [
                "hpm6750evkmini",
                "hpm6750evk",
                "hpm6360evk",
                "hpm5300evk",
                "hpm6200evk"
            ],
            "default": "hpm6750evkmini"
        }
    ]
}
```

### 3.3 配置launch.json(调试配置)

在`.vscode`目录中创建`launch.json`文件:

```json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Segger Ozone Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/output.elf",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "${env:GNURISCV_TOOLCHAIN_PATH}/bin/riscv32-elf-gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "构建调试版本"
        }
    ]
}
```

### 3.4 配置c_cpp_properties.json

在`.vscode`目录中创建`c_cpp_properties.json`文件:

```json
{
    "version": 4,
    "configurations": [
        {
            "name": "HPM SDK",
            "includePath": [
                "${workspaceFolder}/soc/**",
                "${workspaceFolder}/drivers/**",
                "${workspaceFolder}/middleware/**",
                "${workspaceFolder}/components/**",
                "${workspaceFolder}/samples/**",
                "${workspaceFolder}/cmake/**",
                "${env:GNURISCV_TOOLCHAIN_PATH}/riscv32-elf/include/**"
            ],
            "defines": [
                "HPM_SDK",
                "__riscv",
                "_GNU_SOURCE"
            ],
            "compilerPath": "${env:GNURISCV_TOOLCHAIN_PATH}/bin/riscv32-elf-gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ]
}
```

### 3.5 配置settings.json

在`.vscode`目录中创建`settings.json`文件:

```json
{
    "clangd.path": "clangd",
    "clangd.arguments": [
        "--compile-commands-dir=${workspaceFolder}/build",
        "--header-insertion=never",
        "--clang-tidy"
    ],
    "C_Cpp.intelliSenseEngine": "disabled",
    "cmake.buildDirectory": "${workspaceFolder}/build",
    "cmake.configureOnOpen": true,
    "cmake.generator": "Ninja",
    "cmake.preferredGenerators": ["Ninja"],
    "files.associations": {
        "*.h": "c",
        "*.c": "c"
    },
    "terminal.integrated.env.windows": {
        "HPM_SDK_BASE": "C:\\Development\\HPM\\hpm_sdk",
        "GNURISCV_TOOLCHAIN_PATH": "C:\\Development\\HPM\\toolchain\\nds32le-elf-mculib-v5d",
        "HPM_SDK_TOOLCHAIN_VARIANT": "nds-gcc"
    }
}
```

## 第四步:构建和调试配置

### 4.1 构建项目

1. 在VSCode中按下 `Ctrl+Shift+P` 打开命令面板
2. 输入 `Tasks: Run Task` 并选择
3. 选择 `构建调试版本`
4. 选择目标板卡类型(例如:hpm6750evkmini)

或者使用快捷键 `Ctrl+Shift+B` 直接构建。

### 4.2 安装和配置Segger Ozone

1. 从Segger官网下载并安装Ozone调试器
2. 确保JLink驱动已正确安装(JLink 11及以上版本)
3. 启动Ozone,创建新项目:
   - Target Device: 选择对应的HPM芯片
   - Target Interface: SWD
   - Program File: 选择构建生成的.elf文件

### 4.3 调试工作流程

1. **构建项目**: 使用VSCode的构建任务生成ELF文件
2. **启动Ozone**: 打开Segger Ozone调试器
3. **加载程序**: 在Ozone中加载生成的ELF文件
4. **连接目标**: 连接到目标硬件
5. **开始调试**: 设置断点并开始调试

## 第五步:开发工作流程

### 5.1 日常开发流程

1. **项目导航**: 使用VSCode的资源管理器浏览项目文件
2. **代码编辑**: 利用clangd提供的智能补全、错误检查等功能
3. **构建项目**: 使用预配置的构建任务快速编译
4. **调试程序**: 使用Segger Ozone进行硬件调试

### 5.2 快捷键总结

| 快捷键 | 功能 |
|--------|------|
| `Ctrl+Shift+B` | 构建项目 |
| `Ctrl+Shift+P` | 打开命令面板 |
| `F5` | 开始调试 |
| `Ctrl+F5` | 运行而不调试 |
| `Ctrl+Shift+F` | 全局搜索 |

### 5.3 故障排除

**常见问题及解决方案:**

1. **环境变量未生效**: 重启VSCode或系统后重试
2. **工具链路径错误**: 检查PATH环境变量中的工具链路径
3. **clangd无法找到头文件**: 确保compile_commands.json文件已生成
4. **构建失败**: 检查环境变量HPM_SDK_BASE和GNURISCV_TOOLCHAIN_PATH是否正确设置

## 总结

通过以上配置,您将拥有一个完整的HPM SDK开发环境,支持跨平台开发(Windows、Linux、macOS),并集成了现代的AI编码辅助工具。该环境提供了出色的开发体验,包括智能代码补全、实时错误检查、便捷的构建流程和强大的调试功能。

开发环境的核心优势包括:
- 统一的CMake项目管理
- 高效的clangd语言服务
- 灵活的构建任务配置
- 专业的Ozone调试支持
- 完整的跨平台兼容性
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
发表于 2025-7-4 17:22:28 | 显示全部楼层
死不低头 发表于 2025-7-4 16:47
最新的HPM6P系列都是LQFP的,有64、100和176三种封装,价格比HPM6E的要便宜不少,阉割了时以太网接口

6P00之前选型时看过资料,各方面都符合,就是没LTDC接口,接不了裸屏,后面还是用GD32F470了
回复

使用道具 举报

7

主题

117

回帖

138

积分

初级会员

积分
138
 楼主| 发表于 2025-7-5 12:08:48 | 显示全部楼层
cking616 发表于 2025-7-4 17:00
详细的你现在直接问ai,步骤一个个详细全部给你说清楚的,这种这么简单的流程性东西,AI全部都搞得定又很 ...

你用的什么AI,我问这些简单的AI,比如豆包,文言一心,钉钉上的通义千问,错误率高达99%多一点,简单小学初中数学都算不明白
回复

使用道具 举报

7

主题

117

回帖

138

积分

初级会员

积分
138
 楼主| 发表于 2025-7-5 12:10:25 | 显示全部楼层
我还是先画个板子再说,手里没板子配置好开发环境也是虚空歪歪
回复

使用道具 举报

0

主题

21

回帖

21

积分

新手上路

积分
21
发表于 2025-7-6 11:00:43 | 显示全部楼层
死不低头 发表于 2025-7-5 12:08
你用的什么AI,我问这些简单的AI,比如豆包,文言一心,钉钉上的通义千问,错误率高达99%多一点,简单小 ...

所有编程相关都是 claude, 现在claude code 编程调试不涉及硬件的那种可以全自动化了。
文字报告、搜索、分析推理全选 gemini , 目前排行榜第一
无法访问外网,国产就 deepseek r1 或者 deepseek v1,推荐在火山引擎平台用速度快、好用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:21 , Processed in 0.049224 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表