micropython stm32f030_OneOS: OneOS是中国移动针对物联网领域推出的轻量级操作系统,具有可裁剪、跨平台、低功耗、高安全等特点,支持ARM Cortex-M/R/A、MIP...

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 2.0 license 开源协议。

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 工程师联系。

开发板名称

资料链接

apollo

gd32vf103-Longan-nano

stm32f030-vanviot-s5

stm32f091-nucleo-64

stm32f103-c8t6-demo

stm32f103-m5310-nbiot

stm32f103-rct6

stm32f107-vct6-100

stm32f302-nucleo

stm32f303-k8t6-nucleo

stm32f334-r8t6-nucleo

stm32f401-ret6-nucleo

stm32f405-lvsn-mini

stm32f407-atk-explorer

stm32f410-rbt6-nucleo

stm32f411-ret6-nucleo

stm32f413-zht6-nucleo

stm32f429-atk-apollo

stm32f429-st-disco

stm32f446-zet6-nucleo

stm32f469-st-disco

stm32f722-st-nucleo

stm32f746-st-nucleo

stm32f767-atk-apollo

stm32f769-st-disco

stm32g071-nucleo-64

stm32h743-atk-apollo

stm32h747-st-disco

stm32h750-h750x-pro

stm32l4r5-nucleo-144

stm32l4r9-st-disco

stm32l053-nucleo-64

stm32l152-nucleo-64

stm32l432-nucleo-32

stm32l433-nucleo-64

stm32l452-st-nucleo

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,有最新的前沿消息给您推送~

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

你可能感兴趣的:(micropython,stm32f030)