Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
risc-v_RISCV
博流_BL61x_BL808
博流RISC-V系列AIoT芯片RT-Thread上手指南
发布于 2023-05-07 15:06:56 浏览:2232
订阅该版
[tocm] rt-thread下bouffalo_lab bsp是针对博流智能[https://www.bouffalolab.com/](https://www.bouffalolab.com/) 的系列AIoT芯片,位于rt-thread/bsp/bouffalo_lab,目前有4个子目录包括, | | 芯片型号 | 内核 | | ---- | :----------------------- | ---------------------------------------- | | 1 | bl60x(bl602/bl604) | RISC-V SiFive E24 | | 2 | bl70x(bl702/bl704/bl706) | RISC-V SiFive E24 | | 3 | bl61x(bl616/bl618) | RISC-V T-Head E907 | | 4 | bl808 | RISC-V T-Head E902(lp)+E907(m0)+C906(d0) | 以上系列芯片都是RISC-V内核,内核有一些差别,最新的芯片如支持Wi-Fi6的bl616/bl618,三核异构的多媒体芯片bl808,都采用是平头哥的RISC-V核。 芯片相关资料可在[https://github.com/bouffalolab/bl_docs](https://github.com/bouffalolab/bl_docs) 下载,资料非常详细,有所有寄存器级说明。 # 1. rt-thread驱动适配 当前bsp采用bouffalo_lab最新LHAL 驱动库,驱动库与[https://github.com/bouffalolab/bouffalo_sdk](https://github.com/bouffalolab/bouffalo_sdk) (原bl_mcu_sdk)代码同步,当前commitid为:`e6e8da79a50aeb4fcb67ac380c3bd8885cd56faf`。 **LHAL** 是博流为统一通用外设接口而设计的驱动库,代码精炼并且支持博流所有系列芯片。 在众多小伙伴的一起支持下,目前已完成基本外设驱动适配,包括uart/gpio/i2c/spi/pwm/rtc/adc/wdt/hwtimer/flash,rt-thread驱动也是一套代码支持以上所有芯片。其他驱动也在适配中,有兴趣的小伙伴也可以一起参与提交PR,也可以直接与我(微信:flyingcys)联系。 | 驱动 | 支持情况 | 备注 | | :--- | :------- | :---------------- | | UART | 支持 | 默认波特率2000000 | | GPIO | 支持 | | | I2C | 支持 | | | SPI | 支持 | 支持DMA | | PWM | 支持 | | | ADC | 支持 | | | RTC | 支持 | | | WDT | 支持 | | | HWTIMER | 支持 | | | FLASH | 支持 | | 关注开源之夏活动的小伙伴也可以关注一下博流bsp,开源之夏 rt-thread社区的高阶项目之一"rt-thread上使用BL602/BL702芯片上支持WiFi、BLE、thread功能",需要完成"BL60X/BL70X的IoT通讯能力,完成BL602的WiFi、ble能力,BL702的BLE、thread通讯能力",可以点击以下链接。 [https://summer-ospp.ac.cn/org/prodetail/238bc0129?list=org&navpage=org](https://summer-ospp.ac.cn/org/prodetail/238bc0129?list=org&navpage=org) # 2. 编译 ## 2.1. 交叉编译器下载 不同的芯片需下载对应的toolchain,请至对应下载链接下载芯片的工具链: | 芯片型号 | 下载地址 | | ------------ | ------------ | | bl60x/bl70x | [Linux](https://gitee.com/bouffalolab/toolchain_gcc_sifive_linux)/[windows](https://gitee.com/bouffalolab/toolchain_gcc_sifive_windows) | | bl61x/bl808 | [T-Head官网](https://occ.t-head.cn/community/download?id=4073475960903634944)或[Linux](https://gitee.com/bouffalolab/linuxtoolchain_gcc_t-head)/[windows](https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows) | ## 2.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:\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 ``` ## 2.3. 编译 Windows下推荐使用[env工具][1],在console下进入bsp/bouffalo_lab/bl61x目录中,运行: ``` cd bsp/bouffalo_lab/bl61x menuconfig pkgs --update ``` 如果在Linux平台下,可以先执行: ``` scons --menuconfig ``` 它会自动下载env相关脚本到~/.env目录,然后执行 ``` source ~/.env/env.sh cd bsp/bouffalo_lab/bl61x pkgs --update ``` 更新完软件包后,执行 `scons -j10` 或 `scons -j10 --verbose` 来编译这个板级支持包。或者通过 `scons --exec-path="GCC工具链路径"` 命令,在指定工具链位置的同时直接编译。 如果编译正确无误,会产生rtthread.elf、rtthread.bin文件; 编译完成后自动调用`libraries/bl_mcu_sdk/tools/bflb_tools/bflb_fw_post_proc`对rtthread.bin进行打包处理以用于后续`bouffalo_flash_cube`工具烧录。 脚本会自动采用curl命令行方式下载`bflb_fw_post_proc`,如自动下载失败,可采用手工方式下载对应操作系统文件后保存至`libraries/bl_mcu_sdk/tools/bflb_tools/bflb_fw_post_proc` | 下载地址1 | [windows](https://raw.githubusercontent.com/bouffalolab/bl_mcu_sdk/master/tools/bflb_tools/bflb_fw_post_proc/bflb_fw_post_proc.exe)/[Linux](https://raw.githubusercontent.com/bouffalolab/bl_mcu_sdk/master/tools/bflb_tools/bflb_fw_post_proc/bflb_fw_post_proc-ubuntu)/[macos](https://raw.githubusercontent.com/bouffalolab/bl_mcu_sdk/master/tools/bflb_tools/bflb_fw_post_proc/bflb_fw_post_proc-macos) | | --------- | ------------------------------------------------------------ | | 下载地址2 | [bflb_fw_post_proc-win.tar.gz](https://gitee.com/flyingcys/bflb_tools/releases/download/v1.0.4/bflb_fw_post_proc-win.tar.gz)/[bflb_fw_post_proc-linux.tar.gz](https://gitee.com/flyingcys/bflb_tools/releases/download/v1.0.4/bflb_fw_post_proc-linux.tar.gz)/[bflb_fw_post_proc-macos.tar.gz](https://gitee.com/flyingcys/bflb_tools/releases/download/v1.0.4/bflb_fw_post_proc-macos.tar.gz) | | 下载地址3 | [bflb_fw_post_proc-win.tar.gz](https://github.com/flyingcys/bflb_tools/releases/download/v1.0.4/bflb_fw_post_proc-win.tar.gz)/[bflb_fw_post_proc-linux.tar.gz](https://github.com/flyingcys/bflb_tools/releases/download/v1.0.4/bflb_fw_post_proc-linux.tar.gz)/[bflb_fw_post_proc-macos.tar.gz](https://github.com/flyingcys/bflb_tools/releases/download/v1.0.4/bflb_fw_post_proc-macos.tar.gz) | # 3. 下载烧录 ## 3.1. 烧录工具下载 当前bsp必须使用`bouffalo_flash_cube-1.0.4`工具进行烧录,使用其他工作无法正常运行。 - 烧录工具下载地址1:[百度网盘](https://pan.baidu.com/s/1eG9pkxf3riAqQAu9aXiOjw?pwd=miv1) - 烧录工具下载地址2: [bouffalo_flash_cube-win.zip](https://gitee.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-win.zip)/[bouffalo_flash_cube-win.tar.gz](https://gitee.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-win.tar.gz) [bouffalo_flash_cube-linux.zip](https://gitee.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-linux.zip)/[bouffalo_flash_cube-linux.tar.gz](https://gitee.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-linux.tar.gz) [bouffalo_flash_cube-macos.zip](https://gitee.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-macos.zip)/[bouffalo_flash_cube-macos.tar.gz](https://gitee.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-macos.tar.gz) - 烧录工具下载地址3: [bouffalo_flash_cube-win.zip](https://github.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-win.zip)/[bouffalo_flash_cube-win.tar.gz](https://github.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-win.tar.gz) [bouffalo_flash_cube-linux.zip](https://github.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-linux.zip)/[bouffalo_flash_cube-linux.tar.gz](https://github.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-linux.tar.gz) [bouffalo_flash_cube-macos.zip](https://github.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-macos.zip)/[bouffalo_flash_cube-macos.tar.gz](https://github.com/flyingcys/bflb_tools/releases/download/v1.0.4/bouffalo_flash_cube-macos.tar.gz) ## 3.2. GUI方式下载 1. 连接好串口并在工具上选择对应的串口号 2. 打开对应芯片文件夹下的flash_prog_cfg.ini文件 3. 按住开发板上的boot按钮后重新上电,进入下载状态 4. 点击"Download"开始下载 ![bouffalo_flash_cube.jpg](https://oss-club.rt-thread.org/uploads/20230507/695cdc78d9d7a4b2c646492d605324c3.jpg.webp) ## 3.3. 命令行下载 命令行下载可使用`bsp/bouffalo_lab`目录下的`bouffalo_flash_cube.sh`脚本,输入`./bouffalo_flash_cube.sh bl616 /dev/ttyUSB1`,脚本会自动采用curl命令行方式下载`bouffalo_flash_cube`。 如自动下载失败,可采用手工方式下载对应操作系统文件后保存至`libraries/bl_mcu_sdk/tools/bflb_tools/bouffalo_flash_cube`目录。 其中: - bl616:芯片名称 - /dev/ttyUSB1:下载串口号,linux下为/dev/ttyUSBx或/dev/ttyACMx,windows下为COMx # 4. 运行 如果编译 & 烧写无误,当复位设备后,会在串口上看到RT-Thread的启动logo信息: ![rt-thread.jpg](https://oss-club.rt-thread.org/uploads/20230507/99322796e6c661da182f209c0b5dbb70.jpg) # 5. 支持开发板列表 | | 开发板型号 | | ----- | ---------------------- | | bl602 | BL602-IoT-3S/BL-HWC-G1 | | bl702 | Maix Zero Sense | | bl616/bl618 | M0S Dock/M0P Dock | | bl808 | M1s Dock | # 6. 后续推进计划 包括: - WiFi驱动适配 - SD卡驱动适配 - USB驱动适配 - I2S驱动适配 - 显示驱动适配 - BLE驱动适配 - 异构核间通信 等; 希望有更多小伙伴一起参与,一起学习RISC-V,一起学习IoT; 有对 **risc-v**、**rt-smart**、 **博流bsp**感兴趣的都可以加我微信(flyingcys)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
燕十三
这家伙很懒,什么也没写!
文章
12
回答
15
被采纳
0
关注TA
发私信
相关文章
1
studio能否支持risc-v的工程,包括调试。
2
移植rt-nano至risc-v时,无法在main函数创建用户线程
3
risc-v移植rtthread,程序莫名跳转到异常Exception
4
GD32VF103出现to free a bad data block:错误
5
rtt os riscv Store address misaligned异常
6
仅实现机器模式的芯片是否可以移植RT-THREAD系统
7
nano版本移植finsh(基于risc-v)
8
C++在多核下cout打印引起崩溃
9
RT-SMART求助
10
RT-Thread在RISC-V架构的芯片上有成熟的市场项目吗?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
keil_MDK
SFUD
rt_mq_消息队列_msg_queue
C++_cpp
at_device
ulog
本月问答贡献
出出啊
1516
个答案
342
次被采纳
小小李sunny
1440
个答案
289
次被采纳
张世争
793
个答案
171
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部