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

目录
相关文章
|
传感器 数据采集 安全
|
物联网 Linux
【AliOS Things学习笔记】为你的AliOS Things应用增加自定义cli命令
怎么才能在RTOS系统中,通过 串口shell控制LED的开关。
3893 0
|
AliOS-Things 物联网 编译器
使用HaaS Studio开发AliOS Things C/C++应用
本文章将介绍使用HaaS Studio 进行AliOS-Things C/C++应用开发。
使用HaaS Studio开发AliOS Things C/C++应用
|
传感器 监控 算法
使用AliOS Things快速构建温度计应用 |《AliOS Things快速开发指南》
本文是基于AliOS Things 3.1快速构建温度计的应用场景。涉及AliOS Things组件开发,构建AliOS Things用户项目,AliOS Things HAL API使用,向AliOS Things中添加并使用组件。用到的硬件设备有半导体开发板、温度传感器、数码管显示器。
使用AliOS Things快速构建温度计应用 |《AliOS Things快速开发指南》
|
物联网 机器人 AliOS-Things
|
域名解析 移动开发 数据可视化
使用 AliOS Things 3.0 快速构建用户应用 BlinkAPP
AliOS Things 3.0版本于去年9月份在云栖大会正式发布,在新版本中带来了全新的应用开发框架,帮助用户快速构建自己的应用。使用户可以更专注于自身应用的开发。本文将已BlinkAPP为例,为大家演示如何快速使用应用开发框创建项目并完成应用代码编写。
1170 0
使用 AliOS Things 3.0 快速构建用户应用 BlinkAPP
|
物联网 传感器 API
AliOS Things 3.0应用笔记:http client简单应用
AliOS Things 3.0版本新增加了httpc组件(http 客户端组件),httpc组件支持多种RESTful的API调用,包括GET、POST、PUT、HEAD等,也支持https安全协议。
12665 1
|
物联网 C++
使用AliOS Things 3.0快速构建用户应用 BlinkAPP
AliOS Things 3.0版本于9月27日在云栖大会正式发布,在新版本中带来了全新的应用开发框架,帮助用户快速构建自己的应用。使用户可以更专注于自身应用的开发。本文将已BlinkAPP为例,为大家演示如何快速使用应用开发框创建项目并完成应用代码编写。
7277 0
|
缓存 算法 物联网
AliOS Things声源定位应用演示
1. 概述 利用麦克风阵列进行声源定位在智能降噪、语音增强、语音识别等领域有广泛应用和研究前景。本文介绍基于AliOS Things + STM32F413H Discovery开发板实现声源定位算法集成和功能演示。
4555 0
|
传感器 物联网
AliOS Things手势识别应用演示
1. 概述 手势识别作为一种辅助的人机交互方式,在人机脱离的场景下可以提供方便的交互体验。本文介绍基于AliOS Things + STM32F413H Discovery开发板实现手势交互功能的演示。
3280 0