简介:
本文档总结自B站教程“博流智能BL618开发教程1-一全国大学生嵌入式设计竞赛博流赛道系列培训”
视频链接:https://www.bilibili.com/video/BV1SP411S7Dq
目录
- 竞赛芯片、平台介绍
- 开发资料介绍
- 开发环境搭建
- 开发流程示范
一、竞赛芯片、平台介绍
硬件资源说明:
硬件原理图:
除了接在FLASH上的GPIO4到GPIO9以外的引脚都通过拓展接口做了引出。
拓展版:
二、开发资料介绍
开发包请选择VMG0开发板包
三、开发环境搭建
需要先安装git。
下载工具链:
打开你想要安装工具的目录,右键 - Git Bash Here
输入git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git
下载工具链
(Linux系统输入git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_linux.git
)
下载SDK:
按照上方下载工具链的方式,在git命令行窗口中输入git clone https://gitee.com/verimaker/bouffalo_sdk_vmg0.git
下载SDK
配置环境变量:
在Windows下方搜索框搜索“系统环境变量”,点击环境变量。
双击系统变量下的Path。
新增三个路径。
验证安装:
打开Windows命令行窗口,输入以下三条指令,若返回版本号则代表安装成功。
IDE的下载和使用:
可以使用Eclipse 或 VS Code作为IDE(建议使用VS Code)
下载Eclipse:
下载VS Code:
有需要的话可以下载调试器:
Eclipse导入工程:
打开Eclipse,workshop可以设为SDK根目录的上一级。(不可以设为SDK根目录)
点击左上角File – import – Existing Projects into Workspace – 选择SDK根目录(…\bouffalo_sdk_vmg0)
Eclipse编译和烧录程序:
Eclipse调试:
https://verimake.com/d/304-cklinkeclipse-bl618-g0
VS Code导入工程:
直接在SDK根目录下,右键 – 通过Code打开
新建分支作为自己开发的分支。原分支vmg0用于拉取网站上的更新。(更新指令:git pull)
VS Code编译和烧录程序:
打开VS Code终端
输入cd 样例工程路径
清除编译文件:输入make clean
编译:输入make CHIP=bl616 BOARD=bl616g0
(如果Makefile文件中CHIP和BOARD的默认值和上面的相同,可以直接输入make)
烧录:make flash COMX=com端口号
注意:烧录之前要先进入BOOT模式,按住三个按键在一排的中的RES和BOOT两个按键,先松开RES然后再松开BOOT就可以使得主控进入BOOT模式。然后按上面的指令烧写。
按一下板子上的RST,程序开始执行。
具体三种烧录方法:
https://verimake.com/d/310-bl618-g0
测试运行结果:
需要先去Microsoft Store中下载串口调试助手。
在烧录程序并且按下RST键后,打开串口调试助手。设置好串口号和波特率=2000000后,点击打开串口,右侧即可显示由单片机发送至电脑的信息。
注意:烧录程序时,不要在串口调试助手中打开串口,否则串口被占用,无法烧录。
四、开发流程示范
SDK目录结构:
代码风格:
所有外设都属于bflb_device_s类型的结构体,操作一种外设之前,先要获取它的结构体句柄。
获取结构体句柄有以下两种方式:
bflb_device_get_by_name通过name获取
bflb_device_get_by_id通过dev_type和idx获取
具体设备所对应的参数可以参考 bouffalo_sdk_vmg0\drivers\lhal\config\bl616\device_table.c
定时器+GPIO项目练习:
利用定时器中断修改GPIO引脚的值。
创建工程:
直接拷贝examples/peripherals/timer/timer_int
到examples/
目录下,并重命名为timer_int_gpio。
修改编译参数:
找到项目目录下的CMakeLists.txt,将project(timer_int)改为project(timer_int_gpio)
找到项目目录下的Makefile,将BL_SDK_BASE的值改为$(SDK_DEMO_PATH)/../../以指向SDK根目录相对于当前目录的路径。将BOARD的值改为bl616g0,从而使得编译时只需要输入make。
找到项目目录下的flash_prog_cfg.ini,将filedir的值改为./build/build_out/timer_int_gpio_$(CHIPNAME).bin
编写代码:
本项目仅使用timer0,因此将timer1相关的代码删除。
导入bflb_gpio.h头文件。
为gpio定义一个结构体指针。
初始化gpio引脚30、31、32。
定义三个变量分别对应三个引脚的值,在定时器中断函数中分别修改三个变量的值。
根据三个变量的值,为gpio三个引脚赋值。
程序编译并烧录后,单片机连接外置的逻辑分析仪,并打开相应软件,可以看到输出结果。