Windows下使用CLion开发小安派

[复制链接]
查看1516 | 回复9 | 2023-8-15 20:25:46 | 显示全部楼层 |阅读模式

本帖最后由 传说哥 于 2023-8-17 12:59 编辑

本帖最后由 传说哥 于 2023-8-17 12:50 编辑

本帖最后由 传说哥 于 2023-8-17 12:40 编辑

本帖最后由 传说哥 于 2023-8-15 20:38 编辑

本帖最后由 传说哥 于 2023-8-15 20:28 编辑

本帖最后由 传说哥 于 2023-8-15 20:27 编辑

代码是如何组织的

参考坛内大佬的教程http://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=282,可以看出,小安派(BL618)的代码似乎是以make组织的。

但这只是表象,观察Makefile文件,make只负责找到sdk,设置环境变量,进行一些mcu,工具链的配置,并没有与c代码相关的东西。

SDK_DEMO_PATH ?= .
BL_SDK_BASE ?= $(SDK_DEMO_PATH)/../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

最后一行引入的project.build,位于sdk目录下,显示出最终代码是以cmake组织的。make只负责向cmake传递一些参数,构建好烧录指令。

image.png

而CLion对cmake的支持远好于make,要想在CLion下获得良好的开发体验,需要跳过make,直接让CLion直接接管cmake,把原来make的工作在cmake里实现,好在这很简单。

构建优雅的开发环境

这一步如果不想自己搞,可以直接下载我预先做好的压缩包。

https://www.123pan.com/s/3z9rVv-ywAHd.html 提取码: FtkP

目前小安派以git submodule的方式,把代码和sdk,以及linux下的工具链放到了一个仓库里,我不喜欢这种拖家带口的感觉。

另外很多教程都把gcc和make,ninja等放到PATH中,个人不认同这种做法,很多开发环境都对make等软件的版本有要求,把他们直接放到PATH中可能会影响其他软件的正常运行,也不利于工具链的版本切换。

下面就把sdk和工具链两者下载下来放到一起,由于以后不需要用git升级,所以删除.git文件夹。同时自带的是linux工具链,也用不到。注意这时bash脚本。

TODO 目前小安派SDK没有版本号,暂时直接拉最新版

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

这时配合一个bat,把gcc和SDK临时放到PATH中,这也是esp-idf的做法。

以后每次需要开发小安派,就先执行这个bat,把相关环境变量自动临时的配置好,这些配置只在打开的cmd内有效,关了就没了。

@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.

CLion内添加小安派工具链

CLion支持从一个bat脚本中导入工具链,以后每次build时,都会先执行这个脚本,按下图添加一个小安派的工具链,bat就是上一步的bat。

image.png

导入工程

以AiPi-Eyes_weather为例,直接用CLion打开工程目录。

由于项目里同时有Makefile和CMakeList,会让你选make还是cmake,选cmake即可。

image.png

工具链选刚刚新建的小安派。构建目录手动输入build,因为sdk中很多硬编码的地方,必须在build目录下构建。

image.png

修改CMakeList

由于我们跳过了make像cmake传参数的步骤,这直接构建cmake是会报错的,需要在cmakelist里完成原来make的工作,补全参数。

这些参数来自project.build和Makefile中。

可以修改COMX来改变下载串口

# 把这些加到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)
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
        )

下载

首先让开发板进入下载模式,按住burn,按一下reset,松开burn即可进入。

接好串口,target 选 flash,点击小锤子,就能下载了。

image.png

本帖被以下淘专辑推荐:

回复

使用道具 举报

爱笑 | 2023-8-15 20:52:17 来自手机 | 显示全部楼层
非常棒!写的很详细
用心做好保姆工作
回复 支持 反对

使用道具 举报

Mr.Tail | 2023-8-16 08:23:25 | 显示全部楼层
赞~ 官方出来挨打
回复 支持 反对

使用道具 举报

妖猊 | 2023-8-16 09:28:18 | 显示全部楼层
为大佬点赞,为大佬摇旗
回复 支持 反对

使用道具 举报

翁vjk | 2023-8-16 16:08:24 | 显示全部楼层
传说哥yyds
回复 支持 反对

使用道具 举报

KCrO | 2023-8-16 17:53:41 | 显示全部楼层
传说哥YYDS
回复 支持 反对

使用道具 举报

453100956 | 2023-8-17 14:06:21 来自手机 | 显示全部楼层
还得儿是传说哥
回复 支持 反对

使用道具 举报

bzhou830 | 2023-12-24 13:38:25 | 显示全部楼层
传说哥yyds
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

lijrgj | 2023-12-24 19:35:45 | 显示全部楼层
联想截图_20231224193051.png
传说哥按照你的来到构建烧录就出了问题
回复 支持 反对

使用道具 举报

1055173307 | 2024-4-30 22:10:16 | 显示全部楼层
佬我有个问题,make参数传入cmake文件的那一步可不可以用.cfg文件来实现呢,这样子的话不同工程只需要一份cfg文件就足够了
回复 支持 反对

使用道具 举报

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

本版积分规则