本帖最后由 起个名字好难啊 于 2023-12-26 17:27 编辑
一、简介
想必大家都看了很多关于爱星云的帖子,做嵌入式的同学肯定有这么个问题:爱星云很好,很厉害,可是我该怎么通过WB2或者M61/M62模组接入爱星云呢?
阿莫我啊,今天就被领导拎出来写这个帖子,让大家真正地用上爱星云。
在正式开始之前,说明一下:
本帖子最终让大家实现使用爱星云的App 控制开发板的RGB灯其中一盏,简单来说就是点灯!
二、前期准备
2.1 云平台准备
这次帖子的主要内容是教大家如何通过SDK接入爱星云,不包括账号的创建和App的构建,但是大家务必要熟悉爱星云开放平台的使用:
看完这四个帖子的内容,应该具有以下几个东西:
- 在开放平台有一个开发完成的灯的产品,及其一个默认的控制面板
- 至少有一个三元组,也就是有个设备(一个三元组等于一个设备)。
- 有个自己构建的App,并且可以登录。必须是自己构建的,不然配网的时候无法发现设备。
以下是我的信息:
灯的产品,控制面板默认:
三元组:
爱星云App:
App 只要构建一个就行了。
2.2 SDK准备
接入爱星云推荐使用安信可中间件SDK,这样的话,一套代码可以在不同的模组上运行。
中间件源码地址:https://github.com/Ai-Thinker-Open/aithinker_dev_open_sdk
源码相对较大,建议使用梯子克隆,而且不支持Windows 开发。
克隆SDK:
- git clone https://github.com/Ai-Thinker-Open/aithinker_dev_open_sdk.git
复制代码 更新编译工具链:
- bash .github_split/split_after.sh
复制代码 更新SDK及DEMO:
等待更新完成.....
更新SDK或安装依赖:
等待更新完成....
编译测试,在SDK根目录下运行:
- ./build.sh bl602 demo menuconfig
复制代码 直接保存设置后退出,然后执行编译指令:
- ./build.sh bl602 demo cn debug
复制代码 编译成功log:
...(编译过程的log)Generating BIN File to /home/seahi/workspace/aithinker_dev_open_sdk/os/bl602_sdk_lts/sdk/bl_iot_sdk/customer_app/dev_project/build_out/src.bin
记录了0+0 的读入
记录了0+0 的写出
0字节已复制,8.8943e-05 s,0.0 kB/s
Building Finish. To flash build output.
build output:
-rwxrwxr-x 1 324K Dec 26 14:34 /home/seahi/workspace/aithinker_dev_open_sdk/out/bl602/demo/bin/dev_project.bin
-rwxrwxr-x 1 5.0M Dec 26 14:34 /home/seahi/workspace/aithinker_dev_open_sdk/out/bl602/demo/elf/dev_project.elf
-rw-rw-r-- 1 5.2M Dec 26 14:34 /home/seahi/workspace/aithinker_dev_open_sdk/out/bl602/demo/map/dev_project.map
aithinker_dev_sdk build time is 0min 21s
说明:
中间件SDK当中还没有写关于烧录的指令,因此编译出来的固件需要到Windows 中对应的模组烧录工具进行烧录。
三、新建项目
3.1 新建远程仓库
如果网络OK的情况下,可以使用github 仓库,鉴于大部分同学都是国内用户,本文就使用gitee仓库来讲解,新建开源仓库并且初始化:
创建成功之后,回到SDK中,在“aithinker_dev_open_sdk/application/application_version”目录下,新建一个txt 文件,并且命名为:xxx_version.txt
xxx_version.txt 其中xxx为远程仓库名
在该txt 文件下添加以下信息:
name:<项目名称(与远程仓库名称保持一致)>
branch:<分支名称,通常为 master>
commit:<提交号,可以留空>
repository:<仓库地址,为:https地址>
切记,最后的新行是必需的,例如:
3.2 初始化新项目
回到SDK 根目录下,再次使用更新指令,就能在“application”文件夹中同步远程仓库:
再次进入到“application”目录:
- cd application
- ./application_init.sh my-aithinker_obj
复制代码./application_init.sh my-aithinker_obj/
是项目初始化指令,会在项目当中添加创建项目文件,添加后的文件如下:
初始化成功之后,有这些文件,证明项目已经新建成功
3.3 编译新项目
同样的编译之前需要进行配置后再编译,回到SDK 目录,运行指令,例如:
- cd ..
- ./build.sh bl602 my-aithinker_obj menuconfig
- ./build.sh bl602 my-aithinker_obj cn debug
复制代码 3.4 添加命令行烧录功能
虽然中间件SDK当中没有命令行烧录指令,但是SDK当中是有命令行烧录工具的,只需要把相应的参数填好就能实现烧录了,
Ai-WB2:
先更改烧录指令权限:
- sudo chmod 777 ./os/bl602_sdk_lts/tools/flash_tool/bflb_iot_tool-ubuntu
复制代码 打开"build.sh"脚本,在584行添加以下代码:
cd $root_dir/os/bl602_sdk_lts/tools/flash_tool && env SDK_APP_BIN=$root_dir/out/$chip/$application/bin/dev_project.bin \
SDK_BOARD="env" SDK_NAME="dev_project" \
BL_FLASH_TOOL_INPUT_PATH_cfg2_bin_input=$root_dir/out/$chip/$application/bin/dev_project.bin ./bflb_iot_tool-ubuntu \
--chipname=BL602 \
--baudrate=921600 \
--port=/dev/ttyUSB0 \
--pt=$root_dir/os/bl602_sdk_lts/tools/flash_tool/chips/bl602/partition/partition_cfg_2M.toml \
--boot2=$root_dir/os/bl602_sdk_lts/tools/flash_tool/chips/bl602/builtin_imgs/boot2_isp_bl602_v6.4_rc6/boot2_isp_release.bin \
--dts=$root_dir/os/bl602_sdk_lts/tools/flash_tool/chips/bl602/device_tree/bl_factory_params_IoTKitA_40M.dts \
--firmware=$root_dir/out/$chip/$application/bin/dev_project.bin
然后就能实现编译后烧录了,但是烧录还不能使用串口打断,需要按住boot 再复位。
3.4 把新项目的源码同步到远程仓库
直接进入项目根目录,例如:
- cd application/my-aithinker_obj/
复制代码 然后按照使用git 指令更新即可:
可能会出现“鉴权失败”的状况,只需要更新一下SSH 公钥或者输入用户名和密码即可。
四、预告
本来想着一篇写完,但是我现在已经头晕眼花了,万一没保存,又要重新写一次。我已经重写一次了,明天再更新爱星云的代码移植。各位同学先搭建中间件SDK!
|