LiteOS内核教程02-HelloWorld

Posted bearpi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LiteOS内核教程02-HelloWorld相关的知识,希望对你有一定的参考价值。

1. 创建HelloWorld工程

打开IoT Studio,点击创建IoT Studio工程:

技术图片

填写工程设置,需要注意一下几点:

  • 工程名称和目录中不可以有中文或者空格
  • SDK版本选择最新的IoT_LINK版本,当前最新1.0.0
  • 硬件平台选择STM32L431RC_BearPi
  • 示例工程选择hello_world_demo

技术图片

创建完成之后进入IoT Studio界面如图:

技术图片

2. IoT_LINK SDK

在创建工程时,会选择 SDK 版本,如图:

技术图片

Huawei IoT link SDK(下文统一简称SDK)是部署在具备广域网能力、对功耗/存储/计算资源有苛刻限制的终端设备上的轻量级互联互通中间件,您只需调用API接口,便可实现设备快速接入到物联网平台以及数据上报和命令接收等功能。

技术图片

SDK提供端云协同能力,集成了MQTT、LwM2M、CoAP、mbedtls、LwIP 全套 IoT 互联互通协议栈,且在这些协议栈的基础上,提供了开放 API,用户只需关注自身的应用,而不必关注协议内部实现细节,直接使用SDK封装的API,通过连接、数据上报、命令接收和断开四个步骤就能简单快速地实现与华为OceanConnect云平台的安全可靠连接。使用SDK,用户可以大大减少开发周期,聚焦自己的业务开发,快速构建自己的产品。

SDK和LiteOS的关系

Huawei IoT link SDK 的底层拥有OS适配层,可以适配Linux、MacOS、LiteOS,以及其它第三方OS(需要自行适配),本教程中所使用的SDK底层所适配的OS是LiteOS

SDK和IoT Studio的关系

为了用户开发方便,SDK的代码不会出现在 IoT Studio 中,IoT Studio中只有用户的目标工程代码(target),但是,SDK的代码会在编译的时候被编译进工程。

那么,SDK的代码在哪里?如何查看SDK的代码?

SDK的代码在C:UsersAdministrator.icodesdkIoT_LINK_1.0.0目录下,其中 Administrator 是我的用户名,在实际情况中会是你当前的用户名,SDK 的代码较多,所以建议使用VS Code 直接打开 IoT_LINK_1.0.0 文件夹查看。

如何更新SDK

SDK不断的进行更新,可以在 IoT Studio 的工程中进入“文件 -> 首选项”,选择“SDK 管理”,如果有新的版本被检测到,状态会变为“可更新”,更新方法为:选中该SDK,然后点击“安装/更新”即可:

技术图片

每次打开工程时都要看看SDK是否有更新,最近的一次更新为2019-11-28(今天),另外,更新 SDK 后,需要重新创建工程以刷新配置。

3. HelloWorld Demo

HelloWorld的示例代码在 Demos/hello_world_demo/hello_world_demo.c文件中,示例代码中创建了一个名称为 helloworld,优先级为 2 的任务,该任务每隔 4s 在串口打印一次数据,代码如下:

#include <osal.h>

static int app_hello_world_entry()
{
    while (1)
    {
        printf("Hello World! This is LiteOS!
");
        osal_task_sleep(4*1000);
    }
}

int standard_app_demo_main()
{
    osal_task_create("helloworld",app_hello_world_entry,NULL,0x400,NULL,2);
    return 0;
}

4.编译

IoT Studio使用 arm-none-eabi-gcc 工具链进行编译,使用 make 工具构建编译,使用*.mk 文件留给用户配置一些 makefile 中的选项。

设置编译器和make工具路径

还记得在上一篇文章中安装IoT Studio时查看的开发工具路径吗?没错,接下来我们就需要配置这两个路径:

  • arm-none-eabi-编译器路径

编译器的路径在:C:UsersAdministratoropenSourceToolsGNU Tools Arm Embedded7 2018-q2-updatein,其中 Administrator 是我的用户名,更换为你的用户名即可。

在IoT Studio中进入“工程 -> 工程配置”,选择“编译器”,配置编译器路径:

技术图片

  • make构建器路径

make构建器的路径在C:UsersAdministratoropenSourceToolsGNU MCU EclipseBuild Tools2.11-20180428-1604in,其中 Administrator 是我的用户名,更换为你的用户名即可。

在IoT Studio中进入“工程 -> 工程配置”,选择“编译器”,配置make路径:

技术图片

设置工程的makefile

整个工程的 makefile 在 GCC 目录下,在编译之前,要确保在IoT Studio中指定该makefile:

技术图片

编译工程

指定 makefile 之后,点击编译按钮技术图片即可编译整个工程,所有的编译输出信息会在控制台打印:

技术图片

目前SDK中的警告不用管,再次点击编译即可。

5. 烧录

IoT Studio 支持使用 Jlink 或者 ST-Link 下载程序,小熊派开发板板载ST-Link下载器,并且是STLink-v2.1版本,所以使用 OpenOCD 通过ST-Link 进行下载,下载设置如图:

技术图片

OpenOCD参数中st-link-v2.cfg 和 st-link-v2-1.cfg 是不同的!

设置完成之后,连接小熊派开发板到PC,点击下载按钮技术图片即可,控制台会打印出下载信息:

技术图片

烧录完成之后,开发板自动复位,程序开始运行,可以看到LCD屏幕显示如下字样:

Welcome to IoTCluB!
BearPi IoT Develop Board
Powerd by Huawei LiteOS!
Please wait for system init!

6. 查看串口输出结果

IoT Studio 集成了串口终端,可以很方便的查看串口输出信息。

在使用之前首先进行串口的设置:

技术图片

连接小熊派开发板,并且确保小熊派开发板右上角的串口选择开关拨到AT-MCU一端

然后点击查看按钮技术图片,选择串口终端:

技术图片

在控制台会显示串口终端界面,点击打开串口按钮即可,可以看到Demo程序在串口的输出如图:

技术图片

以上是关于LiteOS内核教程02-HelloWorld的主要内容,如果未能解决你的问题,请参考以下文章

LiteOS内核教程05 | 互斥锁(共享资源保护)

鸿蒙系统研究之二:内核编译

LiteOS-A内核中的procfs文件系统分析

LiteOS内核源码分析:静态内存Static Memory

一文带你剖析LiteOS互斥锁Mutex源代码

内核启动流程