本帖最后由 singingbat 于 2024-5-3 15:57 编辑
感谢安信可让本人有机会第一次体验到Ai-M61-32S这块开发板,在此对于点灯的过程进行记录。
收货开箱
本次活动开发板由安信可洛阳工厂寄出,5月2日中午收到货。拆开包装,防尘袋里放着一块简约但不简单的精致的小板。
环境搭建
编辑器:vscode
代码托管:github、gitee
管理工具:make
vscode下载安装
VS code 是非常强大的代码编辑器,很多方便的功能都可以通过插件来实现,比如快速注释,代码跳转等功能。
下载连接: https://code.visualstudio.com/
下载完成,一路无脑Next安装即可,具体过程不在此赘述了。
vscode迷人的地方在于它丰富的插件。根据坛友的推荐,安装了
C/C++ :用来实现代码跳转。
Doxygen Documentation Generator :快速注释插件
vscode-icons :文件名识别 icon,可以给各种文件自动标识出图标
Git工具安装
git 工具 是必要的,拉取代码和管理代码的功能,Ai-M61-32S的源码全都是放在 git 远程仓库上,想要下载源码,必须使用 git 工具。
下载连接: https://github.com/git-for-windows/git/releases/download/v2.41.0.windows.3/Git-2.41.0.3-64-bit.exe
下载后安装过程也是无脑Next默认配置即可,过程不在此赘述了。
安装好后在文件夹下鼠标右键可看到Open Git Bash here
获取工程源码
克隆小安派工程
听说这个开发板是安信可之前推出的小安派的核心板,所以需要先拉取小安派的工程。
在我们希望存放工程的文件夹里找个空的位置点击 鼠标右键 选择 Open Git bash here
即可打开安装好的 git 工具。接着输入指令(可以复制运行):
git clone https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git -b master
静静等待克隆完成。
拉取M61模块
前一步完成后在目标文件夹下会有个 AiPi-Open-Kits
的文件夹。之前按照其它坛友的方法用文本打开 .gitmodules
文件 url 参数中的 github.com
改成 gitee.com
。
然后在 git 工具中分别执行:
cd AiPi-Open-Kits/
git submodule init
git submodule update
但总是失败,如下图。
后来参照其它人的方法,还是在目标文件夹下,将下面一段复制保存为bat文件后一键执行。
cd AiPi-Open-Kits/
echo [submodule "aithinker_Ai-M6X_SDK"]>%cd%\.gitmodules
echo path = aithinker_Ai-M6X_SDK>>%cd%\.gitmodules
echo url = https://gitee.com/Ai-Thinker-Open/aithinker_Ai-M6X_SDK.git>>%cd%\.gitmodules
echo branch = release/AiPi_Eyes_SDK>>%cd%\.gitmodules
pause
git submodule init
git submodule update
cd aithinker_Ai-M6X_SDK/
git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git -b master
git submodule init
git submodule update
pause
拉取M61的子模块和工具链
本来需要通过
cd aithinker_Ai-M6X_SDK/
git submodule init
git submodule update
拉取M61自己的子模块,同时还需要通过
git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git -b master
克隆windows工具链,但在上一步中一键拉取时已经自动完成了,所以本步跳过。
配置系统环境变量
所有都拉取完成之后,需要把三个路径加入到电脑的环境变量当中,分别是:
aithinker_Ai-M6X_SDK\toolchain_gcc_t-head_windows\bin
aithinker_Ai-M6X_SDK\tools\make
aithinker_Ai-M6X_SDK\tools\ninja
设置完成之后,重启电脑,然后验证路径是否成功设置。
win+R
,打开 cmd
。
输入:ake -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=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)
编译下载
在拉取的仓库里有个官方的gpio的demo
aithinker_Ai-M6X_SDK\examples\peripherals\gpio\gpio_input_output
配置修改
关联make
可以把它复制到另外的空文件夹中,然后配置一下它的 makefile
。
SDK_DEMO_PATH ?= .
#BL_SDK_BASE ?= $(SDK_DEMO_PATH)/../../../..
BL_SDK_BASE ?=D:\zwxProject\AiThinker\Ai_M61_32S\AiPi-Open-Kits\aithinker_Ai-M6X_SDK
export BL_SDK_BASE
CHIP ?= bl616
BOARD ?= bl616dk
CROSS_COMPILE ?= riscv64-unknown-elf-
# add custom cmake definition
#cmake_definition+=-Dxxx=sss
include $(BL_SDK_BASE)/project.build
把其中的 BL_SDK_BASE
的路径修改为 aithinker_Ai-M6X_SDK
,这样make时就能使用其中的 project.build
注释project.build
而这个 project.build
中也有需要修改的地方,需要屏蔽这三个地方。据说是Windows 平台下"AiPi-Open-Kits\aithinker_Ai-M6X_SDK\project.build"构建文件存在"cp"指令兼容性问题,如果开发板是小安派 R1,需将"cp"改为"copy",否则在行首加"#"注释即可。本次使用的是M61的板子,所以注释之。
否则会有如下报错
注释board.c
需要把 \AiPi-Open-Kits\aithinker_Ai-M6X_SDK\bsp\board\bl616dk\board.c
中的两处进行屏蔽。
否则会有报错
编程点灯
示例gpio_input_output演示的是gpio的输入,现在我们希望点灯需要使用输出模式。
查阅文档
查阅开发板文档
https://docs.ai-thinker.com/_media/en/ai-m61-32s-kit_v1.1.0%E8%A7%84%E6%A0%BC%E4%B9%A620230324.pdf
可知板子上的RGB灯的引脚
修改main.c
修改工程中的main.c
编译
选中文件之后,鼠标右键
选择 在集成终端中打开
,然后在终端输入:
make
开始编译源码,出现 Built target combine
就编译完成了。
如果出错了或其它原因重新编译,需要先清除。
make clean
工程下载
板子自带CH340串口芯片,在装好驱动的情况下插入电脑后在设备管理器中可以看到COM口。
按住烧录(BURN)按键并保持,按一下复位(RST)按键,松开烧录(BURN)按键即可进入板子的烧录模式。
烧录命令:make flash COMX=COM5
如果COM口被占用则会报错
运行效果
按下复位按键后串口及LED灯显示效果
串口显示
连接putty或mobaxterm等调试工具,设置COM号和波特率连接开发板,默认波特率是 2000000
,在 board.c
的 console_init()
中设置的。
点灯效果
<iframe frameborder="0" src="https://v.qq.com/txp/iframe/player.html?vid=j35482b8jua" allowFullScreen="true"></iframe>