1. 万耦天工开发板简介
首先,非常感谢面包板社区和中国移动官方给我这次开发板免费试用的机会,让我有机会能够体验OneOS操作系统。
中国移动万耦天工入门开发板,是三大运营商之一中国移动和开发板厂商正点原子联合开发的一款开发板,其主要功能可用来评估中国移动出品的物联网操作系统OneOS。
如果有朋友使用过正点原子的精英开发板,会感到非常熟悉,没错,它就是精英板,只不过板子上的添加了中国移动的OneOS LOGO,毕竟是合作关系,也能理解。
从中国移动OneOS官网不难得知,目前共有4款开发板,分别是:
- 万耦创世:中国移动自主研发,核心处理器模块和外设可灵活更换。
- 万耦天工入门:与正点原子联合开发,也就是本篇文章中介绍的精英版,基于STM32F103ZE。
- 万耦天工进阶:与正点原子联合开发,基于STM32MP157。
- 万耦启物:与逐飞科技联合开发,基于国产灵动MM32F3277G8P。
从MCU到MPU,从进口到国产,可分别满足不同用户对OneOS的评估需求。
2. 中国移动OneOS简介安全、中立、合规的物联网操作系统,是中国移动OneOS的定位。
OneOS是中国移动针对物联网领域推出的轻量级操作系统,具有可裁剪、跨平台、低功耗、高安全等特点,支持ARM Cortex-M/A、MIPS、RISC-V等主流芯片架构,兼容POSIX、CMSIS等标准接口,支持Javascript、Micropython语言开发,提供图形化开发工具,能够有效提高开发效率并降低开发成本,帮助客户开发稳定可靠、安全易用的物联网应用。
OneOS遵循Apache许可证2.0版本,个人、企业客户可以在商业产品中使用,不需要公布源码,没有潜在商业风险。中移物联网有限公司将秉承开放合作的态度,为客户提供适用于各种物联网场景的稳定系统。
OneOS自从2018年开始设计,到目前已经经过了5年时间的发展。
虽然发展时间不算太长,但配套的资料、文档、开发板、课程等等生态,非常齐全,对开发者很友好。
目前已经支持超过1200款芯片型号,超过77款开发板,80款模组,最小占用内存只有4KB。
和大多数RTOS一样,OneOS同样支持多款芯片架构,如主流的ARM、RISC-V,还有丰富的组件、支持FOTA升级等。
中国移动提供了一站式开发工具OneOS Studio,基于Eclipse框架和ARM GCC编译器,中文界面,免费使用。
OneOS操作系统官方开源地址:
https://gitee.com/cmcc-oneos/OneOS3. OneOS开发环境搭建
中国移动提供有开发环境
中国移动官网:
https://os.iot.10086.cn/download/toolOneOS-Studio是集成开发环境,基于Eclipse开源框架和ARM GCC编译器,类似于Keil-MDK、RT-Thread Studio等环境,OneOS-Cube可用来对系统组件进行裁剪、配置,组件贡献、下载等。
OneOS-Studio安装包大小约530MB,OneOS-Cube安装包大小约90MB,两个工具的安装方法都非常简单。
OneOS-Studio界面:
OneOS-Cube是一个命令行工具:
下面我们来演示,如果使用OneOS-Studio创建一个LED闪烁的工程,基于OneOS操作系统。
4. OneOS点亮一颗LED打开OneOS-Studio,选择新建项目
选择新建OneOS项目。
选择所使用的芯片型号,这里我们选择预设的正点原子精英板。
初次创建工程,会没有OneOS系统版本可选,需要先安装SDK包。
受网速影响,下载时间可能会比较长,耐心等待下载完成。
工程创建完成后,会生成一个模板工程,功能是控制板载的两颗LED闪烁。
是通过创建一个用户任务的方式来实现,主函数如下:
#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.pin, PIN_MODE_OUTPUT);
}
while (1)
{
for (i = 0; i < led_table_size; i++)
{
os_pin_write(led_table.pin, led_table.active_level);
os_task_msleep(200);
os_pin_write(led_table.pin, !led_table.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;
}
点击锤子图标,进行编译,编译通过后,点击下载图标,选择对应的下载器,比如J-Link进行下载。
5. 总结总得来说,OneOS也是一款嵌入式实时操作系统,和主流的FreeRTOS、uC/OS、RT-Thread,TencentOS-Tiny,LiteOS都很像,OneOS和中国移动物联网OneNET云平台有更好的适配性,如果有上中移云需求可优先考虑这个操作系统。
由于我本人主要从事FPGA和SoC开发相关工作,对于RTOS了解有限,所以并没有对OneOS有一个深度的使用体验,对这个操作系统感兴趣的朋友可以深入了解使用,欢迎互相交流学习。