BL618开发笔记[1]-串口打印helloworld

发布时间 2023-08-17 05:47:28作者: qsBye

摘要

在博流智能(bouffalo)BL618单片机上通过串口打印helloworld.

平台信息

  • macOS
  • docker
  • 开发板:安信可Ai-M61-32S-Kit

安信可Ai-M61-32S-Kit开发板

Ai-M61 系列模组(下称模组)是由深圳市安信可科技有限公司开发的 Wi-Fi6 & 蓝牙双模模组,搭载BL618芯片作为处理器,支持Wi-Fi 802.11b/g/n/ax协议(WIFI6)和BLE 5.3协议。BL618芯片内置低功耗的32位RISC-V CPU,最高主频可达320M. 丰富的外围接口,包括DVP、MJPEG、Dispaly、Audio Codec、USB2.0、SDU、以太网(EMAC)、SD/MMC(SDH)、SPI、UART、I2C、I2S、PWM、GPDAC、GPADC、ACOMP和GPIO等。

Ai-M61-32S-Kit 是针对 Ai-M61-32S 模组设计的开发板。Ai-M61-32S 是由深圳市安信可 科技有限公司开发的 Wi-Fi 6+BLE5.3 模组,该模组搭载 BL618 芯片作为核心处理器,支 持 Wi-Fi 802.11b/g/n/ax 协议和 BLE 协议,支持 Thread 协议。BL618 系统包含一个带有 浮点单元、DSP 单元、高速缓存和存储器的低功耗 32 位 RISC-V CPU,最高主频可达 320M。
Ai-M61-32S 模组具有丰富的外设接口,具体包括 DVP、MJPEG、Dispaly、Audio Codec、 USB2.0、SDU、以太网(EMAC)、SD/MMC(SDH)、SPI、UART、I2C、I2S、PWM、GPDAC、 GPADC、ACOMP 和 GPIO 等。可广泛应用于音视频多媒体、物联网(IoT)、移动设备、 可穿戴电子设备、智能家居等领域。
Ai-M61-32S 模组 Sec Eng 模块支持 AES/SHA/PKA/TRNG 等功能,支持镜像加密和签名 启动,满足物联网领域的各种安全应用需求。

BL618芯片

 BL618芯片内置低功耗的32位RISC-V CPU,最高主频可达320M。
 丰富的外围接口,包括DVP、MJPEG、Dispaly、Audio Codec、USB2.0、SDU、以太网(EMAC)、SD/MMC(SDH)、SPI、UART、I2C、I2S、PWM、GPDAC、ACOMP和GPIO等。

构建docker编译环境镜像

[https://hub.docker.com/repository/docker/qsbye/build-env2]

#制作qsbye/build-env2:v2镜像
docker pull chinawrj/bouffalolab_build_bunch:latest
docker run -it -v $PWD:/srv --network=bridge chinawrj/bouffalolab_build_bunch:latest bash
mkdir /sdk
cp -r /srv/files/bouffalo_sdk /sdk
cp -r /srv/files/toolchain_gcc_t-head_linux /opt/riscv
echo "export PATH=\"$PATH:/opt/riscv/bin\""  >> ~/.bashrc
source ~/.bashrc
riscv64-unknown-elf-gcc -v
docker commit 2de04e00bda1 qsbye/build-env2:v2
docker push qsbye/build-env2:v2

实现

[https://blog.csdn.net/weixin_64069585/article/details/130900203]

项目目录

.
├── CMakeLists.txt
├── Makefile
├── README.md
├── build
│   ├── CMakeCache.txt
│   ├── CMakeFiles
│   ├── Makefile
│   ├── build_out
│   └── cmake_install.cmake
├── flash_prog_cfg.ini
├── main.c
└── proj.conf

代码

#include "bflb_mtimer.h"
#include "board.h"

#define DBG_TAG "MAIN"
#include "log.h"

int main(void)
{
    board_init();

    while (1) {
        LOG_F("hello world fatal\r\n");
        LOG_E("hello world error\r\n");
        LOG_W("hello world warning\r\n");
        LOG_I("hello world information\r\n");
        LOG_D("hello world debug\r\n");
        LOG_T("hello world trace\r\n");
        LOG_RF("hello world fatal raw\r\n");
        LOG_RE("hello world error raw\r\n");
        LOG_RW("hello world warning raw\r\n");
        LOG_RI("hello world information raw\r\n");
        LOG_RD("hello world debug raw\r\n");
        LOG_RT("hello world trace raw\r\n");
        bflb_mtimer_delay_ms(1000);
    }
}

编译&烧录

  1. 编译
    sdk中的project.build文件是编译必须的,所以需要复制整个sdk目录.
docker run --rm -it -v $PWD:/srv qsbye/build-env2:v2 bash -c "cp -r /sdk /srv/software/bouffalo_sdk && cd /srv/software/bouffalo_sdk/examples/helloworld && make CHIP=bl616 BOARD=bl616dk"

  1. 烧录
    打开$PWD/software/bouffalo_sdk/tools/bflb_tools/bouffalo_flash_cube/BLFlashCube-macos工具,
    加载工程文件夹中的flash_prog_cfg.ini文件,然后会自动配置烧录固件的路径.
    烧写固件是需要先按下开发板烧录按键IO2同时再短按复位按键EN.

效果

  • 波特率:2000000 bps