2021-06-26 15:03:25 +08:00
|
|
|
|
[![License](https://img.shields.io/badge/License-Apache--2.0-brightgreen)](LICENSE)
|
|
|
|
|
[![Release](https://img.shields.io/github/v/tag/bouffalolab/bl_mcu_sdk?color=s&label=release)]()
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2021-06-25 18:12:14 +08:00
|
|
|
|
[English Version](README.md)
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
|
|
|
|
# 简介
|
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
**bl mcu sdk** 是 Bouffalo Lab 提供的 MCU 软件开发包,支持博流智能所有系列芯片。
|
|
|
|
|
|
|
|
|
|
# SDK 版本与芯片支持情况
|
|
|
|
|
|
|
|
|
|
注意1:**v1.4.5 版本之前的驱动库使用 1.0 版本(hal + std),之后的版本都将使用 2.0 版本 (lhal + soc)**。如果使用 **v1.4.5** ,请切换分支到 [release-v1.4.5](https://github.com/bouffalolab/bl_mcu_sdk/tree/release_v1.4.5)。
|
|
|
|
|
|
|
|
|
|
注意2:**soc** 由于是非通用的外设,代码风格和接口名还是延续之前版本,但是后续会更新到新的代码风格。
|
|
|
|
|
|
|
|
|
|
| 芯片 | v1.4.5 | latest |
|
|
|
|
|
|:-------------:|:--------:|:-------:|
|
2022-10-24 19:15:50 +08:00
|
|
|
|
|BL602/BL604 | √ | √ |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
|BL702/BL704/BL706 | √ | √ |
|
|
|
|
|
|BL616 | × | √ |
|
|
|
|
|
|BL808 | × | √ |
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
|
|
|
|
## LHAL 支持情况
|
|
|
|
|
|
|
|
|
|
**LHAL** 是博流为统一通用外设接口而设计的驱动库,代码精炼并且支持博流所有系列芯片,方便用户使用和移植到其他平台。
|
|
|
|
|
|
2022-10-21 11:42:28 +08:00
|
|
|
|
备注:**√** 表示已支持;**×** 表示未支持;**○** 表示已支持但未测试;**-** 表示没有该外设。
|
|
|
|
|
|
|
|
|
|
| 外设 | BL602/BL604 | BL702/BL704/BL706 | BL616 | BL808 |
|
|
|
|
|
|:------------:|:--------------:|:--------------------:|:-----------:|:--------:|
|
|
|
|
|
| ADC | ○ | √ | √ | ○ |
|
|
|
|
|
| CAM | - | × | × | × |
|
|
|
|
|
| DAC | ○ | √ | √ | ○ |
|
|
|
|
|
| DMA | ○ | √ | √ | √ |
|
|
|
|
|
| EFUSE | × | × | × | × |
|
|
|
|
|
| EMAC | - | √ | √ | √ |
|
|
|
|
|
| FLASH | × | × | × | × |
|
|
|
|
|
| GPIO | ○ | √ | √ | √ |
|
|
|
|
|
| I2C | ○ | √ | √ | ○ |
|
|
|
|
|
| IR | ○ | √ | √ | ○ |
|
|
|
|
|
| MJPEG | × | × | × | × |
|
|
|
|
|
| PWM_v1 | ○ | √ | - | - |
|
|
|
|
|
| PWM_v2 | - | - | √ | √ |
|
|
|
|
|
| RTC | ○ | √ | √ | √ |
|
|
|
|
|
| SEC_AES | ○ | √ | √ | √ |
|
|
|
|
|
| SEC_SHA | ○ | √ | √ | √ |
|
|
|
|
|
| SEC_TRNG | ○ | √ | √ | √ |
|
|
|
|
|
| SPI | ○ | √ | √ | ○ |
|
|
|
|
|
| TIMER | ○ | √ | √ | √ |
|
2022-10-24 19:15:50 +08:00
|
|
|
|
| UART | √ | √ | √ | √ |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
| USB_v1 | - | √ | - | - |
|
|
|
|
|
| USB_v2 | - | - | √ | √ |
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
|
|
|
|
# 代码框架
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
bl_mcu_sdk
|
|
|
|
|
├── bsp
|
|
|
|
|
│ ├── board
|
2021-11-22 10:59:40 +08:00
|
|
|
|
│ │ └── bl702
|
2022-10-21 10:17:49 +08:00
|
|
|
|
│ │ └── bl616
|
|
|
|
|
│ │ └── bl808
|
|
|
|
|
│ └── common
|
2021-06-25 17:43:48 +08:00
|
|
|
|
├── components
|
2022-10-21 10:17:49 +08:00
|
|
|
|
│ ├── bflog
|
|
|
|
|
│ ├── cherryusb
|
2021-06-25 17:43:48 +08:00
|
|
|
|
│ ├── fatfs
|
|
|
|
|
│ ├── freertos
|
2022-10-21 10:17:49 +08:00
|
|
|
|
│ ├── lua
|
2021-11-22 10:59:40 +08:00
|
|
|
|
│ ├── lvgl
|
|
|
|
|
│ ├── lwip
|
2022-10-21 10:17:49 +08:00
|
|
|
|
│ └── shell
|
2021-06-25 17:43:48 +08:00
|
|
|
|
├── docs
|
|
|
|
|
├── drivers
|
2022-10-21 10:17:49 +08:00
|
|
|
|
│ ├── lhal
|
|
|
|
|
│ └── soc
|
2021-06-25 17:43:48 +08:00
|
|
|
|
├── examples
|
2022-10-21 10:17:49 +08:00
|
|
|
|
│ ├── bflog
|
|
|
|
|
│ ├── fatfs
|
2021-11-22 10:59:40 +08:00
|
|
|
|
│ ├── freertos
|
2022-10-21 10:17:49 +08:00
|
|
|
|
│ ├── helloworld
|
|
|
|
|
│ ├── lua
|
2021-11-22 10:59:40 +08:00
|
|
|
|
│ ├── lvgl
|
2022-10-21 10:17:49 +08:00
|
|
|
|
│ ├── peripherals
|
|
|
|
|
│ └── shell
|
2021-06-25 17:43:48 +08:00
|
|
|
|
└── tools
|
2022-10-21 10:17:49 +08:00
|
|
|
|
└── cmake
|
|
|
|
|
└── kconfig
|
|
|
|
|
└── make
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
- **bsp/board** : 包含时钟、引脚、内存管理和 console 的板级初始化
|
|
|
|
|
- **bsp/common** : 存放一些板级相关的常用外设驱动代码
|
2021-11-22 10:59:40 +08:00
|
|
|
|
- **components** : 存放第三方库公共组件
|
2022-10-21 10:17:49 +08:00
|
|
|
|
- **docs** : 存放教程文档以及其他帮助信息
|
|
|
|
|
- **drivers/lhal** : 存放博流智能系列芯片通用外设驱动,支持所有系列芯片
|
|
|
|
|
- **drivers/soc** : 存放博流智能系列芯片非通用外设驱动,各个芯片独有的部分
|
2021-11-22 10:59:40 +08:00
|
|
|
|
- **examples** : 存放官方提供的示例代码
|
|
|
|
|
- **tools** : 存放编译下载相关的工具包
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
# 环境搭建
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
## 工具链
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
- windows 下使用 [riscv64-unknown-elf-gcc](https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows)
|
|
|
|
|
- Linux 下使用 [riscv64-unknown-elf-gcc](https://gitee.com/bouffalolab/toolchain_gcc_t-head_linux)
|
|
|
|
|
- 编译 linux 时使用 [linux-riscv64-linux-gcc](https://gitee.com/bouffalolab/linuxtoolchain_gcc_t-head)
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
## 命令行编译
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
在进行命令行编译之前,需要根据你的操作系统,选择对应的工具链,并配置到系统环境变量,并安装了 **make** 工具,然后才能进行下面操作。
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
- 进入要编译的 demo 目录,且该目录下有 `main.c` 和 `Makefile` 文件
|
|
|
|
|
- 执行下面命令即可,以 **BL616** 为例
|
|
|
|
|
- Linux 下第一次使用需要使用 `chmod` 配置 cmake 权限
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
|
|
|
|
```
|
2022-10-21 10:17:49 +08:00
|
|
|
|
cd bl_mcu_sdk
|
|
|
|
|
chmod +x tools/cmake/bin/cmake
|
|
|
|
|
cd examples/helloworld
|
|
|
|
|
make CHIP=bl616 BOARD=bl616dk
|
2021-08-25 10:49:37 +08:00
|
|
|
|
```
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
- 如果使用 **BL808** 或者 **BL606P** ,需要添加 **CPU_ID**
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
|
|
|
|
```
|
2022-10-21 10:17:49 +08:00
|
|
|
|
cd bl_mcu_sdk
|
|
|
|
|
chmod +x tools/cmake/bin/cmake
|
|
|
|
|
cd examples/helloworld
|
|
|
|
|
make CHIP=bl808 BOARD=bl808dk CPU_ID=m0
|
2021-08-25 10:49:37 +08:00
|
|
|
|
```
|
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
## CDK 编译
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
TODO
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
# 芯片手册
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
芯片数据手册和参考手册见 [文档](https://dev.bouffalolab.com/document)。
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
# 文档教程
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
获取更多 bl mcu sdk 开发相关的教程,如环境搭建、 api 手册、外设 demo 等,请参考:
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2022-10-21 11:42:28 +08:00
|
|
|
|
- [bl mcu sdk v2.0 文档教程](https://bl-mcu-sdk.readthedocs.io/zh_CN/latest/)
|
2022-10-21 10:17:49 +08:00
|
|
|
|
- [bl mcu sdk v1.4.5 文档教程](https://dev.bouffalolab.com/media/doc/sdk/bl_mcu_sdk_zh/index.html)
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
# 视频教程
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
- [BL706 MCU 开发系列视频教程](https://www.bilibili.com/video/BV1xK4y1P7ur)
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
# 论坛
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
|
|
|
|
博流开发者交流论坛: [https://bbs.bouffalolab.com/](https://bbs.bouffalolab.com/)
|
|
|
|
|
|
|
|
|
|
# 许可协议
|
|
|
|
|
|
|
|
|
|
**bl mcu sdk** 完全开源,遵循 Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2021 Bouffalolab team
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
*/
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
|
|
|
|
```
|