[i=s] 本帖最后由 泰勒soc 于 2025-4-20 21:57 编辑 [/i]
[i=s] 本帖最后由 泰勒soc 于 2024-5-2 22:24 编辑 [/i]
前言
板子在路上,环境搭建弄了好久,与论坛之前的教程有小小的区别。
准备安装git,vscode,参考零基础搭建小安派Windows 开发环境
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=282
M61板子资料
https://docs.ai-thinker.com/ai_m61
环境搭建
M61的板子开发环境对应的SDK就是安信可gitee上的
git clone --recurse-submodules https://gitee.com/Ai-Thinker-Open/aithinker_Ai-M6X_SDK.git

下载下来,得到 aithinker_Ai-M6X_SDK
文件夹

如果tools和toolchain文件夹是空的,需要在博流SDK下载GCC 工具链toolchain_gcc_t-head_windows
git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git

在 aithinker_Ai-M6X_SDK/tools
文件夹下载BouffaloSDK 获取tools工具,把tools文件夹复制过去
git clone https://github.com/bouffalolab/bouffalo_sdk.git
该模组搭载BL602芯片作为核心处理器。只要是使用博流芯片的模组,就需要博流的BouffaloSDK

添加3个path环境变量

验证环境是否配置成功
在PowerShell 输入 make -v
输出版本信息

在PowerShell 输入 riscv64-unknown-elf-gcc -v
,输出版本信息

测试DEMO
example
文件夹内有很多项目

用 vscode
打开 helloworld
项目,打开终端命令行,输入命令 make clean
清除之前可能编译出现的 build,然后输入 make
命令编译

编译100%,输出编译信息 Built target combine
PS H:\aithinker_workspace\aithinker_Ai-M6X_SDK\examples\helloworld> make
[100%] Linking C executable build_out\helloworld_bl616.elf
Generate H:/aithinker_workspace/aithinker_Ai-M6X_SDK/examples/helloworld/build/build_out/helloworld_bl616.bin
[100%] Built target helloworld_bl616.elf
Built target combine
PS H:\aithinker_workspace\aithinker_Ai-M6X_SDK\examples\helloworld>
烧录程序
先按住 IO2 (烧录按键)这个按键不松手,再按下 EN (复位)按键,两个都松开,进入烧录代码模式。

终端执行命令 make flash COMX=COM4
串口号在设备管理器中查看或者在安信可串口助手查看

下载成功后,按下 en 进行复位。
点灯DEMO
新建一个自己的项目,与例程放在一起

更改项目名,此名为编译输出文件名
修改cmakelist.txt文件,project(gpio_input_output_rgb)括号内是项目名

代码如下,可自己更改
#include "bflb_gpio.h"
#include "board.h"
struct bflb_device_s *gpio;
uint32_t gpio_group[] = {GPIO_PIN_12, GPIO_PIN_14, GPIO_PIN_15};
int main(void)
{
board_init();
gpio = bflb_device_get_by_name("gpio"); // get gpio device
// set gpio pin mode
bflb_gpio_init(gpio, GPIO_PIN_12, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
bflb_gpio_init(gpio, GPIO_PIN_14, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
bflb_gpio_init(gpio, GPIO_PIN_15, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
bflb_gpio_reset(gpio, GPIO_PIN_12);
bflb_gpio_reset(gpio, GPIO_PIN_14);
bflb_gpio_reset(gpio, GPIO_PIN_15);
// bflb_gpio_init(gpio, GPIO_PIN_27, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
// bflb_gpio_init(gpio, GPIO_PIN_29, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
// bflb_gpio_set(gpio, GPIO_PIN_27);
// bflb_gpio_set(gpio, GPIO_PIN_29);
uint8_t i = 0;
while (1) {
for(uint8_t j = 0; j < 2; j++) {
bflb_gpio_set(gpio, gpio_group[i]);
bflb_mtimer_delay_ms(200);
bflb_gpio_reset(gpio, gpio_group[i]);
bflb_mtimer_delay_ms(200);
}
bflb_gpio_set(gpio, gpio_group[i]);
bflb_mtimer_delay_ms(500);
bflb_gpio_reset(gpio, gpio_group[i]);
i = (i + 1) % 3;
}
}
按照测试DEMO,编译,烧录,复位,查看效果
