tpt-solutions/tpt-embedded-tools
GitHub: tpt-solutions/tpt-embedded-tools
为 ESP32 no_std 固件提供主机端确定性仿真、静态堆栈分析、结构化 trace 验证及硬件在环测试编排的嵌入式验证工具套件。
Stars: 0 | Forks: 0
# tpt-embedded-tools
`tpt-embedded-core` 的主机端验证、仿真和分析套件。
[](https://github.com/user/tpt-embedded-tools/actions/workflows/ci.yml)
[](LICENSE-MIT)
## 概述
`tpt-embedded-tools` 为 `tpt-embedded-core` 的 no_std ESP32 固件提供 CLI 原生、CI 优先的工具支持。虽然 `tpt-basestation` 面向最终用户,且 `tpt-embedded-core` 提供经过数学验证的固件,但本套件负责从第一行代码到部署阶段全程落实安全保障。
## 架构
```
tpt-embedded-tools/
├── libs/
│ ├── tpt-e-elf-parser/ # ELF/DWARF parsing for both Xtensa & RISC-V
│ ├── tpt-e-trace-codec/ # Binary wire schema for structured runtime traces
│ └── tpt-e-esp32-model/ # ESP32 peripheral/register data models
├── crates/
│ ├── tpt-e-simulator/ # Instruction-accurate ESP32 simulator
│ ├── tpt-e-probe/ # Host-side structured trace viewer/verifier
│ ├── tpt-e-stack-analyzer/ # Worst-case stack depth verifier
│ ├── tpt-e-hil-framework/ # Automated hardware-in-the-loop testing
│ ├── tpt-e-peripheral-prover/ # TRM-based register access verifier
│ ├── tpt-e-power-profiler/ # Code-to-physical-power correlator
│ └── tpt-e-invariant-checker/ # Cross-crate invariant static analyzer
└── .github/workflows/ # CI pipelines
```
## 当前状态
状态说明:🟢 MVP 已完成(真实逻辑,已通过测试验证) · 🟡 部分功能可用(存在真实代码路径,但有已知且已记录的缺陷) · 🔴 仅包含脚手架/桩代码(尚无功能性实现)。
| Crate | 状态 | 描述 |
|-------|--------|-------------|
| `tpt-e-elf-parser` | 🟡 | ELF/头文件/符号解析 + DWARF 提取功能可用;基于反汇编的调用图边尚未构建(边始终为空) |
| `tpt-e-trace-codec` | 🟢 | 用于运行时 trace 的二进制网络协议,支持往返编码/解码 |
| `tpt-e-esp32-model` | 🟢 | ESP32 外设/寄存器模型(定时器、GPIO、UART) |
| `tpt-e-simulator` | 🟡 | 解释器脚手架(取指/trace 循环、内存、外设)已连接,但 `execute_xtensa`/`execute_riscv` 尚不能解码或执行真实指令 |
| `tpt-e-probe` | 🟡 | 基于文件的 trace 摄取和不变式验证可用;串口摄取尚未实现 |
| `tpt-e-stack-analyzer` | 🟢 | 基于调用图的最坏情况堆栈深度分析,包括递归/中断服务程序(ISR)处理——这是测试最充分的 crate;动态分发检测尚未实现(参见 crate 文档) |
| `tpt-e-hil-framework` | 🟡 | 基于模拟传输的 HIL 测试编排可在 CI 中运行;真实硬件(espflash)模式尚未实现 |
| `tpt-e-peripheral-prover` | 🔴 | 仅包含 CLI 脚手架——寄存器验证尚未实现 |
| `tpt-e-power-profiler` | 🟡 | 功耗 CSV 摄取和扁平化能耗报告可用;trace/功耗时间戳关联以及基于函数的明细分析尚未实现 |
| `tpt-e-invariant-checker` | 🟡 | 采用简单文本 DMA/休休眠启发式算法的递归工作区扫描;尚不具备真正的静态/所有权分析功能 |
## 快速开始
```
# 构建所有 crates
cargo build --workspace
# 运行所有测试
cargo test --workspace
# 运行 clippy
cargo clippy --workspace -- -D warnings
# 检查格式
cargo fmt --all -- --check
```
## 设计决策
### 仿真器后端
仿真器在 `ExecutionBackend` trait 背后使用纯 Rust 解释器,使得未来添加 QEMU-FFI 后端时,无需重构 trace 消费者。
### 双 ISA 策略
Xtensa 和 RISC-V (RV32IMC) 均通过共享的 `Isa` trait/枚举提供支持,该 trait/枚举被 `tpt-e-elf-parser`、`tpt-e-simulator` 和 `tpt-e-stack-analyzer` 使用。
### ELF/DWARF 解析
我们使用 `goblin` crate 进行 ELF 解析,为 `EM_XTENSA` 和 `EM_RISCV` 架构提供稳健的支持。
### HIL 框架
硬件在环(HIL)测试使用 `espflash` 进行刷写/重置编排,镜像了 `tpt-basestation` 现有的串行传输模式。
## 许可证
根据以下任一许可证授权:
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))
- MIT License ([LICENSE-MIT](LICENSE-MIT))
由您自行选择。
标签:ESP32, Rust, 云安全监控, 仿真器, 可视化界面, 固件验证, 嵌入式开发, 硬件在环, 网络流量审计, 通知系统, 静态分析