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` 的主机端验证、仿真和分析套件。 [![CI](https://github.com/user/tpt-embedded-tools/actions/workflows/ci.yml/badge.svg)](https://github.com/user/tpt-embedded-tools/actions/workflows/ci.yml) [![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](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, 云安全监控, 仿真器, 可视化界面, 固件验证, 嵌入式开发, 硬件在环, 网络流量审计, 通知系统, 静态分析