美文网首页IAMLIUBO的神奇物联网之旅
[AliOS-Things]AliOS-Things认识并搭建开

[AliOS-Things]AliOS-Things认识并搭建开

作者: IAMLIUBO | 来源:发表于2019-03-22 11:37 被阅读649次

    AliOS Things发布于2017年杭州云栖大会, 是 AliOS 家族旗下的、面向IoT领域的、高可伸缩的物联网操作系统,于2017年10月20号宣布在github上开源.
    Architecture Overview
    AliOS Things 支持多种CPU架构,包括:ARM,C-Sky,MIPS,rl78,rx600,xtensa等。同时AliOS Things也支持相当多的开发板.
    从架构的角度来看,AliOS Things适配了分层架构和组件架构。从上到下,AliOS Things包括以下部分:
    BSP: 板级支持包,主要由SoC开发商开发和维护
    HAL: 硬件适配层,像是WiFi,UART等
    Kernel: 包括Rhino RTOS 内核,Yloop, VFS, KV Storage等
    Protocol Stack: 包括LwIP TCPIP 协议栈, uMesh mesh networking stack等
    Security: 包括TLS, TFS(Trusted Framework Service), TEE(Trusted Exexcution Environment)等
    AOS API: AliOS Things 提供给应用软件和中间件的API
    Middleware: 阿里巴巴增值和常用的物联网组件
    Examples: 手把手的示例代码,以及一些严格测试的应用程序,像是 linkkitapp
    所有的模块都作为组件的形式存在,每一个组件都有自己的.mk文件,用来描述与其他组件的描述关系,应用程序可以很方便的通过这种形式选择需要的组件。

    今天同事跟我咨询了一点关于天猫精灵控制ESP8266点亮LED灯的事情,匆匆讲了一点,主要同事对AliOS-Things这个操作系统也不是很熟悉,所以也没很深入的去讲,其实对于这个系统我也是自己个人时间去学习的,因为去年才刚发布,我刚开始接触的时候还是夏天,那时候还没有像现在这样完善,那时候版本还是V1.3.x,其实也没投入很大功夫去学习,因为当时支持的芯片手头就两种ESP8266和ESP32,当时主要精力还是在STM32这边的,然后支持的STM32系列都是F4系列及以上。

    然后十一月份的时候2.0版本正式发布了,单从版本号就可以看出由1.3.x直接到了2.0版本,这之间的优化肯定是非常大的,所以十一月份就重新开始学习了起来,当然也是断断续续的,因为没有一个很完善的教程可以跟着去学,下面看一下2.0版本的主要更新:

    • 网络连接:

    • 增加动态注册功能,一份固件可烧录多台设备,无需每台设备烧录不同的标识字符串;

    • 增加离线倒计时例程,演示如何用linkkit API编写离线倒计时功能;

    • 增加基于BLE Breeze的蓝牙辅助配网功能;

    • 增加AT Host中MQTT和CoAP的支持;

    • 增加LoRa Turnkey版本,提供HAL移植接口、ICA LoRa AT指令集合功能;

    • uData组件:

    • 支持数据上云功能;

    • 支持传感器第三方应用服务和传感器算法;

    • 支持传感器静态校准接口;

    • 传感器API2.0,支持SPI、I2C、MODBUS接口,以及传感器驱动中断处理;

    • OTA:

    • 差分增量升级,已支持mk3060和esp8266平台;

    • 固件数字签名验证;

    • 基于iTLS https安全下载通道支持;

    • 基础OS:

    • 新增调用栈回溯、异常解析功能,覆盖Cortex-M, Cortex-A, Xtensa等主流架构;

    • 增加任务占用率统计、电源管理功能;

    • 增加modbus主模式协议;

    • 增加Cortex-A9与RSIC-V的支持;

    单单从这一版更新上就可以看出AliOS-Things在物联网方面的优势,因为本人从事的行业有关,所以对物联网方面的关注比较多一点,现在很多开源的实时操作系统都在加大对物联网设备的支持,比如:

    RT-Thread, RTOS, 物联网操作系统 - RT-Thread物联网操作系统​www.rt-thread.org

    图标 Linux基金会主导的Zephyr​www.zephyrproject.orgHuawei LiteOS​www.huawei.com 图标

    可以看出,随着物联网产业的发展,越来越多的工程师将关注点深入到了物联网这个生态的最末端-物联网终端设备,由无数的终端设备组成的巨大网络才能称之为物联网,现在都在讲大数据的价值,但是仔细想一下这个由无数的物联网设备所组成的网络,其中的数据才是真正的大数据,如何准确可靠的将这些数据上传是迫切需要解决的,所以各大嵌入式操作系统都加大了对物联网的支持,因为这些系统大多数就是运行在这些设备上的。

    阿里巴巴在大数据这一块有很大的优势,因为每天的淘宝和支付宝交易产生的数据量就是巨大的,但那仅仅是关于人的,现在应该是意识到关于物的大数据也是很重要的,所以也在加大对物联网这一块的支持。AliOS-Things怎么说呢,可以说是几乎和自家业务绑定在一块的,就是所谓的阿里生态,在这个生态里面你可以很方便的去完成某一项产品的开发,你甚至不需要去关注云端的建设和开发就能够完成一件智能硬件,所以说这个系统几乎是自家业务强相关的,但是好处在哪呢?我想也就是阿里爸爸太有钱了吧~啊哈哈哈哈,跟着胖子走总能喝口汤。

    又扯了这么多,以上都是个人见解,可能有不正确或者表述不对的地方,还请谅解。

    下面我们开始搭建一下开发环境吧,纳尼?又要搭建环境?是的,宝宝心里也苦,但宝宝不说,随着我们接触的东西越来越多,你可能会发现每学习一个新的东西,都要从头捋一下开发环境,天啦噜~真的是很麻烦呀,但是也是没有办法的,老老实实开始吧!

    开始之前我们先看一下AliOS-Things支持哪些架构和哪些芯片吧,戳卡片~

    alibaba/AliOS-Things​github.com

    图标

    可见ARM架构的占据了90%以上?不得不说ARM采取的授权方式让自己成为业内不可逾越的一座高山,大写的服!

    环境搭建其实很简单,简单来说就是阿里爸爸顾的工程师多,而且非常优秀,所以我们是有可视化IDE的,虽然是基于VS code做的插件,但这也很不错了,毕竟广大开发者还是比较依赖于IDE的,这里给出官方指导教程;

    alibaba/AliOS-Things​github.com

    图标

    大家根据自己的系统选择相应的操作方式,都是中文的相信大家一看就懂,按照教程来准没错~

    我这里给大家介绍的是Windows如何在AliOS-Things上搭建ESP8266的开发环境,可能有点绕,但是总体思路就是AliOS-Things在Windows上没法直接编译ESP8266的代码,所以我们还需要借助其他工具来编译我们的代码,这样应该是懂了吧?

    这里就简单给大家讲一下在Windows下安装Docker环境,在Docker容器下编译我们的代码,大家如果对Docker不熟悉也没关系,我们不需要了解Docker是什么,只需要知道怎么用就好,我们先会用就好了,戳卡片下载:

    https://download.docker.com/win/stable/DockerToolbox.exe​download.docker.com

    上面的下载的Docker Tool Box是针对除了windows10专业版或企业版以外的系统,windows10专业版或企业版可以直接下载Docker安装包进行安装:

    https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe​download.docker.com

    安装完成后我们找到Docker Quickstart Terminal图标双击打开,这一步会下载一些必须的组件和设置一些东西,请耐心等待,有可能会失败,多半是网络的原因,我的建议是多尝试几次就好了,出现一下界面就恭喜你安装Docker成功了!

    image

    接下来我们需要拉取一下可以编译ESP8266的镜像(其实就是一个包含了编译器的Linux系统镜像),方式也很简单:

    docker pull imliubo/alios-things:v1
    
    

    我这里由于已经拉取过了,所以没有下载过程,大家拉取的时候应该是有下载过程的:

    image

    到这一步我们就需要拉取一下AliOS-Things的代码了,前面我们已经装好了IDE,这里我们只需要拉取一下V2.0的代码就好了:

    git clone https://github.com/alibaba/AliOS-Things.git -b rel_2.0.0
    
    

    下载完成后我们使用VS code打开下载的代码目录:

    image

    其中左下角五个图标依次是:编译、烧录、连接设备、新建工程、清除编译产生的中间文件,

    helloworld@esp8266是什么意思呢?

    image

    helloworld是工程名,esp8266是硬件平台,我们点击左下角的helloworld@esp8266是可以修改当前工程和硬件平台的。

    我们在esp8266上跑AliOS-Things,那我们就选择esp8266就可以了,我们先来跑一下helloworld,打开工程后,不做任何修改,然后我们点一下“”图标,看是否能直接编译:

    image

    可以看到,我这里是没法直接编译的,所以我们开始用我们的Docker编译,在控制台输入以下命令:

    docker run -v "G://AliOSThings//AliOS-Things":/home/AliOS-Things --name alios-esp8266-bulid -it --rm imliubo/alios-things:v1
    
    

    其中“G://AliOSThings//AliOS-Things”根据你的拉取的代码路径自行更改,成功显示以下界面表示成功;

    image

    然后开始编译我们的代码:

    aos make helloworld@esp8266
    
    
    image

    编译成功如下图:

    image

    实际编译生成的文件我们可以从打印的日志中找到:

    image

    对应的文件可以在以下路径找到:

    image

    这就是刚刚编译生成的Bin文件,我们使用乐鑫的工具进行下载:

    image

    其余的三个Bin文件,都在此目录下可以找到:

    image

    下载完成后我们用串口助手看一下,这里波特率是921600,不要选错:

    image

    可以看到成功打印出了helloworld,后面的字符也是在例程中,可以对比一下看看是不是。

    至此完成,这篇文章前前后后写了一个星期,最近实在是有点忙,没能及时更新,昨晚更是凌晨一点才睡的。。。。。这篇文章耗费的时间有点多,可能有些地方难免有疏漏,大家看出来了可以及时指出。

    另:

    1.Docker镜像的原作者是:

    Docker Hub​hub.docker.com

    感谢walker2048的分享。

    有没理解的地方可以私信我~
    QQ交流群:592587184

    相关文章

      网友评论

        本文标题:[AliOS-Things]AliOS-Things认识并搭建开

        本文链接:https://www.haomeiwen.com/subject/heslvqtx.html