你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

H5E5评测-4

[复制链接]
种花家刘氓兔 发布时间:2026-10-10 23:58

---

### T4 USB1 接口 USB-OTA + 日志拷贝(扩展)

- 固件:USBX + ThreadX + CDC-ACM(基于官方 Ux_Device_HID 例程改造为纯 CDC)
- 功能:CDC 虚拟串口承载 (a) 设备日志流推送(日志拷贝) (b) 与 UART 完全相同的 OTA 命令协议(USB 升级通道)
- 过程修复:ST 包把 IAR 语法的 `tx_misra.S` 混入 gnu port(排除);ThreadX GNU port 引用 module-manager 符号(提供 4 个桩);USB LL 驱动需显式链接 `stm32h5xx_ll_usb.c`
- **部署**:v3.0.0 USB 固件经 OTA 通道部署并运行(`slot A: VALID (ver 3.0.0)`)
- **遗留**:CDC 主机枚举验证需将 USB 线插到 **CN13 (USB1)** 口(评测机当前仅连接 ST-LINK 调试口)。接线后 macOS 将出现第二个 USB 串口设备

---

## 3. 硬件/工具链问题汇总(对后续用户有价值)

| # | 问题 | 影响 | 解决 |
|---|------|------|------|
| 1 | PKA 首初始化 INITOK 卡死 | 验签不可用 | PKA 外设级复位后再 Init |
| 2 | Bank2 默认全安全 | NS 代码无法执行 | SECWM2_STRT=1/END=0 |
| 3 | H5 不用 core SAU | 配置不生效 | 用 IDAU/OB + GTZC |
| 4 | H5E5 无 AES/SAES 外设 | 硬件加密不可用 | 软件 ChaCha20 |
| 5 | ST 包 gnu port 混入 IAR 汇编 | 编译失败 | 排除 tx_misra.S |
| 6 | gdbserver 默认 AP0 连不上 | 调试受阻 | 指定 `-m 1` |
| 7 | TZEN=0xC3/0xB4 特殊编码 | OB 设置不生效 | 用显式编码值 |
| 8 | st.com 下载被反爬拦截 | 文档获取 | UM3601 等经检索摘要引用 |

## 4. 结论

- H5E5ZJ 板卡+官方包在 macOS 命令行环境下可完成完整的 安全启动/TrustZone/OTA/USB 开发闭环;
- 三个安全相关任务的密码学核心全部经过硬件实测(含正反用例);
- 板载 STLINK-V3EC 的 VCP 调试通道稳定,SWD 烧录+OB 操作可靠;
- 主要开发摩擦点集中在 H5E5 新架构的文档空窗(无 SAES、双 Bank OB、PKA 复位怪癖),均已定位并归档解决方案。

## 5. 复现指南

```bash
# 环境
source env.sh
# 任务1 安全启动(构建+签名+烧录)
tools/build_sboot.sh
# 任务2 TrustZone 双向互调
tools/build_tz.sh
# 任务3 OTA 基线(v1.0.0)
tools/build_ota.sh
# OTA 升级到新版本
python3 tools/imgtool.py sign <new.bin> -o update.bin --ver 2.0.0
python3 tools/ota_cli.py authorize <passphrase>
python3 tools/ota_cli.py update update.bin 2.0.0 <passphrase>
# 串口观察
python3 tools/console.py -t 10

6. 扩展项:Modbus TCP + Web 网关(进行中·状态截至报告日)

已完成:

  • 网关工程 05_modbus:NetXDuo + LAN8742 PHY + 自研标准 Modbus TCP 服务端(MBAP, FC3/FC6/FC16, 寄存器映射:LED 控制/设备标识/固件版本/运行时间/按键)+ 内置 Web 服务器(状态页 + JSON API, 支持网页按钮控制 STM32 LED、实时寄存器表格刷新)——96KB 固件编译通过
  • 经 SWD 部署 slot A,OTA Bootloader 验签通过(ver 4.0.0),应用启动至 250MHz/VTOR 正确
  • ThreadX 内核启动全链路已验证(内核探针实录):kernel_enter → low_level → high_level(6 子步) → tx_application_define → NetX IP 实例创建成功
  • 过程定位的 ThreadX/NetX GNU port 移植问题 4 项(SVC3 安全栈、System Timer Thread 创建死循环、 线程栈下限、gw 工程需 TX_SINGLE_MODE_NON_SECURE),前三项已修复

重大进展(内核探针实录):ThreadX 调度链已打通——tx_kernel_enter 全部初始化子步(s1-s8)、 tx_application_define、NetX IP 实例创建全部通过;调度器 PendSV 切换正常,应用线程实际运行:

[NET] gw_main thread running
[NET] IP=192.168.1.150 mask=255.255.255.0
[NET] services up: ModbusTCP:502 + HTTP:80
[MB] listening on tcp/502
[WEB] listening on tcp/80
[NET] up=1s ip=192.168.1.150 link=1   ← 周期诊断,链路 UP
  • 主机侧确认:网线接 MB2129 ETH 口,Mac en7 显示 100baseTX 全双工 active(物理链路 OK)
  • 板卡 NetX 自报 NX_IP_LINK_ENABLED ✓、ARP 使能 ✓、静态 IP 192.168.1.150/24 ✓

当前卡点:ETH 数据面(RX 中断→NetX 延迟处理链)尚未完全接通——板卡不响应主机的 ARP 请求 (Mac arp 表 incomplete),板侧主动 ping 挂起于等待(推断 ETH IRQ 或 RX 描述符路径未打通)。 Modbus/Web 服务代码已完整就绪并在监听,数据面打通后即可端到端联调。

诚实声明:本项未通过硬件功能验收,不计入通过项。

7. 最终结论

类别 通过 说明
核心评测任务 1-3 3/3 ✅ 全部含正反用例硬件实测
扩展 USB-OTA+日志 ✅ 固件已部署,CDC 枚举待 CN13 接线
扩展 Modbus+Web ⏳ 固件就绪,ThreadX GNU port 移植深水区(已有 4 项移植缺陷证据),最后一步调度问题定位中
赞 收藏 评论0 发布时间:2026-10-10 23:58

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版