3_1_4_AliOS Thiings 创建新组件|学习笔记

简介: 快速学习3_1_4_AliOS Thiings 创建新组件。

开发者学堂课程【HaaS 物联网应用开发课程3_1_4_AliOS Thiings 创建新组件】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/801/detail/13826


3_1_4_AliOS Thiings 创建新组件

 

内容介绍:

一、添加新组件

二、演示

三、示例演示

 

一、添加新组件

组件基本组成及创建方式

>组件基本组成部分

1. 组件配置文件,即 Config.in。即之前提到的与顶层配置文件相对应的组件配置文件

2. Makefile,即 aos.mk。编译的一些规则都是在 aos.mk 或 Config.in

3. 源代码,组件对外提供 API 的实现

4. 编译规则,定义在 Config.in 或 aos.mk 中

>创建新组件的三种方式

1. 按照 aos.mk、Config.in 及源代码编写规则,从头实现这三部分。知道 aos.mk 和 Config.in 是什么,知道要写的组件的功能是如何实现的就可以从头实现这三部分。

2.复制现有的组件目录例如 component 下有一个文件 netmanager 的组件,可以复制该组件的全部源代码到另一个目录下,然后根据需要修改这三部分内容。修改 aos.mk、Config.in 及源代码

3. 使用 aos create 创建新的新的组件,并在此基础上增加自己的编译选项、宏定义以及源代码。对于初学者建议使用第三种方式:简单快捷不容易出错。

 

二、示例

#创建新组件需要到源代码根目录下,源代码都放置在/workspace/AliOS-Things 中,进入到要新添加组件源代码根目录下

root@8b09079bcc1a:/# cd /workspace/AliOS-Things

#使用aos create component指令创建组件

root@8b09079bccla:/workspace/AliOS-Things# aos create component -t peripherals new_comp

[Info]ComponentInitializedat: /workspace/AliOS-Things/components/peripherals/new_comp

root@8b09079bcc1a:/workspace/AliOS-Things# ls

#创建完新组件后使用ls指令来查看,显示自动创建的新生成组件目录下的文件

root@8b09079bccla:/workspace/AliOS-Things# ls components/peripherals/new_comp -la | awk ’ {print$9}’

Config.in

README.md

aos.mk

example

new_comp

src

一般情况下创建组件是为其它模块提供一些新的 api 功能,新的 api 功能一般是放在 README.md 文件中。

 

三、示例演示

演示创建一个新组件并在 helloworld_demo 中呼叫这个组件的 API

打开窗口,进入/workspace/AliOS-Things 根目录下,输入

aos create component -t peripherals new_comp

创建组件类型为 peripherals,组件名称为 new_comp

执行完成后提示 component 初始化成功,在/workspace/AliOS-Things/components/peripherals new_comp

先来进入该目录,输入

cd /workspace/AliOS-Things/components/peripherals new_comp

再输入 ls

结果显示

Config.in

README.md

aos.mk

example

new_comp

src

再来进入 Config.in,输入 vim Config.in

可以看到其中定义了 AOS_COMP_NEW_COMP,default为y

再来进入 aos.mk,输入 vim aos.mk

可以看到$(NAME)_SOURCES := ./src/new_comp.c

指定组件使用的源代码是 new_comp..c

GLOBAL_INCLUDES += ./new_comp

组件所包含的头文件放在 new_comp 目录下

继续进入到 src下,输入 cd src/

ls

显示 new_comp.c

输入 vim new_comp.c 进入修改内容

进入后找到 int new_comp_init(void)函数

copy 后新实现一个函数

int new_comp_welcome(void)

{

/*add your code*/

printf(“welcome to new component\r\n”)

return 0;

}

然后进入到头文件中进行声明,输入 cd..

ls

vim new_comp/new_comp.h

进入后添加函数声明:

int new_comp_welcome(void)

接着可以到 helloworld_demo 下编辑 helloworld_demo 的源文件,输入

cd /workspace/AliOS-Things/application/example/helloworld_demo/

ls

vim appdemo.c

进入后找到 application_start 就是要编辑的函数

先在 application_start 函数上方添加#include “new_comp.h”

再在函数中 while(1){}上方添加 new_comp_welcome();

退出后再进入到根目录下,输入 cd /workspace/AliOS-Things/

然后执行 aos make helloworld_demo@haaseduk1 -c config 生成一个默认配置文件

结果放在 config 下,再来输入 vim .config

进入后 AOS_BUILD_BOARD=”haaseduk1”

定义了要编译的当前工程 board 是 haaseduk1

AOS_BUILD_APP=”helloworld_demo”

要编译的 app 是 helloworld_demo

退出后输入 aos make 指令对整个工程进行编译

结果显示找不到

image.png

输入 find . -name new_comp.h

结果存在,之前讲解过如果一个应用想要使用组件功能,需要设定对该组件的依赖关系。

依赖关系有两种设置方式:在应用的 config.in 中、在 aos.mk 中

现在使用第二种方式对组件添加依赖:

刚才新建的组件名为 new_comp,输入

vim application/example/helloworld_demo/aos.mk

将 new_comp 添加到$(NAME)_COMPONENTS += 后即$(NAME)_COMPONENTS += osal_aos cli new_comp

退出后输入 aos make 进行编译

可以看到 new_comp 已经编译成功

再输入 aos upload

下载完成后查看串口输出,进入一个窗口打开输入

picocom -b 150000 /dev/tty.usbserial-A908XGVV

因为刚才看到new_compwelcome的API是在helloworld_demo启动时调用的,所以此时需要进行重启来确认该函数是否被呼叫。

image.png

重启后打印出 welcome to new component

实验完成。

目录
打赏
0
0
0
0
127
分享
相关文章
简单易操作 VsCoe离线安装插件【步骤+图片+插件】
这篇文章介绍了在Visual Studio Code (VSCode) 中进行离线安装插件的详细步骤,包括如何下载插件、以SVN插件为例的离线安装过程、通过命令行安装以及一个更加简单的离线安装方式,还提供了操作界面的截图帮助理解。
简单易操作 VsCoe离线安装插件【步骤+图片+插件】
Linux修改fs.inotify.max_user_watches(“外部文件更改同步可能很慢”和“当前的 inotify(7) 监视限制太低”)
Linux修改fs.inotify.max_user_watches(“外部文件更改同步可能很慢”和“当前的 inotify(7) 监视限制太低”)
566 0
3_1_2 AliOS Things 编译工具及编译配置系统|学习笔记
快速学习3_1_2 AliOS Things 编译工具及编译配置系统。
455 0
3_1_2 AliOS Things 编译工具及编译配置系统|学习笔记
Unix时间戳 POSIX时间 Unix时间
时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数,也被称为 Unix 时间戳(Unix Timestamp)。Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。
206818 2
kde
|
6天前
|
Docker镜像加速指南:手把手教你配置国内镜像源
配置国内镜像源可大幅提升 Docker 拉取速度,解决访问 Docker Hub 缓慢问题。本文详解 Linux、Docker Desktop 配置方法,并提供测速对比与常见问题解答,附最新可用镜像源列表,助力高效开发部署。
kde
4028 8
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等