2021-06-26 15:03:25 +08:00
|
|
|
|
[![License](https://img.shields.io/badge/License-Apache--2.0-brightgreen)](LICENSE)
|
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
|
|
|
|
|
|
|
|
|
# 简介
|
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
**BouffaloSDK** 是 Bouffalo Lab 提供的软件开发包,支持博流智能所有系列芯片。
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
# SDK 架构
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
![SDK Architecture](BouffaloSDK.png)
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
# 代码目录
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
| 名称 | 描述|
|
|
|
|
|
|:---:|:------:|
|
|
|
|
|
| bsp/board | 包含时钟、引脚、内存管理和 console 的板级初始化 |
|
|
|
|
|
| bsp/common | 板级相关的常用外设驱动|
|
|
|
|
|
| components| 组件|
|
|
|
|
|
|docs | 快速上手、 api、demo 文档|
|
|
|
|
|
|drivers/lhal| 博流智能系列芯片通用外设驱动,支持所有系列芯片|
|
|
|
|
|
|drivers/soc| 博流智能系列芯片非通用外设驱动|
|
|
|
|
|
|drivers/rfparam| 射频参数配置|
|
|
|
|
|
|examples| 官方示例代码|
|
|
|
|
|
|tools| 工具 |
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
# LHAL 支持
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
|
|
|
|
**LHAL** 是博流为统一通用外设接口而设计的驱动库,代码精炼并且支持博流所有系列芯片,方便用户使用和移植到其他平台。
|
|
|
|
|
|
2022-10-21 11:42:28 +08:00
|
|
|
|
备注:**√** 表示已支持;**×** 表示未支持;**○** 表示已支持但未测试;**-** 表示没有该外设。
|
|
|
|
|
|
2022-11-18 16:47:16 +08:00
|
|
|
|
| 外设 | BL602/BL604 | BL702/BL704/BL706 | BL616/BL618 | BL808 |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
|:------------:|:--------------:|:--------------------:|:-----------:|:--------:|
|
|
|
|
|
| ADC | ○ | √ | √ | ○ |
|
2023-02-24 21:33:12 +08:00
|
|
|
|
| CAM | - | × | × | × |
|
2022-10-29 16:13:16 +08:00
|
|
|
|
| CKS | ○ | √ | √ | ○ |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
| DAC | ○ | √ | √ | ○ |
|
|
|
|
|
| DMA | ○ | √ | √ | √ |
|
2023-02-24 21:33:12 +08:00
|
|
|
|
| EFUSE | × | √ | √ | √ |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
| EMAC | - | √ | √ | √ |
|
2022-11-18 16:47:16 +08:00
|
|
|
|
| FLASH | √ | √ | √ | √ |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
| GPIO | ○ | √ | √ | √ |
|
2023-02-24 21:33:12 +08:00
|
|
|
|
| I2C | ○ | √ | √ | ○ |
|
|
|
|
|
| I2S | ○ | ○ | √ | ○ |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
| IR | ○ | √ | √ | ○ |
|
2023-02-24 21:33:12 +08:00
|
|
|
|
| MJPEG | × | × | √ | √ |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
| PWM_v1 | ○ | √ | - | - |
|
|
|
|
|
| PWM_v2 | - | - | √ | √ |
|
|
|
|
|
| RTC | ○ | √ | √ | √ |
|
|
|
|
|
| SEC_AES | ○ | √ | √ | √ |
|
|
|
|
|
| SEC_SHA | ○ | √ | √ | √ |
|
|
|
|
|
| SEC_TRNG | ○ | √ | √ | √ |
|
2022-10-29 16:13:16 +08:00
|
|
|
|
| SEC_PKA | ○ | √ | √ | √ |
|
2022-11-18 16:47:16 +08:00
|
|
|
|
| SPI | ○ | √ | √ | √ |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
| TIMER | ○ | √ | √ | √ |
|
2022-10-24 19:15:50 +08:00
|
|
|
|
| UART | √ | √ | √ | √ |
|
2022-10-21 11:42:28 +08:00
|
|
|
|
| USB_v1 | - | √ | - | - |
|
|
|
|
|
| USB_v2 | - | - | √ | √ |
|
2022-11-18 16:47:16 +08:00
|
|
|
|
| WDG | ○ | √ | √ | ○ |
|
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
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
在进行命令行编译之前,需要根据你的操作系统,选择对应的工具链,并配置到系统环境变量,并安装了 **make** 或者 **ninja** 工具,然后才能进行下面操作。更详细的搭建过程,参考 [BouffaloSDK 环境搭建](https://bl-mcu-sdk.readthedocs.io/zh_CN/latest/get_started/index.html).
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2022-10-21 10:17:49 +08:00
|
|
|
|
- 进入要编译的 demo 目录,且该目录下有 `main.c` 和 `Makefile` 文件
|
|
|
|
|
- 执行下面命令即可,以 **BL616** 为例
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
|
|
|
|
```
|
2022-10-21 10:17:49 +08:00
|
|
|
|
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 examples/helloworld
|
|
|
|
|
make CHIP=bl808 BOARD=bl808dk CPU_ID=m0
|
2021-08-25 10:49:37 +08:00
|
|
|
|
```
|
|
|
|
|
|
2022-12-07 10:19:27 +08:00
|
|
|
|
如果你想使用 **ninja** 编译,你可以尝试:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
cd examples/helloworld
|
2023-02-24 21:33:12 +08:00
|
|
|
|
make ninja CHIP=bl808 BOARD=bl808dk CPU_ID=m0
|
2022-12-07 10:19:27 +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-11-05 10:51:33 +08:00
|
|
|
|
## 调试
|
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
当前仅支持使用 CKLink 调试。详细参考 [BouffaloSDK 调试指南](https://bl-mcu-sdk.readthedocs.io/zh_CN/latest/get_started/debug.html)。
|
2022-11-05 10:51:33 +08:00
|
|
|
|
|
2022-11-18 16:47:16 +08:00
|
|
|
|
## 固件烧录
|
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
需要注意,如果使用的是 linux,linux 由于权限问题会拒绝访问串口设备,所以,为了方便后续使用,将你自己的用户名添加到 `dialout` 中。然后重启 linux 生效。或者在命令的前面加上 `sudo`。
|
2022-11-18 16:47:16 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
```
|
|
|
|
|
sudo usermod -aG dialout xxx # xxx 是你自己的用户名
|
|
|
|
|
```
|
2022-11-18 16:47:16 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
```
|
|
|
|
|
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
|
|
|
|
|
```
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
- 如果使用 **BL808** 或者 **BL606P** ,需要添加 **CPU_ID**
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
```
|
|
|
|
|
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
|
|
|
|
|
```
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
如果使用串口烧录而非 USB 烧录,不同的 USB2TTL 芯片支持的最高波特率不一样,烧录的时候需要注意。
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
| 芯片 | 波特率|
|
|
|
|
|
|:---:|:------:|
|
|
|
|
|
| ch340 | <= 500K |
|
|
|
|
|
| cp2102 | <= 2M |
|
|
|
|
|
| ft232 | <= 2M |
|
|
|
|
|
| bl702 | <= 8M |
|
|
|
|
|
| bl616 | <= 10M |
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
# 芯片手册
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2023-02-27 10:39:57 +08:00
|
|
|
|
芯片数据手册和参考手册见 [文档](https://github.com/bouffalolab/bl_docs)。
|
2021-08-25 10:49:37 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
# 文档教程
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
获取更多 BouffaloSDK 开发相关的教程,如环境搭建、 api 手册、外设 demo 等,请参考:
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
- [BouffaloSDK 文档教程](https://bl-mcu-sdk.readthedocs.io/zh_CN/latest/)
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
# 视频教程
|
2021-06-25 17:43:48 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
TODO
|
|
|
|
|
|
|
|
|
|
# 论坛
|
2022-10-21 10:17:49 +08:00
|
|
|
|
|
2023-02-24 21:33:12 +08:00
|
|
|
|
博流开发者交流论坛: [https://bbs.bouffalolab.com/](https://bbs.bouffalolab.com/)
|