AliOS Things 3.3版本于2021年4月23日正式发布开源,项目地址:
本次发布包含的新特性有:
- 升级AliOS Things操作系统功能
新增内核对象管理功能、优化驱动框架和AOS内核接口、增强调试能力。
- 增加轻应用开发框架
支持JavaScript和Python两种语言开发AliOS Things应用。
- 增强AliOS Things操作系统配套的开发工具
开发环境支持界面化应用开发、升级构建工具和资源配置方式、自研在线分析工具。SmartTraceV1.4发布以及增加对通用分析工具SystemView的支持。
- 更新AliOS Things操作系统及配套开发工具的说明文档
提供更详尽,更易读的中文文档。
文档与操作系统源代码同时开源,开放与开发者的共建文档资源库的窗口。
- 扩充AliOS Things操作系统开发者生态
推出CSDN和微信技术社区、钉钉群以及HaaS百事通等通道,全方位的服务开发者。
我们会继续秉持全面开源的思想,不断把新开发出来的组件和案例,快速的贡献到开源社区,请大家持续关注。
AliOS Things 3.3 开源仓库
AliOS Things 3.3版本分别在Github、Gitee、Code China开源,分支均为rel_3.3.0。用户贡献代码可在Github上提交申请,AliOS Things开发工具默认是从Gitee下载源码。Github、Code China主要是方便用户浏览所有开源代码。
Github
AliOS Things 3.3版本在Github平台上,所有功能模块共用一个仓库。用户可以通过登录本项目在Github上的地址,并切换代码分支为rel_3.3.0,即可查看到AliOS Things 3.3 版本所有开源代码,如下图。
Gitee
AliOS Things 3.3版本在Gitee平台上,每个功能模块分配一个独立的仓库。概览页面的精选区域目前是放置着常用的案例仓库和通用文档仓库,如简单示例工程helloworld_demo、通用文档仓库documentation等,如下图。
若用户想查看或搜索其他组件或案例仓库,可以点击上图选项栏中的“仓库”切换到“仓库”页,如下图。在搜索栏中输入目标组件或案例的名称,确认后即可显示搜索结果。
打开目标组件或案例的仓库,切换代码分支为rel_3.3.0,即可查看到该组件或案例3.3版本对应的源代码,如下图。
Code China
AliOS Things 3.3版本在Code China平台上,所有功能模块共用一个仓库。用户可以通过登录本项目在Code China上的地址,并切换代码分支为rel_3.3.0,即可查看到AliOS Things 3.3 版本所有开源代码,如下图。
AliOS Things 3.3 系统概述
系统架构
AliOS Things 3.3版本系统架构如下图:
- 硬件支持HaaS生态的HaaS100系列、HaaS EDU系列、HaaS200系列开发板;CPU架构支持ARM;内核提供调度、任务管理、内存管理等基础功能;组件层提供支持Native应用开发和HaaS轻应用开发的多种功能组件;系统增强了设备端应用与云服务的交互能力。
- 为了降低物联网开发的门槛,我们提供了轻应用的开发框架:提供支撑轻应用运行所需的全套基础设施,是一套集成了包括硬件抽象、网络接口、物联网组件、运行时引擎、对象封装等功能的应用软件框架。
- 为提高开发者基于AliOS Things进行应用开发的效率,本次发布对AliOS Things配套的开发工具进行了全面的升级和增强。推出针对轻应用的开发工具、升级了AliOS Studio和构建系统、新增SytemView和SmartTrace工具辅助开发者调试分析。
系统架构图中,使用深灰色和橙色字体标记的模块是经过测试验证并已开源的模块,如“OTA组件”、“JS引擎”;而使用浅灰色字体标记的模块是正在研发或待测试的模块,如“支付组件”,今后会陆续开源。
代码目录
AliOS Things 3.3版本源码是按照系统架构的分层设计进行目录划分:
- components——集合了操作系统内核之上的所有功能组件
- hardware——包含系统已适配的板级支持包和CPU适配代码
- kernel——提供操作系统内核,包含调度、任务管理、任务间通信等功能
- solutions——提供物联网应用典型案例工程
- documentation——包含系统概述、快速上手、开发工具、贡献代码等说明文档
内核优化
AliOS Things3.3版本操作系统内核新增内核对象管理功能,对任务、互斥量、信号量等资源进行一致性管理,并对驱动框架、调试能力以及AOS API做了优化和升级。
对系统内核资源如任务、互斥量、信号量等采用相同的管理方式,提高代码的可维护性和可扩展性。
新版本驱动框架,对上提供全新便利的AOS API,对下提供原子化驱动原语,把驱动复杂逻辑封装在各驱动子系统中。最大化提升应用和厂商驱动的开发效率。
提升栈回溯解析率、新增printk调试打印接口、cpuuage统计改善、增加调试诊断命令等。
组件整编
本次发布是在AliOS Things 3.1版本基础之上,精简了不必要的组件,增加了满足物联网领域所需的音视频、UI交互以及AI能力相关的组件,并对OTA、LinkSDK等核心组件进行了升级,详情参见下表:
典型案例
AliOS Things研发团队根据典型的物联网应用场景为开发者打造的多个实用的示例工程,方便开发者在此基础上快速的打造属于自己的物联网应用。示例工程仓库地址和使用说明如下表:
轻应用支持
AliOS Things提供的轻应用功能采用解释型编程语言JavaScript或Python,开发过程无需搭建嵌入式开发环境、无需编译、烧录。硬件设备的开发可以不再依赖嵌入式软件技术栈,调用简洁的API即可操控硬件行为。支持一键热更新推送应用代码到硬件,获取极致的开发体验。开发者可以参考如下教程开始AliOS Things轻应用的开发:
AliOS Things 支持的HaaS开发板
目前AliOS Things 3.3支持的HaaS开发板如下:
| HaaS开发板 |
硬件配置 |
购买链接 |
| HaaS100 |
双核cortex-m33 和双核cortex-A7;1x1802.11a/b/g/n双频 wifi4模块、 音视频编码模块、电源管理模块、双模蓝牙5.0模块、三路模拟麦克风阵列以及六路数字麦克风阵列和丰富外设资源; 2.5MBSRAM、16MBPSRAM和16MBflash; 用于物联网控制网关、wifi远程扬声器和智能蓝牙音响等场景 |
点击购买HaaS100 |
| HaaS200 |
高性能KM4和低功耗KM0,KM4 采用armv8M架构,主频高达200MHz, 兼容CortexM33指令集并支持浮点dsp功能,集成512KBsram和4MBpsram; km0同样采用armv8架构,主频20MHz,兼容cortexM23指令集并集成64MKBsram和1KBretentionsram; 支持wifi802.11a/b/g/n 双频、蓝牙5.0和丰富的外设资源; 用于智能家居、智慧园区等场景 |
点击购买HaaS200 |
| HaaS EDU K1 |
有别于传统裸板开发板,外观鲜艳靓丽、青春活力; 内置1200mAh锂电池、OLED屏幕和游戏键盘设计; 内嵌Z8IDA金融级国密芯片; Tf 卡槽、USBtypeC接口(充电、烧录、调试等) |
点击购买HaaS EDU K1 |
AliOS Things 开发工具
开发环境
alios-studio是AliOS Things配套的开发环境基于VSCode的插件。支持图形化应用开发、编译、调试、烧录等功能,使用方法可参考:
开发环境使用视频教程
构建工具
aos-tools是AliOS Things团队开发的命令行构建工具,支持组件管理、程序编译、烧录等功能。aos-tools是使用git来获取组件代码并维护代码版本。aos-tools的安装及常用命令的操作说明如下:
| 常用命令 |
描述 |
pip install -U aos-tools |
- 功能用途
安装aos-tools- 使用限制
系统已安装python环境,版本要求2.7或3.6及以上。- 使用说明
该操作可在本地环境中执行或在miniconda3创建的虚拟环境中执行
|
aos command options |
- 功能用途
调用aos命令[1]格式- 使用限制
a. help、init等命令在系统已安装aos-tools后即可使用 b. install、unisntall等命令必须在aos工作区[2]目录下使用 c. make、burn等命令必须在aos工作区的工程目录[3]下使用- 使用说明
command:aos-tools支持的命令 options:执行命令的可选项
- 使用示例
a. 显示本地所有组件信息 aos list b. 显示服务器端所有组件信息 aos list -r
|
aos help |
- 功能用途
获取所有支持的aos命令信息- 使用限制
可在aos工作区的任意目录下使用- 使用说明
获取aos-tools支持的所有命令信息
|
aos help command |
- 功能用途
获取指定aos命令的帮助信息- 使用限制
可在aos工作区的任意目录下使用- 使用说明
command:可选项,用来获取指定命令的帮助信息- 使用示例
a. 查看init命令的用法,并包含该命令支持的可选项说明 aos help init
|
aos init |
- 功能用途
初始aos化工作区- 使用限制
系统已安装aos-tools- 使用示例
a. 创建工作区alios_iot并初始化 mkdir alios_iot cd alios_iot aos init
|
aos init manifest-lab -b branchname |
- 功能用途
定制化的初始化工作区- 使用限制
系统已安装aos-tools- 使用说明
manifest-lab:可选项,使用定制化的manifest仓库来初始化aos工作区 branchname:可选项,仓库版本分之名称
- 使用示例
a. 使用alios_iot的manifest仓库来初始化aos工作区 aos init git@gitlab.alibaba-inc.com:alios_iot/manifest.git -b v1.0.0
|
aos install component
aos install component -b branchname |
- 功能用途
下载组件或示例工程- 使用限制
可在aos工作区的任意目录下使用- 使用说明
- component:组件或示例工程名称
branchname:版本分之名称 - 使用示例
a. 下载helloworld_demo示例工程,以及该所依赖的组件 aos install helloworld_demo b. 下载v1.0.0版本的cli组件 aos install cli -b v1.0.0
|
aos show |
- 功能用途
- 获取工程的构建配置信息
使用限制只能在aos工作区的工程目录[3]下使用- 使用说明
使用该命令可查看工程依赖的组件列表、库(路径)、头文件、宏定义、变量、构建选项等信息。
|
aos make
aos make V=1 |
- 功能用途
构建工程- 使用限制
只能在aos工作区的工程目录[3]下使用- 使用说明
V=1:可选项,显示编译的详细信息- 使用示例
a. 构建helloworld_demo cd solutions/helloworld_demo aos make
|
aos make clean |
- 功能用途
清除构建信息- 使用限制
只能在aos工作区的工程目录[3]下使用
|
aos burn |
- 功能用途
烧录固件- 使用限制
只能在aos工作区的工程目录[3]下使用
|
aos debug |
- 功能用途
启动gdb server- 使用限制
只能在aos工作区的工程目录[3]下使用- 使用说明
需配合Visual Studio Code的调试功能使用
|
aos create project
aos create project -b <board> -t <solution> -d <destdir> <solution_name> |
- 功能用途
创建工程- 使用限制
系统已安装aos-tools- 使用说明
-b :必选项,指定开发板名称,如haas100; -t :可选项,指定已有的解决方案名称,如http_demo。如果未设置,默认为helloworld_demo; -d :必选项,指定工作区workspace目录,如果该目录指向已初始化过的工作区 ,则复用原来的工作区; -r :可选项,指定远程manifest仓库地址,默认为https://gitee.com/alios-things/manifest.git; -B:可选项,指定远程manifest仓库的分支,默认为master; solution_name:必选项,指定工程名。- 使用示例
a. 以helloworld_demo为模版创建工程mysolution aos create project -b haas100 -t helloworld_demo -d /home/johnny/myworkspace mysolution
|
注解:
[1] aos命令是指aos-tools支持的命令。
[2] aos工作区是指已执行过aos init的文件夹路径。
[3] aos工作区工程目录是指aos工作区solution目录下的工程根目录,如solution/helloworld_demo。
配置文件
package.yaml是组件或工程的配置文件,配置内容包含源文件,头文件,宏定义,以及组件依赖关系描述等等,替代了传统的makefile文件。
a. 组件名称
b. 依赖信息****
c. 编译链接信息
d. 宏配置信息
分析工具
AliOS Things 说明文档
内容提纲
为方便开发者能够迅速的定位到目标内容,我们对AliOS Things操作系统内核、组件、案例、API以及配套开发工具的所有相关文档进行了梳理分层,目录层次包括:
-
AliOS Things 概述
提供AliOS Things 操作系统框架、版本说明、文档入口、支持硬件、开发者交流通道等信息。
-
快速开始
为用户提供基于HaaS100或HaaS EDU k1等硬件,快速搭建开发环境、下载源码、运行简单示例工程或设备连接阿里云示例工程的方法。
-
开发工具
介绍AliOS Things操作系统配套的开发环境aos-studio、构建工具aos-tools以及构建配置package.yaml的使用方法。
-
内核编程
从AliOS Things操作系统内核实现原理出发,提供任务、互斥量、信号量等功能的使用示例,帮助开发者为其应用编程选择合适的内核能力以及正确使用API。
-
组件介绍
组件是AliOS Things操作系统为物联网应用开发提供的上层能力。该板块列出了所有开源组件的使用说明,帮助用户快速的了解组件的用途和使用方法。
-
案例开发
案例是AliOS Things操作系统根据典型的物联网应用场景为开发者打造的示例工程。该板块列出了每个案例所需的软硬件条件和使用说明,方便开发者在此基础上快速的打造属于自己的物联网应用。
-
开发者贡献
为开发者贡献文档、贡献代码提供操作指南。
-
API用户手册
对内核和组件常用API的提供说明。
访问入口
AliOS Things 开发者生态
开发者贡献
开发者支持
AliOS Things 3.3版本于2021年4月23日正式发布开源,项目地址:
本次发布包含的新特性有:
新增内核对象管理功能、优化驱动框架和AOS内核接口、增强调试能力。
支持JavaScript和Python两种语言开发AliOS Things应用。
开发环境支持界面化应用开发、升级构建工具和资源配置方式、自研在线分析工具。SmartTraceV1.4发布以及增加对通用分析工具SystemView的支持。
提供更详尽,更易读的中文文档。
文档与操作系统源代码同时开源,开放与开发者的共建文档资源库的窗口。
推出CSDN和微信技术社区、钉钉群以及HaaS百事通等通道,全方位的服务开发者。
我们会继续秉持全面开源的思想,不断把新开发出来的组件和案例,快速的贡献到开源社区,请大家持续关注。
AliOS Things 3.3 开源仓库
AliOS Things 3.3版本分别在Github、Gitee、Code China开源,分支均为rel_3.3.0。用户贡献代码可在Github上提交申请,AliOS Things开发工具默认是从Gitee下载源码。Github、Code China主要是方便用户浏览所有开源代码。
Github
AliOS Things 3.3版本在Github平台上,所有功能模块共用一个仓库。用户可以通过登录本项目在Github上的地址,并切换代码分支为rel_3.3.0,即可查看到AliOS Things 3.3 版本所有开源代码,如下图。
Gitee
AliOS Things 3.3版本在Gitee平台上,每个功能模块分配一个独立的仓库。概览页面的精选区域目前是放置着常用的案例仓库和通用文档仓库,如简单示例工程helloworld_demo、通用文档仓库documentation等,如下图。
若用户想查看或搜索其他组件或案例仓库,可以点击上图选项栏中的“仓库”切换到“仓库”页,如下图。在搜索栏中输入目标组件或案例的名称,确认后即可显示搜索结果。
打开目标组件或案例的仓库,切换代码分支为rel_3.3.0,即可查看到该组件或案例3.3版本对应的源代码,如下图。
Code China
AliOS Things 3.3版本在Code China平台上,所有功能模块共用一个仓库。用户可以通过登录本项目在Code China上的地址,并切换代码分支为rel_3.3.0,即可查看到AliOS Things 3.3 版本所有开源代码,如下图。
AliOS Things 3.3 系统概述
系统架构
AliOS Things 3.3版本系统架构如下图:
系统架构图中,使用深灰色和橙色字体标记的模块是经过测试验证并已开源的模块,如“OTA组件”、“JS引擎”;而使用浅灰色字体标记的模块是正在研发或待测试的模块,如“支付组件”,今后会陆续开源。
代码目录
AliOS Things 3.3版本源码是按照系统架构的分层设计进行目录划分:
内核优化
AliOS Things3.3版本操作系统内核新增内核对象管理功能,对任务、互斥量、信号量等资源进行一致性管理,并对
驱动框架、调试能力以及AOS API做了优化和升级。对系统内核资源如任务、互斥量、信号量等采用相同的管理方式,提高代码的可维护性和可扩展性。
新版本驱动框架,对上提供全新便利的AOS API,对下提供原子化驱动原语,把驱动复杂逻辑封装在各驱动子系统中。最大化提升应用和厂商驱动的开发效率。
提升栈回溯解析率、新增printk调试打印接口、cpuuage统计改善、增加调试诊断命令等。
优化APOS内核API,并考虑到与AliOS Things3.1接口的兼容性。详情参见:https://haas.iot.aliyun.com/aliosthings/aos_kernel.html。
组件整编
本次发布是在AliOS Things 3.1版本基础之上,精简了不必要的组件,增加了满足物联网领域所需的音视频、UI交互以及AI能力相关的组件,并对OTA、LinkSDK等核心组件进行了升级,详情参见下表:
典型案例
AliOS Things研发团队根据典型的物联网应用场景为开发者打造的多个实用的示例工程,方便开发者在此基础上快速的打造属于自己的物联网应用。示例工程仓库地址和使用说明如下表:
轻应用支持
AliOS Things提供的轻应用功能采用解释型编程语言JavaScript或Python,开发过程无需搭建嵌入式开发环境、无需编译、烧录。硬件设备的开发可以不再依赖嵌入式软件技术栈,调用简洁的API即可操控硬件行为。支持一键热更新推送应用代码到硬件,获取极致的开发体验。开发者可以参考如下教程开始AliOS Things轻应用的开发:
使用Python进行嵌入式应用开发
视频参见:Python轻应用开发教程
文章参见:https://blog.csdn.net/HaaSTech/article/details/115179241
使用JavaScript进行嵌入式应用开发
视频参见:JavaScript轻应用开发教程
文章参见:https://blog.csdn.net/HaaSTech/article/details/110158362
AliOS Things 支持的HaaS开发板
目前AliOS Things 3.3支持的HaaS开发板如下:
音视频编码模块、电源管理模块、双模蓝牙5.0模块、三路模拟麦克风阵列以及六路数字麦克风阵列和丰富外设资源;
2.5MBSRAM、16MBPSRAM和16MBflash;
用于物联网控制网关、wifi远程扬声器和智能蓝牙音响等场景
兼容CortexM33指令集并支持浮点dsp功能,集成512KBsram和4MBpsram;
km0同样采用armv8架构,主频20MHz,兼容cortexM23指令集并集成64MKBsram和1KBretentionsram;
支持wifi802.11a/b/g/n 双频、蓝牙5.0和丰富的外设资源;
用于智能家居、智慧园区等场景
内置1200mAh锂电池、OLED屏幕和游戏键盘设计;
内嵌Z8IDA金融级国密芯片;
Tf 卡槽、USBtypeC接口(充电、烧录、调试等)
AliOS Things 开发工具
开发环境
alios-studio是AliOS Things配套的开发环境基于VSCode的插件。支持图形化应用开发、编译、调试、烧录等功能,使用方法可参考:
开发环境使用视频教程
构建工具
aos-tools是AliOS Things团队开发的命令行构建工具,支持组件管理、程序编译、烧录等功能。aos-tools是使用git来获取组件代码并维护代码版本。aos-tools的安装及常用命令的操作说明如下:
pip install -U aos-toolsaos command optionsb. install、unisntall等命令必须在aos工作区[2]目录下使用
c. make、burn等命令必须在aos工作区的工程目录[3]下使用
options:执行命令的可选项
aos list
b. 显示服务器端所有组件信息
aos list -r
aos helpaos help commandaos help init
aos initmkdir alios_iot
cd alios_iot
aos init
aos init manifest-lab -b branchnamebranchname:可选项,仓库版本分之名称
aos init git@gitlab.alibaba-inc.com:alios_iot/manifest.git -b v1.0.0
aos install componentaos install component -b branchnamebranchname:版本分之名称
aos install helloworld_demo
b. 下载v1.0.0版本的cli组件
aos install cli -b v1.0.0
aos showaos makeaos make V=1cd solutions/helloworld_demo
aos make
aos make cleanaos burnaos debugaos create projectaos create project -b <board> -t <solution> -d <destdir> <solution_name>-t :可选项,指定已有的解决方案名称,如http_demo。如果未设置,默认为helloworld_demo;
-d :必选项,指定工作区workspace目录,如果该目录指向已初始化过的工作区 ,则复用原来的工作区;
-r :可选项,指定远程manifest仓库地址,默认为https://gitee.com/alios-things/manifest.git;
-B:可选项,指定远程manifest仓库的分支,默认为master; solution_name:必选项,指定工程名。
aos create project -b haas100 -t helloworld_demo -d /home/johnny/myworkspace mysolution
注解:
[1] aos命令是指aos-tools支持的命令。
[2] aos工作区是指已执行过aos init的文件夹路径。
[3] aos工作区工程目录是指aos工作区solution目录下的工程根目录,如solution/helloworld_demo。
配置文件
package.yaml是组件或工程的配置文件,配置内容包含源文件,头文件,宏定义,以及组件依赖关系描述等等,替代了传统的makefile文件。
yaml语法说明
https://www.ruanyifeng.com/blog/2016/07/yaml.html
https://yaml.org/spec/1.2/spec.html
yaml格式校验工具
https://www.bejson.com/validators/yaml_editor/
构建配置字段说明
https://haas.iot.aliyun.com/aliosthings/packageyaml_user_manual.html
package.yaml示例
a. 组件名称
b. 依赖信息****
c. 编译链接信息
d. 宏配置信息
分析工具
SmartTrace V1.4
SmartTrace是AliOS Things自研的智能调试分析工具:支持查看串口日志、coredump死核分析、实时查看内存变量、在运行时设 置内存变量、通过uart、telnet等方式连接设备、本地日志离线分析。工具下载和使用方法可参见:
https://alios-things-public.oss-cn-hangzhou.aliyuncs.com/SmartTrace_v1.4.zip, https://haas.iot.aliyun.com/aliosthings/smarttrace.html。
SystemView
AliOS Things现支持业内常用的性能分析工具SystemView,工具说明和使用方法可参见:
https://haas.iot.aliyun.com/aliosthings/trace.html,
https://blog.csdn.net/HaaSTech/article/details/117779881。
AliOS Things 说明文档
内容提纲
为方便开发者能够迅速的定位到目标内容,我们对AliOS Things操作系统内核、组件、案例、API以及配套开发工具的所有相关文档进行了梳理分层,目录层次包括:
AliOS Things 概述
提供AliOS Things 操作系统框架、版本说明、文档入口、支持硬件、开发者交流通道等信息。
快速开始
为用户提供基于HaaS100或HaaS EDU k1等硬件,快速搭建开发环境、下载源码、运行简单示例工程或设备连接阿里云示例工程的方法。
开发工具
介绍AliOS Things操作系统配套的开发环境aos-studio、构建工具aos-tools以及构建配置package.yaml的使用方法。
内核编程
从AliOS Things操作系统内核实现原理出发,提供任务、互斥量、信号量等功能的使用示例,帮助开发者为其应用编程选择合适的内核能力以及正确使用API。
组件介绍
组件是AliOS Things操作系统为物联网应用开发提供的上层能力。该板块列出了所有开源组件的使用说明,帮助用户快速的了解组件的用途和使用方法。
案例开发
案例是AliOS Things操作系统根据典型的物联网应用场景为开发者打造的示例工程。该板块列出了每个案例所需的软硬件条件和使用说明,方便开发者在此基础上快速的打造属于自己的物联网应用。
开发者贡献
为开发者贡献文档、贡献代码提供操作指南。
API用户手册
对内核和组件常用API的提供说明。
访问入口
AliOS Things 开发者生态
开发者贡献
开发者支持