测试工具版本
ZCC 4.1.5 Segger Embedded Studio 8.28 IAR Workbench for RISC-V 3.30.1
版本更新概况
本版本在中间件和组件两个层面引入了多项新能力,聚焦于SystemView 调试可视化、音频编解码、ADC 统一 HAL 与 enet_phy / tsw_phy 适配等方向。
- [Added] hpm_math 快速三角函数
基于查表法引入快速三角函数,降低电机控制等场景的 CPU 负载 - [Added] mquickjs 中间件
引入 mquickjs 嵌入式 JS 引擎作为新中间件 - [Added/Updated] enet_phy / tsw_phy
新增 port helper 与自适应轮询机制,示例统一迁移至板载 PHY API - [Added] SystemView 调试可视化
新增 segger_sysview 源码,支持 baremetal / FreeRTOS / μC/OS-III 三种模式下的中断与任务录制,并适配 IAR Workbench 构建 - [Added] ADC 统一 HAL
adc_v2 提供统一的 adc12/adc16 HAL,并新增 adc16 差分模式包装 API - [Added] ES8389 音频编解码驱动
新增 audio codec ES8389 初始驱动
新增/更新的中间件(Middleware)
- [Added] SEGGER SystemView
引入 SystemView 源码,支持在 baremetal、FreeRTOS、μC/OS-III 三种运行环境下进行中断与任务级实时分析 FreeRTOS 下默认提供中断记录钩子,并支持 IAR Workbench 构建 μC/OS-III 模式下可记录系统中断,便于定位实时性问题 - [Added] mquickjs
新增轻量级 QuickJS JavaScript 引擎中间件,支持在 MCU 上嵌入运行 JS 脚本 - [Added] hpm_math
新增基于查找表的快速三角函数(sine/cosine 等),降低电机控制、信号处理等场景下三角运算的 CPU 开销 - [Updated] TensorFlow Lite for Microcontrollers (TFLM)
升级上游 tflite-micro 版本并适配更新后的 TFLM API 增加更多 libnn 神经网络算子优化,提升端侧推理性能 - [Updated]
Micro-ROS 延续 kilted 版本基线,精简 libmicroros.a 体积,降低 FLASH 占用 - [Updated] CherryUSB
由 v1.5.3 升级至 v1.6.1,cherrysh 同步适配新版本 优化 setup 中断处理流程,提升端点枚举稳定性 - [Updated] LVGL
升级至 v9.5.0 支持 LVGL 内建的 VGLite 驱动 支持三缓冲机制,提高刷新效率 优化双 buffer 刷新机制,提高交换性能 - [Updated] eclipse_threadx
移除 pcfg_disable_power_trap() 调用,简化电源陷阱处理逻辑 - [Fixed] HPM_MCL_V2
修复 delta PID 误差历史移位顺序错误,保障力位混合控制中微分项计算的正确性 - [Fixed] CherryUSB / TinyUSB / USBX
修复 reset handler 处理缺陷及 actual_xfer_len 未赋值问题,避免 USB 传输长度计算异常 - [Fixed] μC/OS-III
修复使用 GPTMR 作为 tick 源时配置不生效的问题 - [Fixed] LWIP
修复 RT-Thread 移植下以太网接收线程优先级设置,避免网络接收线程被低优先级任务阻塞 - [Fixed] cherrysh
barebone_uart 支持非阻塞读与静态行缓冲,改善命令行交互响应 - [Fixed] FatFS
修复 spi_nor 在 release 构建下 disk_ioctl 栈溢出问题 - [Fixed] LVGL
将三缓冲指针声明为 volatile,修复编译器优化导致的显示缓冲刷新异常 - [Fixed] ptpd
统一日志宏为 PTPD_PRINT,规范 PTP 协议栈日志输出
新增/更新的组件(Components)
- [Added/Updated/Fixed] enet_phy
新增 port helper,统一 PHY 地址与访问入口,支持可配置 PHY 地址 新增 adaptive poll 与 speed_valid链路状态,加固 MDIO 速率/双工读取修复 MDIO 页面恢复与链路读取,RMII 参考时钟改为按媒体接口类型判断,MDIO 访问适配 hpm_stat_t返回值- [Added/Updated/Fixed] tsw_phy
新增 port helper,统一 TSW 侧 PHY 地址与访问入口,支持可配置 PHY 地址 新增 adaptive poll 与 speed_valid链路状态,向上层传播 port 层错误修复 chip 头文件冲突与 tsn_switch端口日志,与 enet_phy 驱动行为对齐,双网络接口 PHY 一致- [Added] ppi
异步 SRAM 新增 CS 同步时钟(cs sync clock)配置 - [Added] adc_v2
新增统一 adc12/adc16 HAL,屏蔽多精度 ADC 调用差异 新增 adc16 差分模式(differential mode)封装 API 原 hpm_adc.h标记 deprecated,推荐迁移至 adc_v2- [Added/Fixed] codec
新增 ES8389 audio codec 初始驱动,扩展音频编解码器选型 sgtl5000 与 wm8960 新增 get_default_configAPI,简化初始化修复 coeff_div 结构 padding 相关 clang-tidy 警告 - [Updated/Fixed] eeprom_emulation
补充 EEPROM 仿真使用说明 更新掉电保护写入策略,提升异常掉电下数据可靠性 重命名 EEPROM_MAX_VAR_CNT为E2P_MAX_VAR_CNT- [Updated] debug_console
新增 CONFIG_CONSOLE_NO_SETVBUF宏,允许禁用setvbuf(),便于自定义控制台缓冲行为- [Fixed] serial_nor
修复读 API 中 cache invalidate 范围错误,避免读到脏数据 修复 clang-tidy 报告的 dead store 与移位溢出问题 - [Fixed] pmbus & smbus
修复 hpm_pmbus_master_read变长 block 读问题修复 hpm_smbus_master_read_block_in_commandblock 读问题- [Fixed] spi
修复 rx DMA 配置未关闭 SPI rx DMA 请求的问题 修正 DMA 链式传输中 spi_setup_dma_transfer的调用位置- [Fixed] usb
修复 usb_device_edpt_xfer()中轮询ENDPTSETUPSTAT的死循环风险
新增/更新的驱动(Drivers)
- [Added] UART
新增 uart_set/get_data_bits、uart_set/get_parity、uart_set/get_stop_bits、uart_set/get_flow_control系列配置 API,运行时灵活变更串口参数新增 TX/RX 引脚电平极性反转 API,支持特殊收发逻辑或电平转换场景 - [Added] MCAN
新增 queue 模式 API 与面向高吞吐的 unchecked API,降低中断与校验开销 新增多个用户友好 helper API 并完善参数校验,简化收发配置 - [Added] OpAmp
新增输出通路选择与查询 API,初始化及运行期均可配置输出路径 - [Added] I2C
新增 i2c_is_gencall()API,支持通用呼叫地址(General Call)识别- [Added] SPI
新增 spi_deinit()API,提供外设反向清理入口,便于复位与重新初始化- [Added] PWMV2
新增跨周期比较(cross-period compare)非法事件上报,避免非预期波形被静默接受 - [Added] TSW
启用 MAC Jumbo 帧通路,支持 lwIP 扩展 MTU,提升大包网络吞吐 - [Added] HPM5300 过流保护
SoC 层新增过流保护接口,可在过流事件下保护外设与负载 - [Added] ROM_API OTP
SoC 层新增 OTP 驱动 wrapper,统一 OTP 在线访问入口 - [Updated] ADC16 / ADC12
ADC_AHB_EN 由 conv_mode 自动推导, adc_ahb_en字段标记废弃,配置更简洁ADC16 新增循环过采样(loop oversample)与 SEQ DMA 多种选项,并扩展 INT_STS STOP_POS中断事件解耦 SEQ DMA 的 stop_en 与 stop_pos,独立控制采集停止行为 SoC 新增 ADC16 序列硬件触发源 ADC_SOC_HW_TRIG_SRCSEQ DMA union 与 init_seq_dma 16b 路径,调整 sel_sync_ahb 处理逻辑 板级 pinmux 工具新增 init_adc16_diff_pins生成支持- [Updated] ENET
扩展 PTP 配置,支持 PPS 输出与初始时间戳设置,简化时间同步应用 - [Updated] USB
新增 usb_phyctrl1_select_utmi_clk_src()API,可选 UTMI 时钟源新增 SUTW 相关 API,USB Device 切换至 setup lockouts off 模式,提升控制传输处理灵活性 - [Updated] TSW / TSN
拆分 CB 字段并新增交换机头部相关 API,统一 TSW_CPU_SEND_TO目的端口宏从帧动作配置中移除已废弃 DROP 字段,简化配置语义 - [Updated] DMA
新增 DMA_LINKED_DESCRIPTOR_ALIGN宏,便于链式描述符对齐配置- [Updated] PCFG
更新 DCDC 电压设置流程 和 DCM/CCM 模式切换流程,提升电源轨稳定性 - [Updated] ROM_API (XPI)
释放更多 XPI 可配置字段,扩展外设在线可调参数 - [Fixed] ADC16 / ADC12
延迟看门狗中断使能,避免初始化阶段误触发 修正 HPM5300/HPM6P00 adc/dac AHB/ANC 时钟枚举值 - [Fixed] MCAN
修正 nominal tseg2 范围限制与默认 tdc_offset,提升总线时序鲁棒性 修正 txfifo索引返回值可能错误的问题- [Fixed] CAN / CANopen
修复 CANopen 协议栈多处逻辑错误,提升协议栈稳定性 - [Fixed] OTP
修正 lock_otp处理逻辑及 LDO ready 掩码,保证 OTP 锁定与上电时序正确- [Fixed] PCFG
修正 DCDC 电压设置与工作模式切换过程中的模式跳变问题 - [Fixed] ENET / TSW (MDIO)
为 GMII PHY 访问与 tsw_ep_mdio增加 MDIO busy 重试,规避偶发读写失败- [Fixed] TSW / TSN
重命名 TSN 构建用 MDIO OP 宏,避免与 ENET 构建冲突 - [Fixed] I2S
为 PDM/DAO 相关 API 增加预编译条件,避免非目标外设编译报错 - [Fixed] GPTMRV2
gptmr_channel_config()增加 24 位溢出校验 修正 gptmr_channel_get_default_config默认 cmp/reload 超出 24 位限制的问题- [Fixed] PWMV2
修正 pwmv2_config_cmp中计数器选择逻辑,保证比较值正确生效- [Fixed] PPI
修正时钟分频编号设置(应减 1),避免时钟配置偏差 - [Fixed] PLLCTLV2 (Spread Spectrum)
修正引脚复用配置错误 - [Fixed] ENET (hpm_enet_drv)
修正 TX 描述符 DMA 释放顺序,避免发送资源泄漏或异常
Samples改动
- [Added] CherryUSB DFU
新增 Device 固件升级 (DFU) 示例 - [Added] CANopen Master
新增基于 CANopenNode 的 CANopen 主站示例,便于开发主从角色选型 - [Added] ADC16 Differential
新增 ADC16 差分采样示例,演示差分码值 (POS/FULL) 计算与解码 - [Added] SPI NOR Flash
新增 SPI NOR Flash 读写示例,演示通过 IDE 工程生成多 IDE 工程 - [Added] mquickjs
新增嵌入式 JavaScript 引擎 (mquickjs) 演示示例 - [Added] hpm_math Fast Math
新增快速数学函数 (Fast Math) 测试示例 - [Added] SENT
新增 SENT 解码支持 Idle High/Low 电平模式,覆盖更多总线空闲状态 - [Added] TSN
新增从串口终端远程设置 TSN 对端 IP 功能 - [Updated] CherryUSB
适配升级至 v1.6.1,USB Host 串口类支持 CDC_ACM、CH340、CP210x、FTDI、PL2303 及 GSM Modem UAC2 麦克风数据格式从 16bit 升级为 24bit UAC2 规范描述符 EP Size CDC ACM Device 2048字节发送间隔调整为 500ms - [Updated] TinyUSB
UAC2 麦克风数据格式从 16bit 升级为 24bit UAC2 规范描述符 EP Size UAC2 增大 MIC SW_BUF_SZ - [Updated] CAN / MCAN
将原 CAN 与 MCAN 大例程拆分为多个小型自包含、功能级独立例程 (tx queue mode 等),便于按特性选型 扩展示例选项与输出 - [Updated] ADC16
序列 DMA 示例改用 Driver Buffer API,统一描述符对齐使用 DMA_LINKED_DESCRIPTOR_ALIGN宏IP 强制 AHB sync 时跳过 sel_sync_ahb 配置 - [Updated] LWIP
支持通过 cmake -D覆盖LWIP_DHCP,文档化静态 IP 默认值与 DHCP 选项静态 IP 场景下默认设置 DNS 并启用 LWIP_SO_RCVTIMEOPTP UDP 端口 319 支持逐帧 TX 时间戳 ENET/lwIP PTP 示例统一改用 enet_init_ptp()单配置初始化- [Updated] TSN
统一 TSN 网络配置与 ENET netinfo 对齐,采用 TSW Switch 内联 Header API - [Updated] Audio Codec
Codec 初始化改用统一的 codec_control_t配置- [Updated] Motor Control
BLDC FOC 示例迁移至 ADC v2 电机相关示例统一使用 BOARD_BLDC_MOTOR_CLOCK_SOURCE获取电机时钟源- [Updated] enet_phy / tsw_phy 示例 (ENET / TSN / Modbus / Opener / Multicore)
统一采用板载 PHY API,经 port helper 接入 adaptive poll Modbus / Opener / Multicore 补充媒体接口 (Media Interface) 配置 - [Updated] Multicore
更新 Coremark 多核 CPU1 启动流程 - [Fixed] EtherCAT / EtherCAT EoE
修正 SSC 1ms tick 中断优先级,避免影响 ESC 中断服务执行 EoE 共享 LWIP Baremetal 的 1ms tick,与 FreeRTOS Tick 解耦 (中断优先级冲突) 参考 HPMicro KnowledgeBase: https://kb.hpmicro.com/2025/09/23/ethercatssc从站协议栈中的中断配置参数和中断优先级设/ - [Fixed] LWIP
修复 PTP PPS 引脚初始化与媒体接口配置缺失 修复 ping输入处理 ANSI 转义/退格问题与mhd_wifi_demoSES 编译错误修复 ESP Hosted WiFi 停止后重连失败 - [Fixed] CherryUSB / TinyUSB
修复 UAC2 Speaker 数据延迟与 Mic 软件 Buffer 过小问题 修复 CDC ACM Host 枚举时 DTR Line Control 异常与 MSC Dual Lun 说明缺失 - [Fixed] TSN
修复 TSW pbuf chain 收发与 RX 排空、 lwip_tcpechopbuf chain 回显及 MTU Buffer 对齐- [Fixed] MCAN
修正多个示例的局部初始化状态与 Standard ID 错误 - [Fixed] GPTMR / GPTMRV2
全部 GPTMR 示例检查 gptmr_channel_config()返回值并增加 DMA 传输宽度保护修复 GPTMRV2 输出比较示例 Reload/Compare 24-bit 溢出 - [Fixed] I2C / SPI DMA
为 I2C 与 SPI 的 DMA 传输示例使能 complete/end 中断,确保传输完成事件可靠上报 - [Fixed] ADC16
修复差分结果解码与打印,移除 adc16_temperature中冗余初始化- [Fixed] DMA / MEM Stress
修复 DMA 通道设置,移除 Mem Stress 中不支持的 flash_xip_hybridtarget- [Fixed] PNG Decode
修复空文件 Buffer 导致的 lodepng error 48 - [Fixed] TFLM
防止 printf格式串被二次解释导致串口协议数据损坏- [Fixed] EWdg / Tamagawa / PPI Parallel ADC
增大 EWdg 复位测试裕量,更新 Tamagawa DMA Link 指针宏,PPI ADC 示例使能 CS Sync Clock
注意事项
本版存在若干公开板级宏 / SoC API / 组件 API 重命名,涉及破坏性迁移,已有工程需按以下清单适配:
- boards: enet 接口宏重命名
RGMII/RMII/MII重命名为 HPM_ENET_RGMII/HPM_ENET_RMII/HPM_ENET_MII- boards: enet_phy 适配
CMakeLists 新增 ENET 接口与 PHY 类型组合校验 RGMII 专用板移除 RMII ref clock 板级 API;hpm6e00evk 移除 enet reference clock setting API - boards: tsw 接口宏重命名
RGMII/MII重命名为 HPM_TSW_RGMII/HPM_TSW_MII- boards: hpm5e00evk TSW CMake 块移除
板级 CMakeLists 中 TSW 配置块已删除,依赖 TSW 的工程需自行适配 - boards: DMA 宏重命名
BOARD_APP_HDMA重命名为 BOARD_APP_DMA0,BOARD_APP_XDMA重命名为BOARD_APP_DMA1- boards: FEMC 板级特性替换
删除 board_femc_sramfeature,改用BOARD_HAS_FEMC_ASYNC_SRAM宏声明- soc: HPM6800 API 重命名
sysctl_set_cpu0_entry()重命名为 sysctl_set_cpu0_wakeup_entry()- components: adc 组件废弃
hpm_adc.h标记 deprecated,建议迁移至 adc_v2 统一 HAL - components: eeprom_emulation 宏重命名
EEPROM_MAX_VAR_CNT重命名为 E2P_MAX_VAR_CNT- drivers: adc12/adc16 字段废弃
ADC_AHB_EN 改由 conv_mode 自动推导, adc_ahb_en字段(位于adc12_config_t/adc16_config_t)废弃- drivers/samples: GPTMR QEI mode 移除
GPTMR 移除 QEI mode 相关 API 与 HPM5E00 feature,删除 samples/drivers/gptmr/qeimode示例;已有工程请迁移至 QEI/QEIV2 驱动与示例- samples: motor BLDC FOC 迁移
从 legacy hpm_adc 迁移至 adc_v2 组件 - samples: memstress target 移除
移除不支持的 flash_xip_hybridtarget- samples: ecat_eoe target 排除
排除不支持的 flash_xip_hybridtarget
更多更新内容请参考在线文档 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)来规避
常用链接
在线工具
hpm tools (pinmux & clock) https://tools.hpmicro.com/
在线文档
hpm_sdk 在线文档: English: https://hpm-sdk.readthedocs.io/en/latest/ 中文:https://hpm-sdk-zh.readthedocs.io/zh-cn/latest/ Knowledge Base: https://kb.hpmicro.com
代码仓库
sdk_env: github https://github.com/hpmicro/sdk_env / gitee https://gitee.com/hpmicro/sdk_env hpm_sdk: github https://github.com/hpmicro/hpm_sdk / gitee https://gitee.com/hpmicro/hpm_sdk riscv_openocd: github https://github.com/hpmicro/riscv-openocd riscv-gnu-toolchain releases: github https://github.com/hpmicro/riscv-gnu-toolchain/releases



“先楫半导体”(HPMicro)是一家致力于高性能嵌入式解决方案的半导体公司,产品覆盖微控制器及其配套的开发工具和生态系统。公司总部坐落于上海市浦东软件园区,并在天津、苏州和深圳均设立分公司,入选2025年福布斯亚洲Top100最具潜力的企业榜单。先楫半导体以产品质量为本,所有产品均通过严格的可靠性测试。目前已经量产八大系列高性能通用MCU产品,产品性能及通用性领先国际同类产品并通过AEC-Q100认证。公司已完成ISO9001质量管理和ISO 26262/IEC61508功能安全管理体系双认证,全力服务中国乃至全球的工业自动化、机器人、能源和汽车市场。更多信息,请访问 https://hpmicro.com/


