> 本文是《BK7258 适配 LiveKit 实战》系列第 2 篇。  

> 文章基于真实工程代码,聚焦可复现的迁移路径与调试方法。  

> 建议先阅读上一篇,再继续本篇内容。

>  BK7258 开发基于xiaozhi 工程,移植esp32 livekit 到工程下。

---

## 1. 对应架构文档哪一部分

启动与业务主流程

重点不是某个 API,而是系统从上电到可发起 LiveKit 连接的完整准备过程。

                                                        [启动与业务主流程]

---

## 2. 启动主链路(建议按这个顺序排查)

1. `main/app_main.c` 启动  

2. 板级资源初始化(时钟、日志、外设基础配置)  

3. 网络组件启动(Wi-Fi/配网)  

4. `system_manager` 接管系统状态  

5. 网络就绪后触发协议层进入连接流程

如果这条链路里任一环节状态没收敛,后面连接失败通常只是“结果”,不是“根因”。

---

## 3. 两个关键文件的职责分工

### `main/app_main.c`

- 系统入口

- 板级初始化

- 各组件注册与回调绑定

### `main/dialog_component/system_manager/system_manager.c`

- 系统状态机

- 事件总线

- 业务模块联动控制

迁移时常见错误是把业务逻辑塞回 `app_main`,导致状态分散、调试困难。

---

## 4. BK7258 迁移时要特别确认的 4 件事

1. **初始化时序**:网络与协议栈初始化顺序是否被破坏  

2. **事件线程**:系统事件在哪个线程回调,是否会阻塞  

3. **状态同步**:网络可用状态是否可靠传到协议层  

4. **恢复路径**:断网重连后是否会回到统一状态机

---

## 5. 启动阶段建议日志点

- `BOOT_START`

- `BSP_INIT_DONE`

- `NET_INIT_DONE`

- `WIFI_CONNECTED`

- `IP_READY`

- `SYSTEM_STATE_CHANGED`

- `LIVEKIT_CONNECT_TRIGGER`

这些日志点在第 9 篇会继续用于调试与测试回归。

---

## 6. 本篇结论

启动链路是 LiveKit 适配成功率的地基。  

只要 `app_main -> system_manager -> 协议层` 这条链路清晰,后续连接、协商、音频问题都会更好定位。

---

## 写在最后

 ESP32 livekit 项目github 仓库:GitHub - livekit/client-sdk-esp32: LiveKit Client SDK for ESP32 series chips. Easily enable real-time audio, video, and data for embedded projects. · GitHub

下一篇将继续展开:第 3 篇《连接全流程总览:Livekit Room/Engine/Signaling 的分层协作》。  

Logo

火山引擎视频云技术社区,是面向 AI 音视频开发者的技术交流平台。这里汇聚源自抖音、豆包等亿级 DAU 产品的 RTC、直播、点播、AI 媒体处理、音视频互动技术,提供接入指南、最佳实践、性能调优、场景案例、Demo 代码、开源项目、白皮书和 API 文档。社区汇聚官方工程师与一线开发者,为 AI 视频通话、数字人、AI 视频处理等应用的开发与落地提供技术支持。

更多推荐