LV01-01-AliOSThings-09-源码与编译-07-手动添加组件

本文主要是源码与编译——手动添加组件的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
Windows版本 windows11
Ubuntu版本 Ubuntu22.04的64位版本
VMware® Workstation 16 Pro 16.2.3 build-19376536
终端软件 MobaXterm(Professional Edition v23.0 Build 5042 (license))
点击查看本文参考资料
分类 网址 说明
官方网站 阿里云 阿里云官网主页
阿里生活物联平台 生活物联网平台(飞燕平台)主页
AliGenie 天猫精灵开放平台AliGenie主页
阿里物联网平台 阿里物联网平台主页
Bluetooth 技术网站 蓝牙协议规范什么的可以来这里找
Telink Telink | Chips for a Smarter IoT (telink-semi.com)
Telink中文官网
开发手册 AliOS Things开发指南 AliOS Things开发指南,这里是最新版本,可以直接从官网找到
AliOS Things开发指南 AliOS Things应用开发指南,这里应该是3.3版本的完整开发文档
AliOS Things开发指南(3.0) AliOS Things应用开发指南,这里应该是3.0版本的完整开发文档
生活物联网平台开发文档 生活物联网平台(飞燕平台)开发文档
《设备端开发指南》
Wi-Fi IoT品类定义与功能开发 天猫精灵IoT开放平台——Wi-Fi IoT品类定义与功能开发
硬件平台 mk3080 WiFi开发板 WiFi开发板使用指南-阿里云开发者社区
esp8266开发板 一个教程:ESP8266-NodeMCU开发板详解-太极创客 (taichi-maker.com)
TLSR8258 Datasheet Datasheet for Telink BLE + IEEE802.15.4 MultiStandard Wireless SoC TLSR8258
参考资料 AliOS Things 3.0 应用开发指南 这个只是一篇参考文章,里面是一些环境搭建相关的,可以参考
IP知识百科 - 华为 (huawei.com) IP的一些相关知识点
点击查看相关文件下载
分类 网址 说明
蓝牙规范相关文档 Core Specification 5.2 核心规格 5.2,该规范定义了创建可互操作的Bluetooth 设备所需的技术。
《Core_v5.2.pdf》
Mesh Model(v1.1) 本Bluetooth 规范定义了模型(以及它们所需的状态和消息),这些模型用于在mesh 网络中的节点上执行基本功能,超出了Bluetooth Mesh 配置文件 规范中定义的基础模型。
本规范包括定义跨设备类型标准功能的通用模型,以及支持关键mesh 场景的模型,如照明控制、传感器、时间和场景。
《MshMDL_v1.1.pdf》
Mesh Profile(v1.0.1) 该Bluetooth 规范定义了基本要求,以实现可互操作的mesh 网络解决方案,用于Bluetooth 低能量无线技术。
《MshPRFv1.0.1.pdf》
Mesh Device Properties 本规范包含Bluetooth Mesh 配置文件 和Bluetooth Mesh 模型规范所要求的设备属性的定义。
但是跟之前的有些区别,我主要看的之前的版本:《MMeshDeviceProperties_v1.2.pdf》
GATT Specification Supplement GATT Specification Supplement | Bluetooth® Technology Website。
好像可以在线看:《GATT Specification Supplement》
Assigned Numbers GATT的一些类型定义可以在这里找。
AliOS Things alios-things/AliOS-Things Gitee上的AliOSThings SDK源码仓库
alibaba/AliOS-Things GitHub上的AliOSThings SDK源码仓库
天猫精灵蓝牙Mesh协议栈 alibaba-archive/genie-bt-mesh-stack GitHub上的天猫精灵蓝牙Mesh协议栈源码仓库。
之前是在alibaba/genie-bt-mesh-stack这个仓库。
写笔记的时候最新提交为faf523618a6a2560090fc423222b9db80984bb7a
蓝牙Mesh设备开发指南 阿里云生活服务平台开发手册——蓝牙设备开发一节中的内容

前面了解到AliosThings有很多的组件,我们接下来了解一下如何自己手动添加组件。

一、查看有哪些组件

SDK里面有哪些组件可以使用?

1
aos list comp -a

我们其实可可以在menuconfig中配置,但是我们自己创建的工程,默认使用的组件是最少的,所以我们可能就需要自己手动添加一些组件了,下面就来看一下如何添加命令行工具组件(cli)吧。

二、手动添加cli组件

1. 方式一:在aos.mk直接添加

我们找到工程源码目录中的aos.mk文件,它的内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
NAME := helloworld_mk3080

$(NAME)_MBINS_TYPE := app
$(NAME)_VERSION := 1.0.1
$(NAME)_SUMMARY := helloworld demo
$(NAME)_SOURCES := maintask.c appdemo.c

$(NAME)_COMPONENTS += osal_aos

GLOBAL_DEFINES += AOS_NO_WIFI

$(NAME)_INCLUDES += ./

# components added by include c header file in the source code. DO NOT EDIT!
$(NAME)_COMPONENTS_CUSTOMIZED :=

# add components name manually here if you want to import some components
$(NAME)_COMPONENTS_CUSTOMIZED +=

# tell build system to add components above. DO NOT EDIT!
$(NAME)_COMPONENTS += $($(NAME)_COMPONENTS_CUSTOMIZED)

我们修改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
NAME := helloworld_mk3080

$(NAME)_MBINS_TYPE := app
$(NAME)_VERSION := 1.0.1
$(NAME)_SUMMARY := helloworld demo
$(NAME)_SOURCES := maintask.c appdemo.c

$(NAME)_COMPONENTS += osal_aos

GLOBAL_DEFINES += AOS_NO_WIFI

$(NAME)_INCLUDES += ./

# components added by include c header file in the source code. DO NOT EDIT!
$(NAME)_COMPONENTS_CUSTOMIZED :=

# add components name manually here if you want to import some components
$(NAME)_COMPONENTS_CUSTOMIZED += cli

# tell build system to add components above. DO NOT EDIT!
$(NAME)_COMPONENTS += $($(NAME)_COMPONENTS_CUSTOMIZED)

然后保存并编译,编译成功后,怎么确认有没有添加成功这个组件?我们可以看一下编译的打印信息:

image-20231126211051449

这里是会显示有这么一个组件的。

2. 方式二:在config.in添加

我们也可以在图形界面进行配置,只是需要添加cli的相关菜单文件,我们找到工程源码目录中的 Config.in 文件,然后添加cli的菜单文件即可,我们怎么找cli的菜单文件?前面其实有了解过AliosThings源码目录的结构,可以知道cli组件是在SDK源码的 core/cli 中的,我们看一下 core/Config.in文件:

image-20231126212004420

我们再看一下工程源码目录下的Config.in文件:

image-20231126212054015

这样一对比,我们就知道怎么添加了,我们修改工程源码目录下的Config.in文件如下:

image-20231126212207147

然后我们执行aos make menuconfig命令就可以看到cli菜单已经被添加了:

image-20231126212307165

我们配置cli如下:

image-20231126212438244

然后进行编译,编译有如下打印信息说明组件添加成功:

image-20231126212535364

3. 烧写运行

我们通过OTA功能,升级一下mk3080的代码,有如下打印信息说明烧写成功:

image-20231126212833266

然后我们按下2,重新启动,启动后,我们会发现我们按下enter按键,会有一个#号打出,然后我们可以向这个终端输入一些命令了,这就验证了我们添加cli组件成功。

image-20231126212946706