小安派R2初体验-开箱+环境搭建+编译烧录
小安派R2初体验-开箱+环境搭建+编译烧录
MGodmonkey开发板资料
- 小安派-Eyes-R2规格书:https://docs.ai-thinker.com/eyes-r
- 小安派教程参考:https://bbs.ai-thinker.com/forum.php?mod=forumdisplay&fid=189
- 购买链接:【安信可旗舰店】【Ai-Thinker旗舰店】
- 原理图&PCB:https://oshwhub.com/ai-thiner_openteam/aipi-eyes-r2_v1-0
- 测试源码&测试固件:【测试源码-gitee】【测试源码-github】【测试固件-点击下载】
- 烧录工具:【点击下载】
- 其他资料:
- 小安派环境搭建
1.简易开箱
-
怀着激动的心打开快递盒,里面赫然躺着小安派R2全家桶 :小安派R2开发板*1,摄像头模组-酷视CV031C50 *1,4寸触摸显示屏-优奕UE040WV *1,65dB咪头 *1,8R2W扬声器 *2,及连接线2条
-
小安派R2的接口一览图如下:接口非常齐全,I2C,SPI,USB,串口等常用的接口都应有尽有,并且为了适配其他配件,连麦克风,喇叭,40Pin显示屏接口也引出来了。
2.环境搭建
Windows环境推荐使用VScode + git + 编译工具 + 烧录工具,具体参考教程:https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=282&extra=page%3D1
-
安装VScode+VScode扩展+Git(参考上面教程,这里不再赘述了)
-
安装编译工具,推荐在根目录下新建
Aithinker_Ai
文件夹,如E:\Aithinker_Ai
,在路径栏上输入cmd回车进入终端,接着输入git clone https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git -b master
下载工具链到本地 -
下载子模块:用记事本打开
E:\Aithinker_Ai\AiPi-Open-Kits\.gitmodules
文件,修改github.com
为gitee.com
,国内gitte好用(如果有科学上网,这步不需要做) -
接着在
E:\Aithinker_Ai\AiPi-Open-Kits
目录下输入cmd进入终端 ,依次输入git submodule init
,git submodule update
-
由此克隆了
aithinker_Ai-M6X_SDK
,同样的步骤,在E:\Aithinker_Ai\AiPi-Open-Kits\aithinker_Ai-M6X_SDK
目录下也需要再执行一遍,输入cmd进入终端 ,依次输入git submodule init
,git submodule update
,git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git -b master
,确保E:\Aithinker_Ai\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\tools
目录下有内容 -
添加路径到系统环境中(此处也参考上面的教程,也不再赘述了)
1
2
3E:\Aithinker_Ai\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\toolchain_gcc_t-head_windows\bin
E:\Aithinker_Ai\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\tools\make
E:\Aithinker_Ai\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\tools\ninja -
重启电脑,然后验证
在桌面按住
shift
键点击鼠标右键
打开 PowerShell 。在 PowerShell 输入:1
make -v
成功输出信息:
1
2
3
4
5
6
7GNU 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.输入:
1
riscv64-unknown-elf-gcc -v
成功时输出信息:
1
2
3
4
5
6
7
8Using built-in specs.
COLLECT_GCC=D:\Desktop\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\toolchain_gcc_t-head_windows\bin\riscv64-unknown-elf-gcc.exe
COLLECT_LTO_WRAPPER=d:/desktop/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)
至此,小安派R2的编译环境已经搭建完成(真不容易,给自己一个大大的赞)
3.编译与烧录
-
用VScode打开
E:\Aithinker_Ai\AiPi-Open-Kits\AiPi-Eyes-Rx
文件夹,打开main.c
主程序文件 -
解析一下
main.c
代码
额,架构有点像ESP-IDF,也使用了FreeRTOS系统
-
board/board.h
:主要包含一些初试化,如系统时钟,串口,i2c引脚,i2s引脚初试化,更改串口波特率更改board/board.c
文件,如下注:如果更改了波特率,则编译后,下面的也需要进行修改,否则会烧录错误
-
lv_conf.h
:lvgl配置头文件,一般不需要进行修改,都是根据赠送的4寸屏定制的 -
lcd.h
:4寸屏幕驱动头文件 -
es8388_task.h
:ES8388音频芯片驱动头文件 -
auadc.h
:内置解码器头文件注:小安派-Eyes-R1带外置ES8388音频芯片,支持两路音频输入输出。
小安派-Eyes-R2采用内置CodeC,支持单路音频输入输出。
1 | // 定义检测按钮的任务线程的一些参数 |
小安派R2需要进行如下修改:
如果是编译带8388的开发板(AiPi-Eyes-R1)需要配置如下参数
修改
app_main.h
:#define DEF_USER_ES8388_EN (0)修改
proj.conf
1
2 set(CONFIG_SOLUTION_FUNC_AUDIO_AUADC 1)
set(CONFIG_SOLUTION_FUNC_AUDIO_AUDAC 1)
- 编译代码直接在终端输入
make
即可
如果编译遇到以下问题,原因是终端不支持cp指令,经过测试,Windows环境下cmd和powershell都不行,需要在git bash环境下编译
1
2
3
4
5 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
-
编译完成后,就可以进行烧录了,烧录方式有两种,使用串口烧录,或者软件烧录
-
用一个TTL下载器连接小安派,接线顺序如下:
TTL 工具 小安派 3.3V 3.3V TXD RX RXD TX GND GND -
插上TTL下载器到电脑,设备管理器查看TTL下载器端口号
-
串口烧录:终端输入
make flash COMX=COMx
进行烧录,如make flash COMX=COM5
,等到终端显示Please Press Reset Key!
,则短按一下RESET键,即靠近杜邦线的EN键,记住是短按一下,不要按太长,按太长大概率失败,而且简易不连接屏幕,摄像头等设备进行烧录
-
软件烧录
-
烧录工具下载:【点击下载】
-
烧录模式:烧录工具在烧录开始后,先按住 “下载按钮”再按一下“复位按钮”后松开,即可进入烧录模式。
-
打开
BLDevCube.exe
,选择BL616/618
,点击Finish
。 -
软件说明如下:
-
烧录上面的源码需要烧录4个固件,参考
flash_prog_cfg.ini
文件中的内容烧录,按照下面的说明依次下载完成4个固件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[boot2]
filedir = ./board/config/whole_img_bootloader.bin
address = 0x000000
[edata]
filedir = ./board/config/edata.bin
address = 0x3e0000
[partition]
filedir = ./build/build_out/partition*.bin
address = 0xE000
[FW]
filedir = ./build/build_out/AiPi-Eyes-Rx_$(CHIPNAME).bin
address = 0x10000需要烧录的固件全部在
E:\Aithinker_Ai\AiPi-Open-Kits\AiPi-Eyes-Rx\build\build_out
目录下,对应的固件依次是:- whole_flash_data.bin
- edata.bin
- partition.bin
- AiPi-Eyes-Rx_bl616.bin
-
-
-
烧录完成后按RESET键即可看到如下的内容,官方的示例中,如果按下IO2键则会进入扩音模式,即根据麦克风的声音在扬声器中实时播放,长按IO2键则会退出该模式
-