1 Star 0 Fork 236

Dozingfiretruck / OneOS

forked from OneOS / OneOS 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

OneOS概述

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


OneOS主要特点

灵活裁剪

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

跨芯片平台

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

丰富组件

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

超低功耗设计

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

FOTA升级

提供免费的FOTA升级服务。支持加密、防篡改、断点续传等功能,同时支持智能还原和回溯机制,拥有完善的版本管理和灵活的升级策略配置机制。

全面彻底的安全设计

针对物联网设备资源受限、海量连接、网络异构等特点,参考等保2.0及《GB/T 36951-2018 信息安全技术 物联网感知终端应用安全技术要求》等规范,在系统安全、通信安全、数据安全等方面提供多维度安全防护能力。

OpenCPU开发框架

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

简易开发

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


许可协议

OneOS 代码遵循 Apache License 2.0 开源协议。


OneOS架构

OneOS 总体架构采用分层设计,主体由内核层、组件层、安全框架组成。采用一个轻量级内核加多个系统组件的模式,使物联网操作系统具备极高的可伸缩性。

内核层

极简的硬实时内核,支持多任务管理调度、任务间同步的信号量和互斥量、任务间通信的消息队列和邮箱、以及内存管理等。

组件层

包括网络协议、OneNET接入、远程升级、虚拟文件系统、SHELL命令行工具、日志系统、测试框架等。采用模块化设计,使各个组件的功能独立,易于灵活裁剪。

OneOS目录结构

目录 描述
arch 存放和 MCU(或 CPU )架构体系相关的代码。
common 存放一些通用的没有具体业务指向的程序代码,所有模块都可以使用,不通过编译选项控制是否编译
,采用默认编译进工程的方式。
components 存放组件代码,可进行裁剪。
demos 存放内核或组件的对外接口如何使用的示例程序。
docs 存放一些文档,如编码规范、编程指南等。
drivers 存放驱动的抽象层代码和具体外设的驱动代码。
kernel 存放内核代码,如任务管理及调度、任务间同步以及通信、内存管理等代码。
libc Libc 库部分硬件相关接口的底层适配。
osal OneOS操作系统接口抽象层,支持Posix接口、CMSIS接口、RT-Thread接口等
projects 各种开发板的示例工程
scripts 存放OneOS-Cube工具在编译构造时所需要的脚本文件。
thirdparty 存放第三方开源社区或第三方厂家的程序,包括组件、工具、协议实现或对接平台的代码等。
Kconfig Menuconfig配置文件,代码工程(如projects目录下的示例工程)中的Kconfig文件
会引用此文件
SConscript OneOS操作系统使用Scons构建工具时的根编译脚本,该脚本会引用其它目录
的SConscript脚本,若在OneOS操作系统根目录增加新的代码目录,需要修改
此文件(参见“从零开始构建代码工程”章节)。
LICENSE License 授权说明。

硬件支持

目前系统已支持的SOC/MCU列表如下:
芯片制造商 SOC/MCU
瑞昱 RTL8710BX
GigaDevice gd32vf103
ST STM32F030
ST STM32F091
ST STM32F103
ST STM32F107
ST STM32F302
ST STM32F303
ST STM32F334
ST STM32F401
ST STM32F405
ST STM32F407
ST STM32F410
ST STM32F411
ST STM32F413
ST STM32F429
ST STM32F446
ST STM32F469
ST STM32F722
ST STM32F746
ST STM32F767
ST STM32F769
ST STM32G071
ST STM32H743
ST STM32H747
ST STM32H750
ST STM32L4R5
ST STM32L4R9
ST STM32L053
ST STM32L152
ST STM32L432
ST STM32L433
ST STM32L452
ST STM32L475
ST STM32L496
目前系统已支持的传感器列表如下:
厂商 传感器 类型
ADI
ADXL345 加速度计
AsahiKASEI
AK8963 磁力计
BOSCH
BMP180 压力计
ST
lsm6dsl 加速度计、陀螺仪、计步计
invensense
mpu6xxx(mpu6050/mpu9250/icm20608) 加速度计、陀螺仪
ASAIR
aht10 温度计、湿度计
ROHM
BH1750 环境光照强度
Sensirion
SHT20 温度计、湿度计
目前系统已适配的开发板列表如下:

