中移OneOS开发板学习入门

中移OneOS开发板学习入门

做为一个专业的点灯爱好者,学习任何开发板开始前都是先找好学习资料,然后在学习OneOS的内核部分,外设部分,系统组件等.

OneOS

OneOS是物联网领域推出的轻量级操作系统,具有可裁剪、跨平台、低功耗、高安全等特点,支持ARM Cortex-A和 Cortex-M、MIPS、RISC-V等主流芯片架构,兼容POSIX、CMSIS等标准接口,支持Javascript、MicroPython等高级语言开发模式,提供图形化开发工具,能够有效提升开发效率、降低开发成本,帮助用户快速开发稳定可靠、安全易用的物联网应用。

OneOS在线开发文档

OneOS架构

OneOS总体架构采用分层设计,主体由驱动、内核、组件、安全框架组成。采用一个轻量级内核加多个系统组件的模式,加上海量硬件的适配支持,使OneOS具备极高的可伸缩性与易用性。操作系统整体架构如下图:
中移OneOS开发板学习入门_第1张图片

内核

极简的设计思路,在减少资源开销的情况下兼具优秀的实时响应特征,支持多任务管理调度,提供丰富的IPC策略,如信号量、互斥量、消息队列、邮箱等,提供了高效可靠的RTOS内核支撑。

驱动

提供丰富的BSP板级支撑,适配超千款MCU,支持ARM、RISC-V、MIPS、Xtensa、C-Sky等主流架构,通过抽象设计,将所有外设以设备方式进行管理,极大提升了应用开发的便利性。

组件

提供包括网络协议、云平台接入、远程升级、文件系统、日志系统、测试框架、调试工具等众多通用服务能力,也包括高精度定位等专业应用领域的完整解决方案。由于采用了模块化的设计,因此各个组件相互独立,耦合性低,易于灵活裁剪。

安全管理框架

终端侧基于信任根实现轻量级的主动检测和可信度量,提供轻量级的密码算法库及轻量级密钥管理与密钥协商机制,实现端到端安全通信。平台侧基于大数据态势感知技术,帮助用户建立端侧安全画像,根据应用场景制定不同的安全管理策略。

OneOS特点

灵活裁剪

抢占式的实时多任务RTOS内核,支持多任务处理、软件定时器、信号量、互斥锁、消息队列、邮箱和实时调度等特性,RAM和ROM资源占用极小。可灵活裁剪,搭配丰富组件,适应不同客户需求。

跨芯片平台

应用程序可无缝移植,大幅提高软件复用率。支持的主流芯片架构有:ARM Cortex-A和Cortex-M、MIPS、RISC-V等。支持几乎所有的MCU和主流的NB-IOT、4G、WIFI、蓝牙通信芯片。

组件丰富

提供丰富的组件功能,如互联互通、端云融合、远程升级、室内外定位、低功耗控制等。同时提供开放的第三方组件管理工具,支持添加各类第三方组件,以便扩展系统功能。

易于开发

一站式开发工具OneOS Studio可用于对内核和组件的功能进行配置,支持组件自由裁剪,让系统按需进行积木式构建,同时可帮助用户跟踪调试,快速定位问题。

低功耗设计

支持MCU和外围设备的功耗管理,用户可以根据业务场景选择相应低功耗方案,系统会自动采用相应功耗控制策略,进行休眠和调频调压,有效降低设备整体功耗。

安全设计

针对物联网设备资源受限、海量连接、网络异构等特点,在系统安全、通信安全、数据安全等方面提供多维度安全防护能力。

OpenCPU开发框架

支持通信SoC芯片OpenCPU开发模式,为开发者带来屏蔽复杂通信芯片差异的高效开发方式,提供统一开发体验。同时,在同样的业务功能下,减少了设备额外MCU开销和存储器的使用,大幅降低设备成本。

开发板推荐

万耦创世

万耦开发板,是移动推出的基于STM32,NXP等芯片的一个系列开发板,其由不同处理核心的核心板与万耦底板组成。万耦底板是通用的,核心板当前有STM32L475VGT6、STM32F401VET6与NXPLPC55S69三个型号,用户可根据需求选择不同的核心板。
中移OneOS开发板学习入门_第2张图片

万耦天工入门

万耦天工STM32F103

专为初学开发人员设计。其实就是正点原子的STM32F103开发板,学习使用教程可以参考正点原子的使用教程。
中移OneOS开发板学习入门_第3张图片

中国移动OneOS开发板开箱测评

2022年中移与正点原子推出OneOS学习教程。

OneOS入门内核系列课程

中移OneOS开发板学习入门_第4张图片

OneOS入门设备驱动系列课程

中移OneOS开发板学习入门_第5张图片

OneOS入门组件系列课程

中移OneOS开发板学习入门_第6张图片

万耦启物

万耦启物开发板主控芯片为(国产)灵动MM32F3277G8P,板载AHT20温湿度传感器,板载ESP8266 WiFi模块,便捷接入互联网,板载USB-TTL接口,便捷与PC连接进行串口通讯。专门为初学者设计,提供全面的基础硬件能力,同时涵盖手把手操作指导教程,方便开发者可以尽快了解OneOS系统的魅力。

硬件资源 接口丰富 上手简单

中移OneOS开发板学习入门_第7张图片

万耦启物开发板学习资料

MM32学习

灵动微电子成立于 2011 年,是中国本土通用 32 位 MCU 产品及解决方案供应商。灵动微电子的 MCU 产品以 MM32 为标识,基于 Arm Cortex-M 系列内核,自主研发软硬件和生态系统。

灵动MM32系列MCU手册例程Pack包下载指南
灵动微电子MM32 MCU 使用分享 视频教程
逐飞科技开源库

万耦启物开发板是逐飞科技设计生产的一块物联网开发板。所以在学习使用时,可以寻找相关的开源资料.

逐飞科技 MM32F327XG8P 开源库
万耦启物开发板例程资料

中移OneOS开发板学习入门_第8张图片

开发板例程资料合集提取码:8f9u
开发板支持MDK-Keil开发

启物开发板资料提供了Keil的Pack包,使用Keil开发32位芯片,对于大多数开发者都有一定的基础,能够很快的上手。

jnqm6S.jpg

工程模板

中移OneOS开发板学习入门_第9张图片

OneOS官方例程

中移OneOS开发板学习入门_第10张图片

/**
 ***********************************************************************************************************************
 * Copyright (c) 2020, China Mobile Communications Group Co.,Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 *
 * @file        main.c
 *
 * @brief       User application entry
 *
 * @revision
 * Date         Author          Notes
 * 2020-02-20   OneOS Team      First Version
 ***********************************************************************************************************************
 */

#include 
#include 
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, 1024, 3);
    OS_ASSERT(task);
    os_task_startup(task);

    return 0;
}

你可能感兴趣的:(物联网,学习笔记总结,物联网,嵌入式,oneos,mcu,RTOS)