# bt_simulation **Repository Path**: liudegui/bt_simulation ## Basic Information - **Project Name**: bt_simulation - **Description**: 行为树仿真演示项目,展示行为树在决策系统中的应用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-06 - **Last Updated**: 2026-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp, 行为树, 仿真, 示例代码 ## README # Embedded Device Startup Simulation: Serial vs Behavior Tree ## 概述 模拟嵌入式设备启动过程,对比串行模式与行为树模式的性能差异。 **目标平台**: 37MHz单核MCU + NandFlash (读取时间50-150ms) ## 快速开始 ```bash cd bt_simulation mkdir -p build && cd build cmake .. && make ./bt_simulation ``` ## 模拟参数 | 参数 | 值 | 说明 | |------|-----|------| | CPU频率 | 37MHz | 目标MCU规格 | | NandFlash读取 | 50-150ms | 平均100ms | | Flash等待比例 | 75% | CPU空闲时间 | | BT Tick周期 | 1ms | 协作式调度 | ## 文件加载模拟 模拟camera_preview.c的9个文件: - **5个校准文件**: ooc.bin, k.bin, b.bin, rmvc.bin, dead_pixel.bin - **2个Zoom表**: sigmod_table.bin, contrast_table.bin - **2个配置**: irsc_cfg.json, isp_cfg.json ## 架构对比 ### 串行模式 (当前实现) ``` 文件1加载(100ms) → 文件2加载(100ms) → ... → IRSC初始化 → ISP初始化 问题: Flash读取期间CPU空闲(~75%) ``` ### 行为树模式 (优化方案) ``` Root (Sequence) ├─ System Check ├─ Parallel Load (文件+配置解析并行) ├─ Init Modules (IRSC→ISP→Video) └─ Start Preview 优势: Flash等待时CPU执行其他任务 ``` ## 预期结果 ``` ==================================================================== PERFORMANCE COMPARISON ==================================================================== | Metric | Serial | BT Mode | Delta | |----------------|-----------|-----------|----------| | Total Time | 1533 ms | 797 ms | -48% | | CPU Busy | 452 ms | 462 ms | | | CPU Idle | 1081 ms | 335 ms | | | Tick Overhead | N/A | 12 ms | 1.5% | ==================================================================== CONCLUSION: HIGHLY RECOMMENDED (>40% improvement) ``` ## 项目结构 ``` bt_simulation/ ├── src/ │ ├── main.c # 主程序入口 │ ├── sim_serial.c # 串行模式实现 │ ├── sim_bt.c # 行为树模式实现 │ └── sim_common.c # 公共工具函数 ├── include/ │ ├── sim_common.h # 公共定义 │ └── c-behavior-tree.h ├── docs/ │ ├── 行为树改造可行性分析.md │ └── DEVICE_BUSINESS_SIMULATION.md └── test/ └── test_behavior_tree.c ```