本帖最后由 cjkzwe 于 2024-5-6 18:07 编辑
本帖最后由 cjkzwe 于 2024-5-6 17:50 编辑
本帖最后由 cjkzwe 于 2024-5-6 17:42 编辑
本帖最后由 cjkzwe 于 2024-5-6 17:10 编辑
致谢
首先感谢安信可赠送的开发板,并感谢安信可为健壮国产MCU生态所做的贡献!
环境搭建及点灯
本次点灯项目使用Clion作为CMake项目的开发环境.博流提供的工具链中同时提供了makefile和CMake两种构建体系,本人习惯使用CMake作为一种更加强大简明的跨平台构建系统.
本文大部分参考了传说哥大佬提供的教程:Windows下使用CLion开发小安派,我实操下来发现有一些小细节需要补充和修正
接下来是详细的步骤
Step 1: 下载
1.下载工具链和SDK
使用git命令行将两者clone到你想要的地方.
git clone --recurse-submodules --shallow-submodules --depth=1 -b release/AiPi_Eyes_SDK https://github.com/Ai-Thinker-Open/aithinker_Ai-M6X_SDK
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/bouffalolab/toolchain_gcc_t-head_windows.git
rm -rf ./*/.git
rm -rf ./*/toolchain
2.下载Examples代码
下载AiPi_Eyes_DU所在的示例代码工程
git clone -b master https://github.com/Ai-Thinker-Open/AiPi-Open-Kits/tree/master
Step 2: 创建ENV配置文件
创建一个bat文件到工具链和SDK位置同一级目录下,这里为什么要创建可以参考大佬原文
bl618_env.bat
AiPi-Open-Kits
aithinker_Ai-M6X_SDK
文件内容
@echo off
set PATH=%~dp0toolchain_gcc_t-head_windows\bin;%PATH%
set BL_SDK_BASE=%~dp0\aithinker_Ai-M6X_SDK
set PATH=%BL_SDK_BASE%\tools\make;%PATH%
set PATH=%BL_SDK_BASE%\tools\ninja;%PATH%
set PATH=%BL_SDK_BASE%\tools\cmake\bin;%PATH%
set PATH=%BL_SDK_BASE%\tools\openocd;%PATH%
echo add SDK and toolchain to PATH successfully.
(可选)
我出于个人习惯将工具链下载进SDK文件夹中,那么对应的bat文件需要修改如下:
@echo off
set PATH=%~dp0\aithinker_Ai-M6X_SDK\toolchain_gcc_t-head_windows\bin;%PATH%
set BL_SDK_BASE=%~dp0\aithinker_Ai-M6X_SDK
set PATH=%BL_SDK_BASE%\tools\make;%PATH%
set PATH=%BL_SDK_BASE%\tools\ninja;%PATH%
set PATH=%BL_SDK_BASE%\tools\cmake\bin;%PATH%
set PATH=%BL_SDK_BASE%\tools\openocd;%PATH%
echo add SDK and toolchain to PATH successfully.
Step 1工具链clone到的位置也要改为SDK文件夹里面.
Step 3: 配置CLion
1.配置CLion工具链设置
根据图中所示步骤添加工具链,具体可看我参考的教程
如果不报错则配置成功
2.配置AiPi_Eyes_DU项目
右键项目文件夹选择用CLion打开
选择并配置CMake项目
注意这两项设置为图中所示,build为手打的硬编码
3.修改CMakeLists.txt
根据大佬教程在原有CMakeLists.txt第二行添加如下代码,经过实际测试,原有代码中add_custom_target里面需要删去一个"$",否则会编译时报错
# 把这些加到cmakelist第二行
set(CHIP bl616)
set(BOARD bl616dk)
set(CROSS_COMPILE riscv64-unknown-elf-)
set(CONFIG_USB_HS n)
set(CONFIG_ROMAPI y)
set(CONFIG_DEBUG y)
set(CONFIG_TLSF y)
set(BAUDRATE 115200)
set(COMX COM18)
# 注意!这里比原有大佬代码少了个"$" ($$ENV --> $ENV)
add_custom_target(flash
COMMAND $ENV{BL_SDK_BASE}/tools/bflb_tools/bouffalo_flash_cube/BLFlashCommand.exe
--interface=uart
--baudrate=${BAUDRATE}
--port=${COMX}
--chipname=${CHIP}
--cpu_id=${CPU_ID}
--config=${CMAKE_SOURCE_DIR}/flash_prog_cfg.ini
DEPENDS app combine
)
重新加载CMake项目不报错则成功
4.尝试编译和烧录
构建目标选择flash,按旁边小锤子按钮即可编译并烧录
如果手头没有开发板却想验证工具链可以将目标改为AiPi_Eyes_DU_bl616.elf进行只编译.
Step 4: 解决编译报错及烧录方法
1.编译报错
不出意外的话就出意外了,进行上述步骤后会报以下错误:
根据报错信息经搜索引擎查询可知这个错误已经有人踩过了:【祖传点灯】安信可Ai-M61-32S 踩坑记录
解决方法: 注释掉 aithinker_Ai-M6X_SDK/bsp/board/bl616dk/board.c 的第211行即可.(这里吐槽一下,这种问题本不应该有的,代码写的有点粗糙了)
2.烧录方法
用TypeC线连电脑,应该识别为CH340串口
根据设备管理器中分配的串口号修改CMakeLists.txt中的"set(COMX COM18)",COM18改为实际的串口号
(这里吐槽一下,这个开发板没有给USB外设专给一个typec口,而是选择放在了排针上...)
用手按住IO2丝印的按键,再按一下EN按键,之后全松开,这时进入了烧写模式,在Clion中选择目标为flash,按下编译即可执行烧录程序,如果失败可根据其中文提示排查.
Step 5: 运行效果展示
提示烧写成功后,再按一下EN按键复位芯片,如果正常即可看见开发板上的灯珠三色交替呼气闪烁.
(还是吐槽,这个开发板用了这个灯珠却连灯珠稍大功率的驱动电路都没有是不是有点浪费?不过无伤大雅...)