智果芯
服务于百万大学生和电子工程师!

中国移动OneOS开发板开箱测评!很nice

摘要:前两天收到了中国移动送OneOS开发板。相信很多人还不了解中国移动OneOS,今天跟大家一起开箱中国移动OneOS万耦天工精英板STM32F103ZET6,来看看中国三大运营商之一的中国移动OneOS开发板长啥样!

聪明的你可能已经发现,这不就是正点原子的精英版吗?除了印有10086这个LOGO外,其他的感觉一模一样啊!

还好我手上有正点原子的精英版。拿出来一看,Oh my God ! 一毛一样!

如果你不仔细看,你都不知道这是中国三大运营商之一的中国移动OneOS的开发板。这两块板子除了LOGO不一样,其他所有的软硬件都是一样的。所以如果各位手上有正点原子的精英版可以直接拿来用!

请添加图片描述

于是我打开了中国移动OneOS的官网…..

发现中国移动OneOS一共出了四款板子,其中有两款是和正点原子合作的:STM32F103ZET6精英版和STM32MP157开发板。

万耦世创万耦天工入门万耦天工进阶万耦启物

哦,原来是和正点原子合作的。合作才能共赢嘛,对吧!

开完箱后就来建一个工程吧!

1、开发环境

目前,OneOS 开发环境主要有两种,分别是:

  1. 基于命令行的OneOS-Cube开发环境;
  2. MDK开发环境。

这两种开发环境都支持在Windows操作系统下运行,OneOS-Cube支持Linux操作系统。OneOS-Cube目前支持的主要功能如下:

  • 系统配置;
  • 项目编译构造;
  • 包贡献和下载;
  • 生成MDK(KEIL)工程。

在使用MDK开发环境时,由于OneOS配置项繁多,很难正确手动在MDK工程添加完整的待编译文件,因此建议使用OneOS-Cube工具根据Menuconfig生成的配置文件和Scons编译脚本生成正确的MDK工程,之后再使用MDK进行编译、烧录以及调试

1.安装MDK

安装mdk这里就不做演示了,相信大家的电脑安装的有keil软件

2.安装OneOS-Cube

OneOS-Cube是OneOS操作系统基于命令行的开发工具,提供系统配置、项目编译构造、包贡献下载等功能。安装工具下载链接https://os.iot.10086.cn/download/。下载完成后,文件如下:

双击OneOS-Cube.bat打开工具时,命令行工具的工作目录为当前OneOS-Cube.bat目录,为了配置和编译实际项目工程,需要切换到工程目录下。为了简化操作,可以把OneOS-Cube工具界面的操作加到右键功能中,这样可以在项目工程中直接打开OneOS-Cube工具。

依次输入如下命令,将OneOS-Cube添加到右键菜单中。

2、构建工程

OneOS v2.0.1版本已经为开发者搭建了OneOS当前所支持的MCU的标准工程模板,存放在OneOS\templates目录下,需要注意的是,开发者在使用OneOS-Cube生成工程时,使用的就是这个目录下的标准工程模板,所以禁止开发者在不和OneOS系统支持团队沟通的前提下,随意修改此目录下的任意文件。

工程模板的目录如下图所示:

上图的OneOS-V2.0.1\templates路径中,存放的是OneOS当前所支持的MCU的标准工程模板,这些工程并不能直接用作开发工程,所以接下来将会向开发者演示,如何创建一个基于STM32F103ZET6的演示工程。

打开OneOS\project目录,在安装OneOS-Cube的时候,就把OneOS-Cube添加到右键菜单栏中,目的就是为了使OneOS-Cube在特定的目录下启动,在OneOS\project目录下打开右键菜单栏,选择OneOS-Cube Here,如下图所示:

OneOS-Cube启动之后,命令行窗口如下图所示:

输入project.bat命令,如下图所示:

在这里插入图片描述

Enter键执行project.bat命令之后,开始选择工程代码的MCU型号,按照 芯片厂商MANUFACTORY–>芯片系列SERIES–>芯片型号MODEL–>芯片子型号SUB MODEL,依次选取所需的MCU,演示工程我们选择的MCU是stm32f103zet6,所以选择的结果如下图所示:

选择好所需的芯片型号之后,按下Q键退出设置菜单,这将会自动保存当前设置并生成工程代码,如果配置没有问题,那么OnsOS-Cube将会开始生成工程代码,整个过程如下图所示:

当工程代码生成结束之后,看到最后一行的scons: done building targets意味着工程构建成功,工程可以正常使用。

打开目录OneOS\project,可以看到演示工程已经建立完成,演示工程的目录名称默认就是芯片的型号,如下图所示:

打开演示工程目录OneOS\projects\stm32f103zet6-atk-elite,可以看到project.uvprojx,双击即可在MDK5中打开演示工程,如下图所示:

在演示工程目录中,可以看到application文件夹,这个目录就是存放功能代码的目录,比如在演示工程中,主要的功能只有LED的演示代码,这段代码写在main.c文件中,所以在OneOS\projects\stm32f103zet6-atk-elite\application目录下就可以看到main.c这个文件。

开发者在后续的开发过程中,业务功能相关的代码文件都可以放到OneOS\projects\stm32f103zet6-atk-elite\application目录下。

3、演示工程

在MDK5中打开演示工程,点击Build编译按钮,编译成功之后如下图所示:

#include <board.h>
#include <os_task.h>

static void user_task(void *parameter)
{
    int i = 0;

    for (i = 0; i < led_table_size; i++)
    {
        os_pin_mode(led_table[i].pin, PIN_MODE_OUTPUT);
    }

    while (1)
    {
        for (i = 0; i < led_table_size; i++)
        {
            os_pin_write(led_table[i].pin, led_table[i].active_level);
            os_task_msleep(200);

            os_pin_write(led_table[i].pin, !led_table[i].active_level);
            os_task_msleep(200);
        }
    }
}

int main(void)
{
    os_task_t *task;

    task = os_task_create("user", user_task, NULL, 512, 3);
    OS_ASSERT(task);
    os_task_startup(task);

    return 0;
}

通过OneOS-Cube工具可以直接生成MDK实例代码,这个代码很简单,首先定义了一个os_task_t的结构体指针类型的变量,然后通过os_task_create()函数创建了一个user_task的任务线程函数,接着使用断言函数assert()检查返回的参数是否正确,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误信息,终止程序执行。最后调用os_task_startup()函数开启OneOS的任务调度。

4、试验现象

将代码进行编译下载,这里分别使用了精英板和OneOS的万耦天工板子进行测试。结果如下:

万耦天工开发板

两个灯在交替闪烁

正点原子开发板

两个灯在交替闪烁
赞(0) 打赏
未经允许不得转载:智果芯 » 中国移动OneOS开发板开箱测评!很nice

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