AliOS Things Developer Kit上手与测评

AliOS 物联网 阿里云
汉云
发布时间: 2019-02-26
阅读: 3915

AliOS是面向汽车、IoT终端、IoT芯片和工业领域研发物联网操作系统,基于组件化思想的多bin特性,主要是分三个部分kernel、framework、app bin;这三个部分可以进行独立的编译与烧录升级,并不会影响其他的部分代码。这里的优势毋庸置疑,主要是针对当前物联网的发展所提出的一种解决方案,可以进行OTA在线程序升级,大大方便了物联网设备的维护。


其基础架构如下图所示:


无标题.png



而这次测评的,也是基于AliOS的AliOS Things Developer Kit开发板,这块开发板是基于STM32L469设计的,开发板上带有大量的传感器与摄像头、显示屏,按键,还支持wifi、ST-Link、TF卡与音频输出功能。



无标题.png




AliOS Things开发板使用的开环境环境(软件)是Visual Studio Code,其在配置搭建时,还是有区别于之前的RTOS或是单片机的开发方式,主要就是在Visual Studio Code的基础了安装C/C++、alios-studio、python等等。在搭建好开发环境后,对于编译结果的烧写是支持几种方式:虚拟U盘、ST-LINK Utility和AliOS Things Studio。

使用Visual Studio Code编译完成后,会有一个不同部分占用空间大小的一个“表”,可以明显的显示出Flash的使用情况。从这里,也可以看出AliOS Things的分层结构。



无标题.png




这里对AliOS的实时性进行了测试,最简单的就是使用LED的例程,对LED翻转的延时进行测量,这里在程序上设置的延时是1秒的时间,但是在实际的测量中,延时时间大约增长了30ms多,这里的绝对误差看上去并不小,对于某此产品来说,实时性并不高,但对于物联网来说,这类大量通讯的产品中,30ms的延时根本不算什么,所以,也就不必太在意了,但值得一提的是,延时的相对误差是很小的,对于几十秒和延时时间进行反复的测量,时间误差是在几us左右,这对于AliOS Things这样的操作系统来说,已经是很小很稳定的了。


这里使用的是blink例程,这里要修改一下IO口的定义,例程中的引脚定义与板子上的是不一样的,修改如下:



无标题.png



最后通过测量LED翻转的时间间距来确定时间误差。



无标题.png



其次是通讯的串口测试,这里的串口是ST-Link的虚拟的串口,可以通过串口助手连接,也可以使用Visual Studio Code下的connect device功能,连接串口,这里的串口波特率是要设置成115200的,也是第秒发送一条helloworld



无标题.png



由于仿真功能比较弱,开发板在使用Visual Studio Code进行开发时,会在串口输出一些出错的信息,方便查找代码的bug,如下图,在修改错误后,在串口上会输出一些错误的具体指示,而且是有文件代码的位置,这也是AliOS Things的一大特点。


无标题.png



如果对代码进行修正,就可以输出正常的结果了。



无标题.png




uDataapp例程注意事项,在打开LCD显示功能时,要在主源文件uData-example.c中增加定义:


无标题.png



并修改mk文件,将LITTLEVGL_DISPLAY添加上。



无标题.png


运行的效果还是很不错的,这个屏的显示效果也很好。


VID_20190226_163236.gif



如果要把数据上传到云服务器,那么也是很简单的了,相信使用过ONENET或是机智云的朋友对以下几个参数并不陌生。

你也是要登录到阿里云的网站进行注册,并新建产品就可以了并进行相应的配置就可以把传感器的数据上传到服务器了。

还要添加DATA_TO_CLOUD的宏定义了,这个功能是可选的。



无标题.png




最后,再以最简单的helloworld例程来分析一下代码。helloworld例程应该算是最简单的一个例程,这个例程是使用AliOS的API函数进行实现。



无标题.png




这里使用了aos_post_delayed_action创建了一个1秒的定时器,这个定时器1秒种后会调用一次app_delayed_action函数,而在app_delayed_action函数中则,通过LOG函数向串口输出字符,并重新创建一个5秒的定时器来调用自己。

AliOS Things的异步事件框架使用的是Yloop,这里调用aos_loop_run函数后,将会进入事件循环,之后的事件就交由OS去处理了。其他的API的使用方式可以在这里看到说明:https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-API-YLOOP-Guide#6-aos_post_delayed_action


AliOS Things Developer Kit的强大远不止这些,其在开发方式上与其他的物联网开发板原理与步骤上是差不多的,只是使用的软件不同,还有AliOS的机制与架构上的差异,其中有大量的API函数要学习使用,与之前开发STM32的库函数类似,但每个函数的使用方式还是要参考官方的文档。而其所依托的也是优势所在就是阿里云的数据处理了。


原创作品,未经权利人授权禁止转载。详情见转载须知 举报文章

点赞 (0)
汉云 擅长:无
评论(0)

登录后可评论,请 登录注册

相关文章推荐
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回

我要举报该内容理由

×
请输入您举报的理由(50字以内)