本帖最后由 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
等待克隆完成就 OK 了。
2、拉取M61的SDK子模块
<font color=red>在拉取 SDK 之前,需要修改一下子模块的来源,不然可能会拉取失败。</font>
进入 AiPi-Open-Kits
中,用文本打开 .gitmodules
文件 url 参数中的 github.com
改成 gitee.com
:
cd AiPi-Open-Kits
notepad .gitmodules
保存文件,接着执行以下命令:
git submodule init
git submodule update
等待执行完成
3、拉取 M61 SDK 中的子模块
<font color=red>注:M61 SDK 是小安派仓库的子模块,而 M61 SDK 自己也有子模块,所以也需要拉取,否则会编译不成功。</font>
(1) 进入到 SDK 中拉取子模块
依次输入如下指令:
cd aithinker_Ai-M6X_SDK/
git submodule init
git submodule update
等待克隆完成:
(2)克隆适用 Windows 的编译工具链
就在 aithinker_Ai-M6X_SDK/
文件夹中拉取工具链,直接使用 git 工具拉取:
git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git
等待克隆完成:
三、编译工具路径设置
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>),先打开电脑的环境变量窗口:
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、等待编译完成
速度取决于电脑CPU,耐心等待完成!
3、编译完成
常见问题记录
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】
若仍有问题,尝试继续如下操作:
- 到
.git\modules
目录
- 删除
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文件的特性有关)
参考的文章