This repository has been archived on 2023-07-17. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
jzlv 356f258e83 [sync] sync from internal repo
* use nuttx libc, disable system libc
* use tlsf as default
* update lhal flash driver
* add example readme
* add flash ini for new flash tool
* add fw header for new flash tool
2023-01-17 21:04:07 +08:00
bsp [sync] sync from internal repo 2023-01-17 21:04:07 +08:00
cmake [sync] sync from internal repo 2023-01-17 21:04:07 +08:00
components [refactor][components] Restructure the catalogue, sync from internal repo 2023-01-17 20:48:21 +08:00
docs [doc] update rst 2022-12-27 19:48:12 +08:00
drivers [sync] sync from internal repo 2023-01-17 21:04:07 +08:00
examples [sync] sync from internal repo 2023-01-17 21:04:07 +08:00
tools [chore][openocd] add openocd config 2023-01-11 20:41:28 +08:00
.clang-format [style] disable afternamespace 2021-07-12 17:28:01 +08:00
.cproject [chore][eclipse] update memory and add build target 2022-12-07 09:50:54 +08:00
.gitignore [refactor] refactor mcu sdk framework, add BL702,BL616,BL808 CHIP support 2022-10-21 10:20:58 +08:00
.project [fix] fix project name 2022-12-02 18:15:22 +08:00
CKLink_BL616.launch [chore][eclipse] update memory and add build target 2022-12-07 09:50:54 +08:00
CKLink_BL702.launch [chore][eclipse] update memory and add build target 2022-12-07 09:50:54 +08:00
CKLink_BL808.launch [chore][eclipse] update memory and add build target 2022-12-07 09:50:54 +08:00
CMakeLists.txt [refactor] move std/port/startup into std dir, in order to free space for rf 2022-12-21 20:52:37 +08:00
LICENSE first commit 2021-04-13 19:27:30 +08:00
project.build [sync] sync from internal repo 2023-01-17 21:04:07 +08:00
README_zh.md [doc] update ds and rm url 2022-12-31 21:08:59 +08:00
README.md [doc] update ds and rm url 2022-12-31 21:08:59 +08:00
ReleaseNotes [doc] release sdk 1.4.4 2022-04-26 14:45:51 +08:00

License Release

中文版

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.0hal + 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
│   │   └── bl602
│   │   └── 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

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 bl mcu sdk 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

CDK Development

TODO

Debug

Only supports debug with CKLink currently. See bl mcu sdk Debug Guide.

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

Forum

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

License

bl mcu sdk 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
 */