先楫半导体HPMicro
2026-01-04
719
描述
下载地址 https://resource.hpmicro.com/sdk_env_v1.11.0.zip
测试工具版本
- ZCC 4.1.5
- Segger Embedded Studio 8.24
- IAR workbench for RISC-V 3.30.1
版本更新概况
[Updated] openocd
注意:
- 由于upstream代码逻辑变动,此版本的openocd需要配合此版本中hpm_sdk包含的配置文件(hpm_sdk/boards/openocd)一起使用, 不能与之前版本的配置文件混用。
- 更新upstream code base
- 修复gdbserver中snprintf长度错误问题
- 在github release页面可以下载不同平台的binary https://github.com/hpmicro/riscv-openocd/releases/tag/hpm_xpi_v0.4.0
新增/更新的中间件(Middleware)
[Added] esp_hosted_mcu
[Updated] HPM_MCL_V2
- 实现了混合力位控制功能,包括PD控制器与前馈力矩补偿、可配置的位置刚度和阻尼系数、输出力矩限制保护
- 用户可参考 HPMicro KnowledgeBase: https://kb.hpmicro.com/2025/12/29/力位混合控制库使用指南/
[Updated] Micro-ROS
- Micro-ROS版本由foxy更新到kilted
- 更新了libmicroros.a的各项功能节点最大初始配置。目前,ROS2 node最大数量为6,publisher最大数量为4,subscriber最大数量为4,service最大数量为2,client最大数量为2个,消息缓存数量为2个
[Updated] CherryUSB
- 升级至了v1.5.3
- 支持OTG主从模式切换,根据ID信号决定USB角色
- 修复了Host模式下,多次插拔Device设备QTD耗尽问题
[Updated] TinyUSB
[Updated] NetxDuo
[Updated] RTOS
[Updated] FreeRTOS
[Fixed] HPM_MCL_V2
- 修复了离线参数辨识中变量赋值错误
- 修复了闭环步进转换中电流处理时角度范围判断错误
新增/更新的组件(Components)
[Added] EEPROM HAL
- 引入 EEPROM 硬件抽象层(HAL),屏蔽物理芯片与仿真模拟的底层差异
- 统一存储访问标准,支持通过通用 API 调用物理或模拟 EEPROM 组件
[Updated] ENET_PHY
- 新增多 PHY 实例支持,所有 PHY 驱动函数现在都支持指定 PHY 地址
- 新增自动参考时钟设置(基于 BOARD_ENET_RMII_INT_REF_CLK)
- 新增接口设置、参考时钟设置及偏移(Skew)设置等相关 API
[Updated] I2C
[Updated] SPI
- 新增 DMA 管理器自定义回调
- 初始化顺序优化
- 相关注释优化澄清
[Updated] Audio Codec
- 添加API设置LRCLK极性, 并在初始化时根据配置设置LRCLK极性
新增/更新的驱动(Drivers)
[Added] I2C
- 新增 i2c_is_addrhit() API,优化地址命中检测
- 统一地址验证和清除逻辑,改进传输配置的可靠性
[Updated] SPI
- 完善 FIFO/控制器重置等待机制
- 新增 spi_master_enable_cs_select API, 可配置哪个设备硬件片选
[Updated] UART
- 修复波特率计算错误
- HPM_UART_DRV_RETRY_COUNT可配置
[Updated] LWIP
- 新增 MII 接口支持,扩展接口类型选择
- 新增 custom pbuf 支持,支持零拷贝(Zero-copy)数据接收,降低 CPU 负载并显著提升网络吞吐性能
[Updated] TSW
- 新增 TSW 动态设置功能,支持广播帧、未知帧动作及帧动作配置
- 修复 TSW 动态重复设置时原始设置被覆盖的问题
- 增强 TSW 驱动 API 文档,并修复 DMA 状态寄存器访问及发送超时递减逻辑
[Updated] PWMV2
- 新增了获取默认PWM配置的函数 pwmv2_get_default_config
- 增加了计数器重载事件的DMA选择功能
- 增强了死区配置,支持高分辨率死区设置
[Updated] SEI
- 新增了sei_get_crc_value()API获取CRC校验值
[Updated] QEIV2
- 新增了qeiv2_adc_channel_convert()API来设置QEI的ADC通道
[Updated] PCFG
- 新增了pcfg_dcdc_switch_to_ccm_mode()API来切换DCDC工作模式至CCM
[Fixed] PWM/PWMV2
- 修复了PWM状态寄存器赋值和捕获缓冲区处理错误
- 修正了计算单元数量(从8增加到16)并更新了IRQ状态处理
- 修正了强制输出和中断使能函数的位操作
- 将 update_trigger 字段重命名为 force_cmd_shadow_update_trigger 以方便理解
- 修正了HRPWM函数中的通道启动配置
Samples改动
[Added] EEPROM
- 新增 EEPROM 示例,展示如何让通过统一接口调用 EEPROM
[Added] SPI
[Added] ESP Hosted WiFi
- 完整的 ESP Hosted WiFi 演示程序,对接lwip
[Added] EtherCAT EOE
- 新增EtherCAT EOE功能演示例程,提供基于EOE的Modbus TCP/HTTP Server/TCP Echo例程,EOE例程支持裸机和Freertos两个版本
[Added] DAO_I2S_DMA
- 新增使用DMA进行DAO音频播放例程,支持单双声道音频,支持暂停和恢复播放,支持播放不同采样率音频
[Added] brownout:
[Added/Fixed] CherryUSB
- 新增了 OTG 示例
- 修复了WebUSB URL描述符长度错误问题
[Updated] TSN
- 统一 TSN 示例目录结构,将原 tsw 示例重命名为 tsn_switch
- 增加 TSN 动态广播及未知帧动作设置示例
[Updated] LWIP
- lwip_tcpclient 和 lwip_tcpclient_freertos_socket 支持从串口终端设置远程 IP
- lwip_iperf 和 lwip_iperf_multi_ports 支持 TCP/UDP 客户端模式下从串口终端设置远程 IP
[Updated] TinyUSB
- 更新了TinyUSB示例(基于TinyUSB中间件的示例)
[Updated] README
- 在多个示例(TFA、DSP、HPM Math、TFLM、TinyEngine)的README文件中添加了DSP工具链要求说明
[Fixed] EtherCAT
- 设置SSC Tool配置文件中参数ECAT_TIMER_INT = 1,生成的协议栈代码会在1ms tick中断中执行ECAT_CheckTimer()检查且移除DC_CheckWatchdog()中的开关ESC中断函数, 可避免关闭ESC中断影响ESC中断服务函数执行
- 修改ESC中断PDI/SYNC0/SYNC1中断优先级
- 可参考HPMicro KnowledgeBase:https://kb.hpmicro.com/2025/09/23/ethercatssc从站协议栈中的中断配置参数和中断优先级设/
[Fixed] Motor Control
- 更新了多个电机控制示例中的PWM初始化函数,使用 pwmv2_get_default_config 将配置结构设置为默认值,提高了一致性和可靠性
[Fixed] UART_LIN_SLAVE:
[Fixed] SDM:
更多更新内容,请参考在线文档 https://hpm-sdk.readthedocs.io/en/latest/CHANGELOG.html
已知问题
- IAR Embedded Workbench相关:
- 可以从IAR官网购买或者下载试用版本(14天),调试方式目前仅支持I-jet调试(正与IAR沟通解决使用openocd gdbserver进行调试出现的问题)
- 在工程开启优化可能导致程序运行异常
- 使用EWRISCV集成的Andes toolchain,coremark分数低于使用Segger Embedded Studio集成的Andes Toolchain的结果
- 使用EWRISCV时,可能会出现relocate相关的错误,当出现该类错误的时候,可以在CMakeLists.txt中通过添加sdk_iar_ld_options(--disable_relaxation) 来规避
打开APP阅读更多精彩内容