游乐游手机版
首页/AI热点日报/热点详情

博流BL808三核芯片编译运行入门指南

类型:热点整理2026-07-18
BL808三核异构芯片包含m0、lp、d0核心,需分别编译并烧录。m0核引导lp和d0核运行,编译前需配置RISC-V工具链。d0核运行RT-Smart,需通过脚本合并镜像后烧录至指定地址。使用统一烧录配置文件可一次性烧录三核固件,启动后通过串口输出验证。

本教程将带你深入了解 BL808 三核异构架构的编译、烧录与启动流程,帮助你掌握 m0、lp、d0 三个核心的独立与协同工作方法。

1. 认识 BL808 三核异构架构

BL808 是高度集成的 AIoT 芯片组,具有 Wi-Fi/BT/BLE/Zigbee 等无线互联单元,包含多个 CPU 以及音频编码译码器、视频编码译码器和 AI 硬件翻跟斗,适用于各种高性能和低功耗应用领域。

BL808 系列芯片主要包含无线和多媒体两个子系统:

  • 无线子系统:包含一颗 RISC-V 32-bit 高性能 CPU(m0),集成 Wi-Fi/BT/Zigbee 无线子系统,可以实现多种无线连接和数据传输,提供多样化的连接与传输体验。
  • 多媒体子系统:包含一颗 RISC-V 64-bit 超高性能 CPU(d0),集成 DVP/CSI/H264/NPU 等视频处理模块,可广泛应用于视频监控、智能音箱等多种 AI 领域。

多媒体子系统组成部分如下:

  • NPU HW NN 协处理器 (BLAI-100),适用于人工智能应用领域
  • 摄像头接口
  • 音频编码译码器
  • 视频编码解码器
  • 传感器
  • 显示接口
  • 电源管理单元控制低功耗模式
  • 此外,还支持各种安全功能

外围接口包括 USB2.0、Ethernet、SD/MMC、SPI、UART、I2C、I2S、PWM、GPDAC/GPADC、ACOMP、PIR、Touch、IR remote、Display 和 GPIO。支持灵活的 GPIO 配置,BL808 最多可达 40 个 GPIO。

芯片规格如下:

2. RT-Thread 版本支持

BL808 是三核异构架构,分别为 m0lpd0,当前 BSP 已实现三核同时启动,三核分别采用了不同的 RT-Thread 版本。

3. 编译准备工作

3.1 工具链下载

下载 RISC-V 的工具链(下载地址1或下载地址2)。

  • Windows 平台:请使用 env 工具,使用命令 tar -xvf Xuantie-900-gcc-elf-newlib-mingw-V2.6.1-20220906.tar.gz 解压交叉编译器。注意:使用 Windows 下解压工具直接解压可能出现 Windows 下编译错误。
  • Linux 平台:解压到合适目录即可。

3.2 配置工具链路径

rtconfig.py 中将 RISC-V 工具链的本地路径加入 EXEC_PATH,或通过 RTT_EXEC_PATH 环境变量指定路径。

Windows 设置示例:

set RTT_EXEC_PATH=C:\Users\xxxx\Downloads\Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1\bin

Linux 设置示例:

export RTT_EXEC_PATH=/opt/Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/bin

小提示:建议使用环境变量方式设置,这样即便切换项目也无需修改 rtconfig.py 文件。

4. 编译各个核心

BL808 的三个核心需要单独编译,并烧录到对应的位置。

4.1 编译 m0 / lp 核

Windows 平台:推荐使用 env 工具,在 console 下进入 bsp/bl808 目录,选择需要编译的核心(m0 或 lp),运行:

cd bsp/bl808/m0
menuconfig
pkgs --update

Linux 平台:先执行以下命令初始化环境:

scons --menuconfig
source ~/.env/env.sh
cd bsp/bl808/m0
pkgs --update

更新完软件包后,执行以下命令编译:

scons -j10

或带详细信息的编译:

scons -j10 --verbose

也可以直接指定工具链路径并编译:

scons --exec-path="GCC工具链路径"

如果编译正确无误,会产生 rtthread.elfrtthread_m0.bin(或对应核心的 bin)文件。其中 rtthread_m0.bin 需要烧写到设备中。

⚠️ 注意:由于 BL808 为三核异构,lp 核、d0 核都是通过 m0 核启动的,必须正确烧录 m0 核才可以实现三核正常运行。

4.2 编译 d0 核

BL808-d0 运行在 S 态下,支持 RT-Smart,采用的交叉编译器为 riscv64-unknown-linux-musl-gcc,编译请参考 构建内核镜像 相关文档。

内核虚拟地址开始地址为 0x50000000

BL808-d0 编译完成后,需要通过 merge_rtsmart.py 脚本,将 hw.dtb.5Mspl_bl808_d0.binopensbi_v0.6.binrtthread_d0.bin 合成最终烧录文件 whole_img_d0.bin烧录地址必须为 0x100000,否则无法启动。

4.3 三核同时编译

可以运行脚本 bsp/bouffalo_lab/bl808/build_bl808_all.sh 依次编译 m0、lp、d0 核,实现一键编译所有核心。

5. 烧录固件

5.1烧录配置文件

m0 核的烧录配置文件位于:bsp/bouffalo_lab/bl808/m0/flash_prog_cfg.ini

可通过同一目录下的烧录配置文件同时烧录 m0、lp、d0三个核心的固件文件:

小提示:建议使用三核同时编译脚本生成所有 bin 文件后,再通过统一的烧录配置文件一次性烧录,避免遗漏。

6. 启动验证

烧录完成后重新上电,观察串口输出。正常启动的日志示例如下:

7. 常见问题

  • Q:编译时提示找不到工具链?
    A:请检查 RTT_EXEC_PATH 环境变量是否正确设置,或确认 rtconfig.py 中的 EXEC_PATH 路径是否正确。Windows 下推荐使用短路径且不含空格。
  • Q:只烧录了 m0 核,但 lp 和 d0 核没有启动?
    A:BL808 三核依赖 m0 核引导,但 lp 和 d0 的固件也必须烧录到对应分区。请检查烧录配置文件中是否包含了三个核心的 bin 文件,并且地址正确。
  • Q:d0 核编译后如何合并镜像?
    A:使用 merge_rtsmart.py 脚本,需要确保 hw.dtb.5Mspl_bl808_d0.binopensbi_v0.6.binrtthread_d0.bin 文件存在于正确目录下,运行脚本后生成 whole_img_d0.bin,烧录地址为 0x100000。
  • Q:Windows 下使用 env 工具解压工具链失败?
    A:请使用 env 工具自带的 tar 命令解压,不要使用第三方解压软件,否则可能导致文件权限或链接错误。
  • Q:编译 m0/lp 时出现 menuconfig 无法打开?
    A:检查是否已安装 Python 和 scons,并且在 env 工具的 console 下运行。Linux 下请先执行 scons --menuconfig 来自动下载 env 相关脚本。

8. 总结

通过本教程,你已经掌握了 BL808 三核(m0、lp、d0)的独立编译方法、工具链配置、烧录流程以及常见问题处理。实际操作时请务必按照核心依赖关系(m0 引导)和正确的烧录地址进行,确保三核协同工作正常。

来源:https://m.elecfans.com/article/2205879.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。