🏠 home › concepts › bk7258-firmware
tags
[IoT, 嵌入式, BK7258, 固件, 烧录]
created
2026-04-13
updated
2026-05-11
sources
[raw/snippets/bk7258-build/build-and-flash.md, raw/snippets/agora-rtsa/implement-transmission.md, raw/snippets/bk7258-build/iot-architecture-onboarding.md, raw/snippets/bk7258-build/mass-production-knowledge-2026-05-11.md, raw/snippets/bk7258-build/mass-production-actual-implementation-2026-05-11.md]

定义

BK7258 是博通集成(Beken)的双核 SoC,用于 AI 语音交互设备。固件基于 bk_aidk 框架编译,macOS 上需通过 Docker 完成交叉编译,烧录需要适配 tyutool 工具。

关键要点

烧录

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)的时钟分频误差被放大:

量产烧录路径(与 tyutool 直写 Flash 是两件事)

tyutool 烧的是 bootloader / app 固件(裸 Flash 写)。三元组(每片唯一的 PID + UUID + SECRET)不能这么烧——存储在 Beken EasyFlash KV(key = triple_data,分区 0x7e9000),EasyFlash 有自己的 KV 元数据 + CRC,裸写裸 offset 会被认为损坏。必须由固件自己调 bk_set_env_enhance() 写 KV。

Sentino 项目当前实际路径(2026-05-11 修正):走厂测 AP(!FT@IOT1#)+ UDP 40000/40001 或厂测 MQTT 下发 thing.testing.burn 消息,由 factory_test.c:183 Factory_Set_Burn_Info_Callback 接收处理后写 EasyFlash(详见 triple-burning 路径 2)。也并行支持云端动态注册(路径 3,扫到 !FT@IOT0# 即走,连 mqtt-iot.sentino.jp:1883)。

Beken AT Server 框架在本项目当前承担AT+WLMAC 等出厂检测命令通道(验证 BK7258 efuse MAC 已正确烧入),不烧三元组。AT 命令路径是离线烧录通道的未来候选载体(解决工厂 WiFi 不能连外网的极端场景),不是当前烧三元组的实际机制。

详见 triple-burning 三种烧录范式与 iot-mass-production 产线工位配置。

MAC 不用烧——BK7258 出厂 efuse 已写入,AT+WLMAC? 直接读。

在固件代码组织中的位置

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 边界,业务层不感知。

相关概念