dsp2803xx-sim-examples 是 PilotSim DSP2803x 模拟器 SDK 的使用示例集合。每个示例对应 dsp_examples/ 目录中的一个真实 TI 固件,演示从加载到调试的完整工作流。
- Rust 示例:6 个完整示例,每个固件一个对应示例 + 一个时间旅行调试示范
- C 语言演示:独立 C 程序,直接调用
libpilot_sim.so通过 C FFI 头文件
- 学习如何使用模拟器 SDK
- 验证外设模型的正确性
- 作为新项目的起点模板
- CI/CD 测试用例参考
- Rust:1.70 或更高版本
- C 编译器(仅 C 演示):GCC 或 Clang
libpilot_sim.so:运行时需通过LD_LIBRARY_PATH指定动态库路径
运行示例前,需要设置 LD_LIBRARY_PATH 指向 libpilot_sim.so 所在目录:
# 进入示例目录
cd Examples
# 设置动态库路径并运行示例
export LD_LIBRARY_PATH=$(pwd)/../DSP2803xx_Sim/lib:$LD_LIBRARY_PATH
cargo run --example 01_basic_sim
cargo run --example 02_gpio_toggle
cargo run --example 03_sci_loopback
cargo run --example 04_cla_adc
cargo run --example 05_watchdog
cargo run --example 06_time_travel也可以不 export,直接在命令前指定:
LD_LIBRARY_PATH=../DSP2803xx_Sim/lib:$LD_LIBRARY_PATH cargo run --example 01_basic_simcd c_demo
make
./pilot_sim_demo注意:示例使用
dsp_examples/目录下的真实 TI 固件文件(.out)。如需替换为自己的固件,修改示例中的FW常量路径即可。
| # | 示例文件 | 固件 | 描述 |
|---|---|---|---|
| 01 | 01_basic_sim.rs |
acos.out |
最小工作流 — 创建模拟器、加载固件、单步执行、读取寄存器 |
| 02 | 02_gpio_toggle.rs |
Example_2803xGpioToggle.out |
运行 GPIO 翻转固件,读取 GPIO 端口状态 |
| 03 | 03_sci_loopback.rs |
Example_2803xScia_FFDLB.out |
运行 SCI-A FIFO 回环固件,读取串口寄存器 |
| 04 | 04_cla_adc.rs |
Example_2803xClaAdc.out |
运行 CLA+ADC 固件,读取 ADC 转换结果 |
| 05 | 05_watchdog.rs |
Example_2803xWatchdog.out |
运行看门狗固件,验证喂狗行为 |
| 06 | 06_time_travel.rs |
acos.out |
时间旅行调试示范 — 快照、回退、分支、检查点 |
| 文件 | 描述 |
|---|---|
c_demo/main.c |
直接调用 libpilot_sim.so 的 C 程序 |
c_demo/Makefile |
编译脚本 |
Examples/
├── Cargo.toml # 项目配置(包含示例依赖)
├── Cargo.lock # 依赖锁定文件
├── README.md # 本文档
├── .cargo/
│ └── config.toml # rpath 配置(libpilot_sim.so)
├── examples/ # Rust 示例源码
│ ├── 01_basic_sim.rs
│ ├── 02_gpio_toggle.rs
│ ├── 03_sci_loopback.rs
│ ├── 04_cla_adc.rs
│ ├── 05_watchdog.rs
│ └── 06_time_travel.rs
├── c_demo/
│ ├── main.c
│ └── Makefile
└── target/ # 编译输出目录
| 文件/目录 | 说明 |
|---|---|
.cargo/config.toml |
配置 rpath,确保运行时能找到 libpilot_sim.so |
examples/ |
6 个独立 Rust 示例,覆盖核心功能 |
c_demo/ |
展示如何通过 C FFI 直接使用模拟器引擎 |
每个示例的完整工作流:从 .repl 创建模拟器 → 加载对应固件 → boot → step → 读取结果。
示例 06 额外演示时间旅行调试的全部功能:tt_enable → snapshot → back/forward → seek → fork → checkpoint → export_history → gc → tt_disable。
Q:示例运行时提示找不到 libpilot_sim.so?
A:运行前需设置动态库搜索路径:
export LD_LIBRARY_PATH=/path/to/DSP2803xx_Sim/lib:$LD_LIBRARY_PATH或将 libpilot_sim.so 复制到 /usr/local/lib/ 并执行 sudo ldconfig。
Q:如何为示例提供自己的固件?
A:修改示例中的 load_firmware("your_firmware.out") 调用,替换为实际固件文件路径。
Q:可以只运行部分示例吗?
A:可以,使用 cargo run --example <example_name> 运行任意单个示例。
Q:C 演示如何编译?
A:在 c_demo/ 目录下运行 make,确保 GCC 和相关头文件可用。
dsp2803xx-sim— 核心 FFI 绑定 SDKdsp2803xx-sim-peripherals— 13 个即用型外设模型
本项目采用 MIT 许可证。详见 LICENSE 文件。
欢迎提交新的示例或改进现有示例!请遵循以下步骤:
- 在
examples/目录下创建新的示例文件(编号递增) - 在文件顶部添加文档注释说明功能
- 确保示例代码完整可运行
- 更新本 README 中的示例列表
- 提交 Pull Request
- 项目主页:Tachyon-sim
- 项目维护者:XYL
- 邮箱:mail@pilot-sim.cn
- 问题反馈:GitHub Issues