Skip to content

Latest commit

 

History

History
196 lines (143 loc) · 9.86 KB

File metadata and controls

196 lines (143 loc) · 9.86 KB

License

English Version

简介

BouffaloSDK 是 Bouffalo Lab 提供的 IOT 和 MCU 软件开发包,支持博流智能所有系列芯片,也是 bl_mcu_sdkbl_iot_sdk 的结合体。

SDK 架构

SDK Architecture

代码目录

名称 描述
bsp/board 包含时钟、引脚、内存管理和 console 的板级初始化
bsp/common 板级相关的常用外设驱动
components 组件
docs 快速上手、 api、demo 文档
drivers/lhal 博流智能系列芯片通用外设驱动,支持所有系列芯片
drivers/soc 博流智能系列芯片非通用外设驱动
drivers/rfparam 射频参数配置
examples 官方示例代码
tools 工具

LHAL 支持

LHAL 是博流为统一通用外设接口而设计的驱动库,代码精炼并且支持博流所有系列芯片,方便用户使用和移植到其他平台。

备注: 表示已支持;× 表示未支持; 表示已支持但未测试;- 表示没有该外设。

外设 BL602/BL604 BL702/BL704/BL706 BL616/BL618
ADC
CAM -
CKS
CSI - - -
DAC
DMA
EFUSE ×
EMAC -
FLASH
GPIO
I2C
I2S
IR
MJPEG × ×
PWM_v1 -
PWM_v2 - -
RTC
SEC_AES
SEC_SHA
SEC_TRNG
SEC_PKA
SPI
TIMER
UART
USB_v1 - -
USB_v2 - -
WDG

Wireless 支持

外设 BL602/BL604 BL702/BL704/BL706 BL616/BL618
WIFI4 - -
WIFI6 - -
BT - - ×
BLE ×
ZIGBEE - × ×

备注: 表示已支持;× 表示未支持; 表示已支持但未测试;- 表示没有该外设。

SBOM

Area Component(s) Original Repository Version
Multimedia xwebsocket https://github.com/OlehKulykov/librws 9-Jan-19
Networking MQTT-C https://github.com/LiamBindle/MQTT-C 1.1.6
Bluetooth Zephyr https://github.com/zephyrproject-rtos/zephyr/ 2.1.0
Bluetooth sbc https://android.googlesource.com/platform/external/bluetooth/bluedroid/ UnKnown
Networking LWIP https://github.com/lwip-tcpip/lwip 2.1.2
Networking PPP https://github.com/ppp-project/ppp Unknown. Managed by upstream LWIP
Utils cJSON https://github.com/DaveGamble/cJSON 1.7.18
WLAN hostapd, wpa_supplicant https://w1.fi/cgit/hostap v2.10-devel
BSP CherryUSB https://github.com/cherry-embedded/CherryUSB v1.5.2
BSP FatFS http://elm-chan.org/fsw/ff/ R0.15
BSP FreeRTOS-Kernel https://github.com/FreeRTOS/FreeRTOS-Kernel/ V10.6.2
BSP LittleFS https://github.com/littlefs-project/littlefs v2.8.2
BSP Nuttx https://github.com/apache/nuttx UnKnown
BSP TLSF https://github.com/mattconte/tlsf Mar 30, 2020
Graphics LVGL_v8 https://github.com/lvgl/lvgl 8.4.0
Graphics LVGL_v9 https://github.com/lvgl/lvgl 9.2.0
Networking mbedtls https://github.com/Mbed-TLS/mbedtls 2.28.2
Utils musl getopt https://git.musl-libc.org/cgit/musl UnKnown
Utils queue https://web.mit.edu/freebsd/head/sys/sys/queue.h 8.5
Utils tree https://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/sys/tree.h 1.8 (NetBSD), 1.7 (OpenBSD)

环境搭建

工具链

命令行编译

在进行命令行编译之前,需要根据你的操作系统,选择对应的工具链,并配置到系统环境变量,并安装了 make 或者 ninja 工具,然后才能进行下面操作。更详细的搭建过程,参考 BouffaloSDK 环境搭建.

  • 进入要编译的 demo 目录,且该目录下有 main.cMakefile 文件
  • 执行下面命令即可,以 BL616 为例
cd examples/helloworld
make CHIP=bl616 BOARD=bl616dk
  • 如果使用 BL602
cd examples/helloworld
make CHIP=bl602 BOARD=bl602dk

如果你想使用 ninja 编译,你可以尝试:

cd examples/helloworld
make ninja CHIP=bl616 BOARD=bl616dk

CDK 编译

TODO

调试

当前仅支持使用 CKLink 调试。详细参考 BouffaloSDK 调试指南

固件烧录

需要注意,如果使用的是 linux,linux 由于权限问题会拒绝访问串口设备,所以,为了方便后续使用,将你自己的用户名添加到 dialout 中。然后重启 linux 生效。或者在命令的前面加上 sudo

sudo usermod -aG dialout xxx # xxx 是你自己的用户名
cd examples/helloworld
make flash CHIP=chip_name COMX=xxx # chip_name should be bl602/bl702/bl616/bl808/bl606p, COMX in Windows, /dev/ttyxxx in Linux

如果使用串口烧录而非 USB 烧录,不同的 USB2TTL 芯片支持的最高波特率不一样,烧录的时候需要注意。

芯片 波特率
ch340 <= 500K
cp2102 <= 2M
ft232 <= 2M
bl702 <= 8M
bl616 <= 10M

Flash Cube 使用文档

参考 bouffalo_flash_cube doc

资源

芯片手册

芯片数据手册和参考手册见 文档

文档教程

获取更多 BouffaloSDK 开发相关的教程,如环境搭建、 api 手册、外设 demo 等,请参考:

视频教程

LCD 支持列表

LCD Support List

Cam Sensor 支持列表

Cam Sensor Support List

TODO

论坛

博流开发者交流论坛: https://bbs.bouffalolab.com/