bsp | ||
cmake | ||
components | ||
docs | ||
drivers | ||
examples | ||
tools | ||
utils | ||
.clang-format | ||
.cproject | ||
.gitignore | ||
.project | ||
CKLink_BL616.launch | ||
CKLink_BL702.launch | ||
CKLink_BL808.launch | ||
CMakeLists.txt | ||
LICENSE | ||
project.build | ||
README.md | ||
README_zh.md | ||
ReleaseNotes |
Introduction
bl mcu sdk is an MCU software development kit provided by the Bouffalo Lab Team, supports all the series of Bouffalo chips.
SDK Versions & Chip Support
Note1:drivers before v1.4.5 use v1.0(hal + std), the later version will use v2.0 (lhal + soc)。If you want to use v1.4.5, please checkout your branch to release-v1.4.5.
Note2:due to the non-generic peripherals, the code style and interface name in soc are still the previous version, but will be subsequently updated to the new code style。
CHIP | v1.4.5 | latest |
---|---|---|
BL602/BL604 | √ | √ |
BL702/BL704/BL706 | √ | √ |
BL616/BL618 | × | √ |
BL808 | × | √ |
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 | ○ | √ | √ | ○ |
IR | ○ | √ | √ | ○ |
MJPEG | × | × | √ | √ |
PWM_v1 | ○ | √ | - | - |
PWM_v2 | - | - | √ | √ |
RTC | ○ | √ | √ | √ |
SEC_AES | ○ | √ | √ | √ |
SEC_SHA | ○ | √ | √ | √ |
SEC_TRNG | ○ | √ | √ | √ |
SEC_PKA | ○ | √ | √ | √ |
SPI | ○ | √ | √ | √ |
TIMER | ○ | √ | √ | √ |
UART | √ | √ | √ | √ |
USB_v1 | - | √ | - | - |
USB_v2 | - | - | √ | √ |
WDG | ○ | √ | √ | ○ |
Code Framework
bl_mcu_sdk
├── bsp
│ ├── board
│ │ └── bl702
│ │ └── bl616
│ │ └── bl808
│ └── common
├── components
│ ├── bflog
│ ├── cherryusb
│ ├── fatfs
│ ├── freertos
│ ├── lua
│ ├── lvgl
│ ├── lwip
│ └── shell
├── docs
├── drivers
│ ├── lhal
│ └── soc
├── examples
│ ├── bflog
│ ├── fatfs
│ ├── freertos
│ ├── helloworld
│ ├── lua
│ ├── lvgl
│ ├── peripherals
│ └── shell
└── tools
└── cmake
└── kconfig
└── make
- bsp/board : including clock, pinmux, memoryheap and console init
- bsp/common : including bsp common driver
- components : including third-party components
- docs : including docs
- drivers/lhal : including bouffalo common peripherals drivers which support all the chips
- drivers/soc : including bouffalo non-generic peripherals drivers
- examples : including samples
- tools : including compiler tools
Environment Setup
Toolchain
- riscv64-unknown-elf-gcc toolchain used in windows.
- riscv64-unknown-elf-gcc toolchain used in linux.
- linux-riscv64-linux-gcc toolchain used for compiling linux code.
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, then you can do the following.
- Go to the demo directory where you want to compile and there are
main.c
andMakefile
files in that directory - Just execute the following command, take BL616 as an example
- The first time you use it on Linux, you need to use
chmod
to configure the cmake permissions
cd bl_mcu_sdk
chmod +x tools/cmake/bin/cmake
cd examples/helloworld
make CHIP=bl616 BOARD=bl616dk
- If you use BL808 or BL606P, you need to add CPU_ID with m0 or d0.
cd bl_mcu_sdk
chmod +x tools/cmake/bin/cmake
cd examples/helloworld
make CHIP=bl808 BOARD=bl808dk CPU_ID=m0
CDK Development
TODO
Debug
Only supports debug with CKLink currently. See bl mcu sdk debug chapter.
Firmware Download
We recommend you to use this BL DevCube and download firmware with serial.
Resources
Chip Manual
Chip Reference Manual and Chip Data Manual are listed on document
Documentation Tutorial
To get more bl mcu sdk documentation tutorial, like api manual or peripheral demo and so on, please visit:
Video Tutorial
Flash Tool
In addition to using CK-link, J-link and command line programming, it also supports graphical programming tools. Graphical programming tools provided by Bouffalolab:
Forum
Bouffalolab Developer Forum: https://bbs.bouffalolab.com/
License
bl mcu sdk is completely open source and follows the Apache License 2.0 open source license agreement. It can be used in commercial products for free and does not require public private code.
/*
* Copyright (c) 2022 Bouffalolab team
*
* SPDX-License-Identifier: Apache-2.0
*/