- tags
- [IoT, 嵌入式, BK7258, 固件, 烧录]
- created
- 2026-04-13
- updated
- 2026-04-24
- sources
- [raw/snippets/bk7258-build/build-and-flash.md, raw/snippets/agora-rtsa/implement-transmission.md, raw/snippets/bk7258-build/iot-architecture-onboarding.md]
定义¶
BK7258 是博通集成(Beken)的双核 SoC,用于 AI 语音交互设备。固件基于 bk_aidk 框架编译,macOS 上需通过 Docker 完成交叉编译,烧录需要适配 tyutool 工具。
关键要点¶
- macOS 无法本地编译完整固件:BK 打包工具是 Linux x86-64 二进制,macOS 只能编出
app.elf,无法生成可烧录的all-app.bin。必须用 Docker(ubuntu:22.04 --platform linux/amd64) - ARM 工具链版本锁定:必须用
gcc-arm-none-eabi-10.3-2021.10,其他版本可能不兼容 - 双 CPU 架构:CPU0 运行应用(网络、RTC、AI 对话),CPU1 运行媒体处理(音视频编解码)
- RTC SDK = Agora RTSA Lite(agora-rtsa-sdk):BK7258 + RTSA Lite + ConvoAI 是 Agora 官方 Convo AI Device Kit R1 标准组合。声网/Agora 官方参考实现有海外/国内两个 mirror(同一家公司,代码相同):
AgoraIO-Community/Conversational-AI-IOT-Sample与Shengwang-Community/Conversational-AI-IOT-Sample。Sentino 自家 fork + 定制版sentino-jp/sentino-iot-sample(GitHub private,致谢 Shengwang-Community 版,详见 sentino-iot)。CPU0 跑 RTSA SDK 的连接生命周期 + 网络层;CPU1 出 OPUS 编码后的 16kHz/单声道/640B 帧给 CPU0 走 RTSA 发送 API - 编译产物:
all-app.bin(~4.4M,烧录用)和app_pack.rbl(~1.8M,OTA 用)
烧录¶
- 工具:tyutool(涂鸦开源),BK7258 对应设备类型
t5ai,使用 T5FlashHandler - 波特率:必须用 460800。921600 会因 USB 转串口芯片时钟分频误差导致波特率切换失败
- 手动复位:tyutool 默认通过 DTR/RTS 信号自动复位,BK7258 开发板不响应。需修改
get_bus()延长重试窗口,手动按 RST 键触发下载模式 - 擦除超时:默认 0.5 秒不够,64K 块擦除需增加到 5 秒
tyutool 修改清单(t5_flash.py)¶
| 位置 | 修改 | 原因 |
|---|---|---|
get_bus() |
300 次循环,每 50 次 reset,link check 10 次 | 留时间手动按 RST |
erase_custom_size() |
64K 超时 5s,4K 超时 2s | Flash 擦除慢 |
shake() 中 set_baudrate |
delay_ms 20→50 | 波特率切换需更多时间 |
串口波特率与 USB 转串口芯片¶
高波特率下 USB 转串口芯片(CH340/CP2102/FTDI)的时钟分频误差被放大:
- 每个 bit 持续时间更短(921600 下仅 1.09μs),相同的绝对误差占比更大
- 加上 USB 帧延迟(1ms)、驱动缓冲、信号衰减,高速下更容易采样错位
- 解决方案:降到 460800,或换 FTDI FT232 芯片的高质量串口线
在固件代码组织中的位置¶
BK7258 是 embedded-firmware-layering 四层架构中最底两层的硬件依赖:BSP 层 (platform_adapter/) 封装 ARMINO SDK + FreeRTOS + BK7258 硬件 API(Bsp_Wifi_* / Bsp_Ble_* / Bsp_Flash_* / Bsp_Mem_* / Bsp_Mutex_*),SDK 层 (rino_iot_sdk/) 通过函数指针调 BSP——业务代码看不到 BK7258 这个名字。换芯片只换 BSP 一层、业务零改动就是这个分层的回报。
→ 本页讲的"双 CPU 架构 / RTSA SDK / 编译产物 / tyutool 烧录"全部属于 BSP + SDK 边界,业务层不感知。
相关概念¶
- sentino-iot
- agora-rtc-voice
- agora-convoai-server
- agora-rtsa-sdk — 设备端实际跑的 Agora 轻量 C SDK;BK7258 + RTSA Lite + ConvoAI 是官方推荐组合
- embedded-firmware-layering — BK7258 在 BSP/SDK 层、业务零改动换芯片的分层架构
- iot-platform-fundamentals — BK7258 在 IoT 主流芯片厂方案(vs ESP32 / RTL87xx / MT76xx)中的位置
- iot-device-bootstrap — BK7258 + 4G 形态时的三芯片架构(SoC + 外挂 MCU + CAT1 模组)