中移OneOS开发板学习入门

2024-02-08 12:59

本文主要是介绍中移OneOS开发板学习入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

中移OneOS开发板学习入门

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

OneOS

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

OneOS在线开发文档

OneOS架构

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

内核

极简的设计思路,在减少资源开销的情况下兼具优秀的实时响应特征,支持多任务管理调度,提供丰富的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三个型号,用户可根据需求选择不同的核心板。

万耦天工入门

万耦天工STM32F103

专为初学开发人员设计。其实就是正点原子的STM32F103开发板,学习使用教程可以参考正点原子的使用教程。

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

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

OneOS入门内核系列课程

jnLoVJ.jpg

OneOS入门设备驱动系列课程

jnL75R.jpg

OneOS入门组件系列课程

jnLOxK.jpg

万耦启物

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

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

jnbhWV.jpg

万耦启物开发板学习资料

MM32学习

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

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

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

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

jnb4zT.jpg

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

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

jnqm6S.jpg

工程模板

jnqf7d.jpg

OneOS官方例程

jnLe41.jpg

/************************************************************************************************************************** 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 <board.h>
#include <timer/clocksource.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, 1024, 3);OS_ASSERT(task);os_task_startup(task);return 0;
}

这篇关于中移OneOS开发板学习入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/691111

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多