本帖最后由 ninerock 于 2024-5-3 19:39 编辑
本帖最后由 ninerock 于 2024-5-3 19:37 编辑
环境搭建(Windows环境)
具体的搭建流程可以参照零基础搭建小安派Windows 开发环境 - 小安派S1&M61教程合集 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)
要点:
1、工具为vscode,git
Visual Studio Code (VS Code)是一款强大且轻量级的代码编辑器,它支持多种编程语言,并且拥有丰富的扩展插件生态系统。VS Code 旨在提供一个快速、流畅的代码编写和调试体验,无论是前端开发、后端开发、数据科学还是机器学习,VS Code 都能提供高效的工具支持。
Git是一个强大的分布式版本控制系统,广泛应用于软件开发、文档管理等领域。它可以帮助团队更好地协作、管理项目,并提高开发效率。
vscode:用于代码的编辑,调试
git:用于sdk的拉取,拉取安信可Ai-M61-32S的相关源码
2、源码工程搭建
可以某个文件夹里找个空的位置点击 鼠标右键 选择 Open Git bash here
即可打开安装好的 git 工具。接着输入指令(可以复制运行):
git clone https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git -b master
拉取 M61 的 SDK 子模块
重点:进入AiPi-Open-Kits 中,用文本打开·gitmodules 文件url参数中的 github.com改成gitee.com:
SDK 中拉取子模块
逐条运行以下指令:
cd aithinker_Ai-M6X_SDK/
git submodule init
git submodule update
克隆适用 Windows 的编译工具链
就在 aithinker_Ai-M6X_SDK/
文件夹中拉取工具链,直接适用 git 工具拉取:
git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git -b master
3、设置编译路径
将应该的资源拉取完毕后,要将三个路径加入到电脑的环境变量当中,如下:
aithinker_Ai-M6X_SDK\toolchain_gcc_t-head_windows\bin
aithinker_Ai-M6X_SDK\tools\make
aithinker_Ai-M6X_SDK\tools\ninja
4、设置完成后,要检验环境是否成功搭建
打开 PowerShell 。在 PowerShell 输入:make -v
显示如下
输入:riscv64-unknown-elf-gcc -v
部分显示如下:
开始lighting
从下图所示,从examples文件夹中找到peripherals,进而找到gpio文件夹,选择gpio_input_output此文件作为初始模板,进行点灯程序的编写。
主要代码如下(main.c):
#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);
uint8_t i = 0;
while (1) {
for(uint8_t j = 0; j < 2; j++) {
bflb_gpio_set(gpio, gpio_group[i]);
printf("GPIO_PIN_i=%x\r\n", bflb_gpio_read(gpio, gpio_group[i]));
printf("yyds");
bflb_mtimer_delay_ms(200);
bflb_gpio_reset(gpio, gpio_group[i]);
printf("GPIO_PIN_i=%x\r\n", bflb_gpio_read(gpio, gpio_group[i]));
bflb_mtimer_delay_ms(200);
}
bflb_gpio_set(gpio, gpio_group[i]);
printf("GPIO_PIN_i=%x\r\n", bflb_gpio_read(gpio, gpio_group[i]));
bflb_mtimer_delay_ms(500);
bflb_gpio_reset(gpio, gpio_group[i]);
printf("GPIO_PIN_i=%x\r\n", bflb_gpio_read(gpio, gpio_group[i]));
i = (i + 1) % 3;//取模:i=0,1,2,0,1,2,........
}
利用make指令,对该点灯项目进行编译
出现如下图所示,证明编译成功
利用make flash COMX=COMxxx,进行程序烧录,其中xxx为Ai-M61-32S-kit连接到电脑的端口号
出现如上所示,表示烧录成功。
提示:
通过数据线连接Ai-M61-32S-kit与电脑,按住io2按键(烧录键)不动,再按EN(reset键)按键,再松开EN按键,在松开io2按键,即可以进行烧录。
实物验证如下: