bouffalolab / bl_mcu_sdk

bl_mcu_sdk is MCU software development kit provided by Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706, BL616/BL618, BL808 and other series of RISC-V based chips in the future.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

License

中文版

Introduction

BouffaloSDK is an MCU software development kit provided by the Bouffalo Lab Team, supports all the series of Bouffalo chips.

SDK Architecture

SDK Architecture

Code Directories

Name Description
bsp/board clock, pinmux, memoryheap and console init
bsp/common bsp common driver
components components
docs quick start、 api、demo doc
drivers/lhal bouffalo common peripherals drivers which support all the chips
drivers/soc bouffalo non-generic peripherals drivers
drivers/rfparam rf param
examples official samples
tools tools

LHAL Support

LHAL is a low level hal driver for common peripherals designed by Bouffalo Lab, in order to support all the Bouffalo chips with the same api . Also it is convenient for users to use and port to other platforms.

Note: means supported ; × means not supported; means supported but not tested ; - means no such peripheral.

Peripheral BL602/BL604 BL702/BL704/BL706 BL616/BL618 BL808
ADC
CAM - × × ×
CKS
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

Environment Setup

Toolchain

Command Line Development

Before compiling with the command line, you need to select the corresponding toolchain according to your operating system, configure it to the system environment variables, and install the make or ninja, then you can do the following. For the details, you can visit BouffaloSDK Environment Setup.

  • Go to the demo directory where you want to compile and there are main.c and Makefile files in that directory
  • Just execute the following command, take BL616 as an example
cd examples/helloworld
make CHIP=bl616 BOARD=bl616dk
  • If you use BL808 or BL606P, you need to add CPU_ID with m0 or d0.

If you want to use ninja, you can try:

cd examples/helloworld
make ninja CHIP=bl616 BOARD=bl616dk
cd examples/helloworld
make CHIP=bl808 BOARD=bl808dk CPU_ID=m0

CDK Development

TODO

Debug

Only supports debug with CKLink currently. See BouffaloSDK Debug Guide.

Firmware Download

Note that if you are using linux, linux will deny access to the serial device due to permission issues, so add your own username to dialout for easy to use, restart your linux and then take effect. Or add sudo before command.

usermod -aG dialout xxx # xxx is your own name
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
  • If you use BL808 or BL606P, you need to add CPU_ID with m0 or d0.
cd examples/helloworld
make flash CHIP=chip_name CPU_ID=m0 COMX=xxx # chip_name should be bl602/bl702/bl616/bl808/bl606p, COMX in Windows, /dev/ttyxxx in Linux

If flash using serial port rather than USB, different USB2TTL chips support different max baudrates, need to pay attention to when flashing.

chip baudrate
ch340 <= 500K
cp2102 <= 2M
ft232 <= 2M
bl702 <= 8M
bl616 <= 10M

Resources

Chip Manual

Chip Reference Manual and Chip Data Manual are listed on document

Documentation Tutorial

To get more BouffaloSDK documentation tutorial, like api manual or peripheral demo and so on, please visit:

Video Tutorial

TODO

Forum

Bouffalolab Developer Forum: https://bbs.bouffalolab.com/

About

bl_mcu_sdk is MCU software development kit provided by Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706, BL616/BL618, BL808 and other series of RISC-V based chips in the future.

License:Apache License 2.0


Languages

Language:C 83.7%Language:C++ 8.9%Language:CMake 4.9%Language:Python 1.2%Language:Shell 0.9%Language:Makefile 0.2%Language:Assembly 0.1%Language:Perl 0.1%Language:Jupyter Notebook 0.1%Language:Dockerfile 0.0%Language:Batchfile 0.0%Language:Tcl 0.0%Language:Fortran 0.0%Language:GDB 0.0%Language:HTML 0.0%Language:Cuda 0.0%Language:Objective-C++ 0.0%Language:Objective-C 0.0%Language:SmPL 0.0%