适配多场景开发|HPM_SDK v1.12.0 正式发布
发布时间:2026-07-01来源:电子发烧友网
下载地址:
pmic
/
sd
k_env_v1.12.0.zip
测试工具版本
ZCC 4.1.5
Segger Embedded Studio 8.28
IAR Workbench for
RISC-V
3.30.1
版本更新概况
本版本在中间件和组件两个层面引入了多项新能力,聚焦于SystemView 调试可视化、
音频
编解码、
ADC
统一 HAL 与 enet_phy / tsw_phy 适配等方向。
[
Ad
ded] hpm_math 快速三角函数
基于查表法引入快速三角函数,降低
电机控制
等场景的
CPU
负载
[Added] mquickjs 中间件
引入 mquickjs
嵌入式
JS 引擎作为新中间件
[Added/Updated] enet_phy / tsw_phy
新增 port helper 与自适应轮询机制,示例统一迁移至板载 PHY A
PI
[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
Java
Script 引擎中间件,支持在
MCU
上嵌入运行 JS 脚本
[Added] hpm_math
新增基于查找表的快速三角函数(sine/cosine 等),降低
电机
控制、
信号
处理等场景下三角运算的 CPU 开销
[Updated]
TensorFlow
Lite for Microcontrolle
rs
(
TF
LM)
升级上游 tflite-micro 版本并适配更新后的 TFLM API
增加更多 libnn
神经网络
算子优化,提升端侧推理性能
[Updated]
Micro-
ROS
延续 kil
te
d 版本基线,精简 libmicroros.a 体积,降低 FLASH 占用
[Updated] Cherry
USB
由 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 /
Ti
nyUSB / USBX
修复 reset handler 处理缺陷及
ac
tual_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
异步 S
RAM
新增 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] eep
rom
_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_SRC
SEQ 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
更新
DC
DC 电压设置流程 和 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_RCVTIMEO
PTP 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 Know
led
geBase:
tss
c从站协议栈中的中断配置参数和中断优先级设/
[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: F
EMC
板级特性替换
删除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:
mems
tress target 移除
移除不支持的flash_xip_hybridtarget
samples: ecat_eoe target 排除
排除不支持的flash_xip_hybridtarget
更多更新内容请参考在线文档
已知问题
IAR Embedded Workbench相关:
可以从 IAR 官网购买或者下载试用版本(14天),调试方式目前仅支持I-jet调试(正与 IAR 沟通解决使用 openocd gdbserver 进行调试出现的问题)
在工程开启优化可能导致程序运行异常
使用EW
RISC
V集成的Andes toolchain,Coremark 分数低于使用 Segger Embedded Studio 集成的Andes Toolchain的结果
使用EWRISCV时,可能会出现relocate相关的错误,当出现该类错误的时候,可以在CMakeLists.txt中通过添加sdk_iar_ld_options(--disable_relaxation)来规避
SDK
SDK
+关注
关注
3
文章
1118
浏览量
52640
HPM
HPM
+关注
关注
2
文章
59
浏览量
8374
转载说明:本文系转载内容,版权归原作者及原出处所有。转载目的在于传递更多行业信息,文章观点仅代表原作者本人,与本平台立场无关。若涉及作品版权问题,请原作者或相关权利人及时与本平台联系,我们将在第一时间核实后移除相关内容。
