WIN10系统上,新建AliOS Things项目

简介: 确定新项目的目录 * 用VSCode新建项目 * 重新打开SDK目录 * 简单修改新项目的模板 * 编译,烧写,查看结果 * AliOS Things 的Yloop调度

全局掌控

  • 确定新项目的目录
  • 用VSCode新建项目
  • 重新打开SDK目录
  • 简单修改新项目的模板
  • 编译,烧写,查看结果
  • AliOS Things 的Yloop调度

新项目的目录

我们将从Git上面下载的源码,称之为SDK。
这个文件夹,就是存放SDK的文件夹。
SDK的路径你随意放。

image.png | left | 159x203

在零妖的电脑上,SDK的路径是:F:AliOS_SourceAliOS-Things

新建的项目,需要放到SDK里面的一个叫做 example 的目录。
这个目录里面已经有一些参考项目了。

image.png | left | 747x398

咱们要做的,就是在这个目录里面新建自己的项目。
比如零妖要新建一个 led1 的项目,那就新建一个文件夹,名字叫做 led1 。
新建的项目路径是:F:AliOS_SourceAliOS-Thingsexampleled1

image.png | left | 747x419

VSCode新建项目

打开VSCode,点击这个符号就可以新建项目。
你提前复制好你的项目路径。
零妖的电脑上,这个路径是:F:AliOS_SourceAliOS-Thingsexampleled1

image.png | left | 747x447

点过之后,这里会有一个默认路径,删除掉。
粘贴上自己的项目路径后,敲回车。

image.png | left | 747x442

OK,这一步完成后,你就可以关闭VSCode了。
打开刚才新建的项目文件夹,发现里面多了许多文件。

image.png | left | 747x227

重新打开SDK的目录

需要用VSCode,重新打开SDK文件夹。
看到了吧。刚才新建的项目已经能找到了。

image.png | left | 747x397

简单修改新项目的模板

新建的项目,是一个Helloworld的模板项目。
简单修改一下。

image.png | left | 747x419

编译,烧写,查看结果

编译之前要选择对应的项目,选择对应的硬件。

image.png | left | 747x399

image.png | left | 747x415

选择好之后,编译一下。
编译OK。

image.png | left | 747x319

烧写OK。

image.png | left | 747x270

打开串口。
输出的调试信息和咱修改的一致。

image.png | left | 747x279

AliOS Things 的Yloop调度

Yloop实现原理

Yloop是AliOS Things的异步事件框架。

每个Yloop实例(aos_loop_t)与特定的任务上下文绑定。

AliOS Things的程序入口application_start所在的上下文与系统的主Yloop实例绑定,该上下文也称为主任务。当底层的OS初始化完毕后,会第一个执行 application_start 这个函数。

主任务以外的任务也可以创建自己的Yloop实例。

Yloop实现了对资源的的统一调度管理,比如:

  • IO:最常见的是Socket,也可以是AliOS Things的vfs管理的设备
  • timer:即常见的定时器
  • callback:特定的执行函数
  • event:包括系统事件,用户自定义事件

当调用aos_loop_run后,当前任务将会等待上述的各类事件发生。

程序讲解

application_start里面做了两件事情:

  • 调用aos_post_delayed_action创建了一个1秒的定时器(Yloop里面只有oneshot timer)
  • 调用aos_loop_run进入事件循环

1秒后,定时器触发,app_delayed_action被调用,而app_delayed_action里面

  • 调用LOG打印
  • 再次创建一个5秒的定时器,重而实现定期执行app_delayed_action

这里注意到,程序并不需要aos_loop_init()去创建Yloop实例,因为系统会默认自动创建主Yloop实例。

OS内的API参考:https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-API-YLOOP-Guide#6-aos_post_delayed_action

解释一个函数的原型:
int aos_post_delayed_action(int ms, aos_call_t action, void *arg)
作用:
比如:aos_post_delayed_action(5000, test, NULL);
系统定时5000ms,然后时间到了之后,运行 test() 这个函数。
//当OS初始化完成1S之后,系统会执行一次此函数
static void app_delayed_action(void *arg)
{
    LOG("你好零妖 %s:%d %s\r\n", __func__, __LINE__, aos_task_name());//串口打印一些信息
    aos_post_delayed_action(5000, app_delayed_action, NULL);//告诉系统,5S后执行一下这个函数
}

