Skip to content

Tachyon-sim/DSP28xxx-Sim-Examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dsp2803xx-sim-examples

Rust Version License

项目简介

dsp2803xx-sim-examplesPilotSim 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 指定动态库路径

运行 Rust 示例

运行示例前,需要设置 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_sim

运行 C 演示

cd 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 语言演示

文件 描述
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_enablesnapshotback/forwardseekforkcheckpointexport_historygctt_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 和相关头文件可用。


相关项目


许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。


贡献指南

欢迎提交新的示例或改进现有示例!请遵循以下步骤:

  1. examples/ 目录下创建新的示例文件(编号递增)
  2. 在文件顶部添加文档注释说明功能
  3. 确保示例代码完整可运行
  4. 更新本 README 中的示例列表
  5. 提交 Pull Request

联系方式

About

dsp2803xx- sim -examples 是 Pilotsim DSP2803x 模拟器 SDK 的使例集合。本项目演示如何利J用 dsp2803xx-sim和dsp2803xx- sim- peripherals 构建、配置和交互模拟TIDSP2803x芯片,帮助开发者快速上手并理解核心API的使用方法。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors