0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

博流BL808三核编译运行上手指南

冬至子 来源:燕十三 作者:燕十三 2023-08-07 17:14 次阅读

bl808是三核异构架构,分为m0、lp、d0,使用的都是平台哥的RISC-V核,分别为E907/E902/C906,每个核需要单独编译并烧录到对应的位置,通过本文可以了解三核编译、烧录、运行。

1.简介

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、 EthernetSD/MMC、 SPIUARTI2C、 I2S、 PWM、 GPDAC/GPADCACOMP、 PIR、 Touch、IR remote、 Display 和 GPIO。

支持灵活的 GPIO 配置, BL808 最多可达 40 个 GPIO。

芯片规格包括如下:

1.jpg

2.RT-Thread 版本

BL808是三核异构架构,分别为m0、lp、d0,当前bsp已实现三核同时启动,三核分别采用了不同的RT-Thread版本

1.jpg

3.编译说明

BL808是三核异构架构,分别为m0、lp、d0,三核需要单独编译,并烧录到对应的位置。
3.1. m0/lp
工具链下载
下载risc-v的工具链,下载地址1或下载地址2

Windows下请使用使用[env工具][1],使用命令 tar -xvf Xuantie-900-gcc-elf-newlib-mingw-V2.6.1-20220906.tar.gz 解压交叉编译器,使用Windows下解压工具直接解压可能出现Windows下编译错误。

在rtconfig.py中将risc-v工具链的本地路径加入 EXEC_PATH 或通过 RTT_EXEC_PATH 环境变量指定路径

Windows:

set RTT_EXEC_PATH=C:UsersxxxxDownloadsXuantie-900-gcc-elf-newlib-x86_64-V2.6.1bin
Linux:

export RTT_EXEC_PATH=/opt/Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/bin
编译
Windows下推荐使用[env工具][1],在console下进入bsp/bl808目录中,选择需要编译的核心,m0或lp,运行:

cd bsp/bl808/m0
menuconfig
pkgs --update
如果在Linux平台下,可以先执行:

scons --menuconfig
它会自动下载env相关脚本到~/.env目录,然后执行

source ~/.env/env.sh
cd bsp/bl808/m0
pkgs --update
更新完软件包后,执行 scons -j10 或 scons -j10 --verbose 来编译这个板级支持包。或者通过 scons --exec-path="GCC工具链路径" 命令,在指定工具链位置的同时直接编译。

如果编译正确无误,会产生rtthread.elf、rtthread_m0.bin文件。其中rtthread_m0.bin需要烧写到设备中进行运行。

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

m0烧录配置文件:bsp/bouffalo_lab/bl808/m0/flash_prog_cfg.ini

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

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

1.jpg

bl808-d0编译完成后通过merge_rtsmart.py脚本,将hw.dtb.5M,spl_bl808_d0.bin,opensbi_v0.6.bin与rtthread_d0.bin,合成最终烧录文件whole_img_d0.bin,烧录地址为0x100000,否则无法启动。

1.jpg

3.3. 三核同时编译与烧录
可运行bsp/bouffalo_lab/bl808/build_bl808_all.sh依次编译m0、lp、d0核
可通过bsp/bouffalo_lab/bl808/flash_prog_cfg.ini烧录配置文件,同时烧录m0、lp、d0核。

1.jpg

正常启动

1.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2526

    文章

    48104

    浏览量

    740099
  • 协处理器
    +关注

    关注

    0

    文章

    70

    浏览量

    17996
  • GPIO
    +关注

    关注

    16

    文章

    1135

    浏览量

    50578
  • 硬件加速器
    +关注

    关注

    0

    文章

    38

    浏览量

    12637
  • RISC-V
    +关注

    关注

    41

    文章

    1904

    浏览量

    45047
收藏 人收藏

    评论

    相关推荐

    BL808 RT-Thread Wi-Fi驱动适配

    BL808 WiFi 属于 SOC 单芯片型无线 MCU,片上集成 WiFi 功能,移植 RT-Thread 过程中,需要使用 RT-Thread wlan 框架。
    的头像 发表于 12-04 11:38 411次阅读

    ModelSim快速上手指南

    ModelSim快速上手指南
    发表于 08-16 17:14

    资料推荐:nRF51822上手指南

    nRF51822上手指南
    发表于 06-12 13:48

    BL-HWC-G1 开发板试用】初上手(暂未使用openharmony)

    各位烧友好。已拥有的706_AVB开发板,以为整个开发环境相似,脑壳一热申请了该开发板,现在硬着头皮从零开始上手,如有不对之处,敬请
    发表于 10-24 23:23

    BL-HWC-G1 开发板试用】OpenHarmony编译和烧录

    本帖最后由 HonestQiao 于 2021-10-31 13:47 编辑 在上一篇【 BL-HWC-G1 开发板试用】开箱及编译烧录官方程序(
    发表于 10-31 13:45

    BL-HWC-G1 开发板试用】使用GPIO点灯(官方SDK)

    点灯。一、连接色LDF: BL-HWC-G1 开发板的介绍如下:我们使用GPIO12、GPIO14、GPIO11,以及GPIO11旁边的GND引脚,来连接一个
    发表于 11-22 19:06

    记录BL808 BSP添加GPIO驱动时踩到的一些坑及解决方案

    该文主要记录为 BL808 BSP 添加 GPIO 驱动时踩到的一些坑及解决方案。这是我第一次对接 RT-Thread BSP 的驱动,整理出本文避免之后踩到同样的坑,也希望能帮助到和我一样的新手
    发表于 02-03 14:36

    ModelSim快速上手指南

    ModelSim快速上手指南 快速上手四部曲:建立Project、引進HDL Files、Compile、模擬(Simulate/Loading and Run)
    发表于 05-08 17:29 0次下载

    适用于TI mmWave sensor的CCS在线调试脚本上手指南

    适用于TI mmWave sensor的CCS在线调试脚本上手指南
    发表于 10-28 11:59 0次下载
    适用于TI mmWave sensor的CCS在线调试脚本<b class='flag-5'>上手指南</b>

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南
    发表于 02-22 18:23 7次下载
    RT-Thread文档_RT-Thread 潘多拉 STM32L475 <b class='flag-5'>上手指南</b>

    RT-Thread文档_正点原子 nano STM32F103 上手指南

    RT-Thread文档_正点原子 nano STM32F103 上手指南
    发表于 02-22 18:24 3次下载
    RT-Thread文档_正点原子 nano STM32F103 <b class='flag-5'>上手指南</b>

    RT-Thread文档_正点原子阿波罗 STM32F429 上手指南

    RT-Thread文档_正点原子阿波罗 STM32F429 上手指南
    发表于 02-22 18:25 1次下载
    RT-Thread文档_正点原子阿波罗 STM32F429 <b class='flag-5'>上手指南</b>

    RT-Thread文档_Nordic BSP 上手指南

    RT-Thread文档_Nordic BSP 上手指南
    发表于 02-22 18:26 7次下载
    RT-Thread文档_Nordic BSP <b class='flag-5'>上手指南</b>

    RT-Thread文档_其他开发板 上手指南

    RT-Thread文档_其他开发板 上手指南
    发表于 02-22 18:27 0次下载
    RT-Thread文档_其他开发板 <b class='flag-5'>上手指南</b>

    记录为BL808添加GPIO驱动

    该文主要记录为 BL808 BSP 添加 GPIO 驱动时踩到的一些坑及解决方案。这是我第一次对接 RT-Thread BSP 的驱动,整理出本文避免之后踩到同样的坑,也希望能帮助到和我一样的新手。
    的头像 发表于 10-13 11:18 386次阅读