//主任务。OS初始化完成后,会第一个执行的函数。
int application_start(int argc, char *argv[])
{
    LOG("初始化完成,应用程序开始:");//串口输出OS完成信息
    aos_post_delayed_action(1000, app_delayed_action, NULL);//1S后,触发 app_delayed_action 函数
    aos_loop_run();//OS开始等待各个事件是否发生,并随时准备执行对应的函数

    return 0;
}

结束

  • 新建的项目,一定要放到SDK里面,example的文件夹里。
  • 一定要重新打开VSCode,然后打开SDK文件夹。
  • example文件夹里面有很多参考项目,非常大的参考价值。
  • 自己的项目,可以边参考例程,边自己修改。

微信公众号 偶尔更新

1531823192520-8e7b5e01-69d4-4ef3-913c-53dca21b47a2.png | center | 310x310

目录
相关文章
|
3月前
|
传感器 数据采集 安全
|
算法 AliOS-Things 物联网
HaaS100开发调试系列 之 定位AliOS Things内存及Crash问题
本文主要说开发调试过程中经常遇到的内存问题。
350 15
HaaS100开发调试系列 之 定位AliOS Things内存及Crash问题
|
传感器 消息中间件 物联网
HCIA物联网初级考试-第五章物联网操作系统及感知层开发介绍
HCIA物联网初级考试-第五章物联网操作系统及感知层开发介绍
HCIA物联网初级考试-第五章物联网操作系统及感知层开发介绍
|
AliOS-Things 物联网 编译器
使用HaaS Studio开发AliOS Things C/C++应用
本文章将介绍使用HaaS Studio 进行AliOS-Things C/C++应用开发。
使用HaaS Studio开发AliOS Things C/C++应用
|
NoSQL 物联网
使用线上的开发板做开发调试 |《AliOS Things快速开发指南》
当您手上没有现成可用的开发板时,也可以使用线上的开发板来调试验证您的程序。本文主要介绍线上开发板的使用流程。
使用线上的开发板做开发调试 |《AliOS Things快速开发指南》
|
监控 AliOS-Things 物联网
使用线下开发板进行开发调试 |《AliOS Things快速开发指南》
本文主要介绍如何使用VSCode进行项目编译、固件烧录及串口监控。
使用线下开发板进行开发调试 |《AliOS Things快速开发指南》
|
域名解析 JSON AliOS-Things
AliOS Things 开发:让你的开发板支持 AliOS Studio 烧录
本文主要为大家讲解如何进行 AliOS Studio 烧录。
1117 0
AliOS Things 开发:让你的开发板支持 AliOS Studio 烧录
|
物联网 NoSQL Windows
AliOS Things开发:让你的开发板支持AliOS Studio调试
在AliOS-Things 2.1版本之后,AliOS Studio提供了一套简单易懂的接口可以让开发者很容易适配开发板支持调试功能。
AliOS Things开发:让你的开发板支持AliOS Studio调试
|
NoSQL 物联网 AliOS-Things
AliOS Things开发:让你的开发板支持AliOS Studio调试
简介 在AliOS-Things 2.1版本之后,AliOS Studio提供了一套简单易懂的接口可以让开发者很容易适配开发板支持调试功能。可以支持大部分的调试接口,比如ST-Link、JLink、CMSIS-DAP等。
3393 0
|
传感器 自然语言处理 监控
快速开发一个带APP的红外体温枪(基于AliOS Things Inside的Wi-Fi模组)
非接触红外测温在医疗,环境监测、个人健康等领域得到越来越广泛的应用。本文将向大家介绍如何通过AliOS-Things inside的WiFi模组,快速完成体温检测,流程涵盖从传感器数据采集,到阿里云IoT智能生活平台接入,以及快速构建App完成监控。

热门文章

最新文章