【板子申请】Ai-M61-32S开发环境搭建(Windows环境)

[复制链接]
查看750 | 回复1 | 2023-11-16 01:41:08 | 显示全部楼层 |阅读模式

本帖最后由 Striver 于 2023-11-19 11:59 编辑

修正了图片问题

小安派Windows 开发环境搭建

一、准备工作

至少需要以下两个工具,由于比较简单,笔者不赘述

  • VSCode【代码阅读和编辑神器】
  • Git【强大的同性交友平台客户端(bushi)】

二、小安派源码工程克隆

<font color=red>注:此步默认已经配置好Git环境。</font>

1、克隆代码

终端输入如下指令,等待克隆完成:

git clone https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git

image.png

等待克隆完成就 OK 了。

2、拉取M61的SDK子模块

<font color=red>在拉取 SDK 之前,需要修改一下子模块的来源,不然可能会拉取失败。</font> 进入 AiPi-Open-Kits 中,用文本打开 .gitmodules 文件 url 参数中的 github.com 改成 gitee.com

cd AiPi-Open-Kits
notepad .gitmodules

image.png

保存文件,接着执行以下命令:

git submodule init
git submodule update

等待执行完成 image.png image.png

3、拉取 M61 SDK 中的子模块

<font color=red>注:M61 SDK 是小安派仓库的子模块,而 M61 SDK 自己也有子模块,所以也需要拉取,否则会编译不成功。</font>

(1) 进入到 SDK 中拉取子模块

依次输入如下指令:

cd aithinker_Ai-M6X_SDK/
git submodule init
git submodule update

等待克隆完成: image.png image.png

(2)克隆适用 Windows 的编译工具链

就在 aithinker_Ai-M6X_SDK/ 文件夹中拉取工具链,直接使用 git 工具拉取:

git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git

等待克隆完成: image.png

三、编译工具路径设置

1、配置环境变量

所有都拉取完成之后,需要把三个路径加入到电脑的环境变量当中,分别是:

aithinker_Ai-M6X_SDK\toolchain_gcc_t-head_windows\bin
aithinker_Ai-M6X_SDK\tools\make
aithinker_Ai-M6X_SDK\tools\ninja

而且需要把 aithinker_Ai-M6X_SDK\tools\make 路径上移到最高层(<font color=red>为了防止你之前安装过其他的gcc make之类的工具链导致冲突</font>),先打开电脑的环境变量窗口: image.png

2、验证是否成功设置

<font color=red>重新打开cmd或者其他终端</font>,输入如下命令:

make -v

成功输出信息:

GNU Make 4.2.1
Built for x86_64-w64-mingw32
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

输入:

riscv64-unknown-elf-gcc -v

成功时输出信息:

Using built-in specs.
COLLECT_GCC=riscv64-unknown-elf-gcc
COLLECT_LTO_WRAPPER=f:/programmer/gitdownload/at/aipi-open-kits/aithinker_ai-m6x_sdk/toolchain_gcc_t-head_windows/bin/../libexec/gcc/riscv64-unknown-elf/10.2.0/lto-wrapper.exe
Target: riscv64-unknown-elf
Configured with: /mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/./source/riscv/riscv-gcc/configure --target=riscv64-unknown-elf --host=i686-w64-mingw32 --with-gmp=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-mingw-V2.6.1/lib-for-gcc-mingw --with-mpfr=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-mingw-V2.6.1/lib-for-gcc-mingw --with-mpc=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-mingw-V2.6.1/lib-for-gcc-mingw --with-libexpat-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-mingw-V2.6.1/lib-for-gcc-mingw --with-libmpfr-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-mingw-V2.6.1/lib-for-gcc-mingw --with-pkgversion='Xuantie-900 elf newlib gcc Toolchain V2.6.1 B-20220906' CXXFLAGS='-g -O2 -DTHEAD_VERSION_NUMBER=2.6.1 ' --enable-libgcctf --prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/Xuantie-900-gcc-elf-newlib-mingw-V2.6.1 --disable-shared --enable-threads=posix --enable-languages=c,c++ --without-system-zlib --enable-tls --with-newlib --with-sysroot=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/Xuantie-900-gcc-elf-newlib-mingw-V2.6.1/riscv64-unknown-elf --with-native-system-header-dir=/include --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libgomp --disable-nls --disable-tm-clone-registry --src=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/./source/riscv/riscv-gcc --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-Os   -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-Os   -mcmodel=medany'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.0 (Xuantie-900 elf newlib gcc Toolchain V2.6.1 B-20220906)

四、编译天气站程序

1、进入仓库文件夹、编译

<font color=red>这里默认已经进入了AiPi-Open-Kits仓库目录</font>

cd AiPi-Eyes_weather
make

2、等待编译完成

image.png

速度取决于电脑CPU,耐心等待完成!image.png

3、编译完成

image.png

常见问题记录

1、拉取M61的SDK子模块失败

fatal: could not get a repository handle for submodule 'aithinker_Ai-M6X_SDK'

分析:这是很常见的错误。当上次 clone into 未完成就直接关闭,下次 git submodule update 就会报这个错。

这里默认已经进入了仓库目录 解决:将 aithinker_Ai-M6X_SDK路径下的 .git文件删掉即可

rm -rf ./aithinker_Ai-M6X_SDK【适用于unix终端】
rmdir /s aithinker_Ai-M6X_SDK【适用于windows系统的cmd】

若仍有问题,尝试继续如下操作:

  1. .git\modules目录
  2. 删除 aithinker_Ai-M6X_SDK文件夹

命令如下:

cd ./.git/modules/
rm -rf ./aithinker_Ai-M6X_SDK【适用于unix终端】
rmdir /s aithinker_Ai-M6X_SDK【适用于windows系统的cmd】

2、编译过程中提示系统找不到指定的文件

Built target combine
cp ./../aithinker_Ai-M6X_SDK/bsp/board/bl616dk/config/edata.bin build/build_out
process_begin: CreateProcess(NULL, cp ./../aithinker_Ai-M6X_SDK/bsp/board/bl616dk/config/edata.bin build/build_out, ...) failed.
make (e=2): 系统找不到指定的文件。
make: *** [../aithinker_Ai-M6X_SDK/project.build:75: build] Error 2

解决:打开 /aithinker_Ai-M6X_SDK/project.build 文件,按照图片指示在 CP 指令前加 #注释掉就行了(<font color=red>注意,应该加在该行首字符位置</font>,这个makefile文件的特性有关)

image.png

参考的文章

回复

使用道具 举报

bzhou830 | 2023-11-24 10:21:34 | 显示全部楼层
插个眼给园长看
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则