注:下列开发板均经过测试可支持 OneOS 系统,但是外设资源并不全面支持,需要用户一定程度二次开发,如果有好的意见和建议欢迎与 OneOS 工程师联系。

开发板名称 资料链接
amebaz 瑞昱-RTL8710BX
apollo
gd32vf103-Longan-nano Longan Nano
stm32f030-vanviot-s5
stm32f091-nucleo-64 ST官网 STMCU社区
stm32f103-c8t6-demo
stm32f103-m5310-nbiot OneNET论坛
stm32f103-rct6
stm32f107-vct6-100 微雪百科
stm32f302-nucleo ST官网 STMCU社区
stm32f303-k8t6-nucleo ST官网 STMCU社区
stm32f334-r8t6-nucleo ST官网 STMCU社区
stm32f401-ret6-nucleo ST官网 STMCU社区
stm32f405-lvsn-mini
stm32f407-atk-explorer 正点原子
stm32f410-rbt6-nucleo ST官网 STMCU社区
stm32f411-ret6-nucleo ST官网 STMCU社区
stm32f413-zht6-nucleo ST官网 STMCU社区
stm32f429-atk-apollo 正点原子
stm32f429-st-disco ST官网 STMCU社区
stm32f446-zet6-nucleo ST官网 STMCU社区
stm32f469-st-disco ST官网 STMCU社区
stm32f722-st-nucleo ST官网 STMCU社区
stm32f746-st-nucleo ST官网 STMCU社区
stm32f767-atk-apollo 正点原子
stm32f769-st-disco ST官网 STMCU社区
stm32g071-nucleo-64 ST官网
stm32h743-atk-apollo 正点原子
stm32h747-st-disco ST官网 STMCU社区
stm32h750-h750x-pro 野火论坛
stm32l4r5-nucleo-144 ST官网
stm32l4r9-st-disco ST官网
stm32l053-nucleo-64 ST官网 STMCU社区
stm32l152-nucleo-64 ST官网 STMCU社区
stm32l432-nucleo-32 ST官网 STMCU社区
stm32l433-nucleo-64 ST官网 STMCU社区
stm32l452-st-nucleo ST官网 STMCU社区
stm32l475-atk-pandora 正点原子
stm32l475-cmcc-oneos
stm32l496-ali-developerkit 阿里-云栖社区

贡献代码

1.在OneOS官方开源仓库界面找到右上角的fork按钮,克隆出OneOS对应的您自己仓库;

2.根据您的需求在本地git clone一份fork出仓库的代码,进行代码更新;

3.将本地您的代码更新,push 到您fork的远程分支;

4.创建符合规范的pull request,向OneOS官方开源仓库的master分支提交合入请求;

5.OneOS开发团队会定期审查pull request,在通过专家审查后合入到OneOS官方代码中。

加入OneOS社区

直接我们的访问OneOS论坛:https://os.iot.10086.cn/forum/consumer/ ,有志同道合的伙伴与您一起学习~

关注我们的微信公众号:中移OneOS,有最新的前沿消息给您推送~

加入我们的QQ群(群名OneOS交流家园,群号:158631242),有专业的开发人员与您探讨~

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] 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.

简介

OneOS是中国移动针对物联网领域推出的轻量级操作系统,具有可裁剪、跨平台、低功耗、高安全等特点,支持ARM Cortex-M/R/A、MIPS、RISC-V等主流CPU架构,兼容POSIX、CMSIS等标准接口,支持Micropython语言开发,提供图形化开发工具,能够有效提高开发效率并降低开发成本,帮助客户开发稳定可靠、安全易用的物联网应用。 官网地址:https://os.iot.10086.cn/ 展开 收起
C
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/Dozingfiretruck/OneOS.git
git@gitee.com:Dozingfiretruck/OneOS.git
Dozingfiretruck
OneOS
OneOS
master

搜索帮助