物联网软件需求
物联网设备的多样性、使用场景可能与传统嵌入式设备存在较大差异,催生了很多对物联网操作系统的新需求,核心需求主要有以下几点:
- 轻量级
物联网端设备数量巨大,对硬件成本十分敏感,物联网操作系统应该要轻量级,资源开销要少,可以在价格低廉、资源紧张的MCU上运行
- 跨平台
物联网操作系统除了要支持最常见的Cortex-M体系结构外,还要带有驱动框架以屏蔽不同硬件平台的差异,实现应用跨平台
- 高度可伸缩
从小型的传感器节点到个人穿戴设备、智慧家电等都可以使用同一套物联网操作系统来实现,在功能足够丰富的同时,做到高度可伸缩可裁减,满足不同应用场景对底层软件的需求
- 强安全
近年来物联网大规模化应用越来越多,针对物联网的攻击也越来越多,物联网操作系统应能做到信息安全和系统安全
- OTA升级
物联网端设备在运营过程中,功能不断调整、增加,发现的问题不断修复,物联网操作系统应支持FOTA(空中升级)技术,升级做到快速并安全,支持镜像备份和回滚
- 低功耗
有些物联网端设备使用电池供电,对低功耗有较高要求。物联网操作系统应具备优秀的电源管理框架,充分发挥MCU的电源管理、休眠低功耗特性,满足电池供电应用场景节能需求,降低应用在处理低功耗问题上的难度
- 开发者友好
物联网操作系统应对开发者友好,降低开发者学习、使用、解BUG成本,还需要对测试、量产环节友好,实现产品快速上市
MS-RTOS 安全物联网操作系统特点
MS-RTOS(Micro Safe RTOS)是翼辉信息全新设计的一款面向未来物联网需求的新一代小型物联网操作系统,其显著的特点是开创性地在没有 MMU 和资源受限的 MCU(如Cortex-M3)上也能支持多进程与动态装载技术,使得应用与系统能分离开发、独立升级;MS-RTOS 支持内核空间内存保护(应用程序通过 syscall 访问内核),使得内核有着非常高的安全性。MS-RTOS 在提供足够丰富功能的同时,保持了高效简洁的实现,对 ROM、RAM 消耗极低,特别适用于对硬件成本敏感、安全性要求特别高的产品。与此同时翼辉信息提供了一套功能强大的集成开发环境 IDE,给开发者在各种开发阶段提供了强而有力的支撑。
MS-RTOS主要有以下几个特点:
- 支持动态装载APP和多APP运行
MS-RTOS支持动态装载APP和支持多APP运行,使得应用程序能与系统、驱动程序分离开发、独立升级,实现了软件定义设备的理想,使物联网设备从功能设备转变为智能设备,类似于功能手机到智能手机的转变。
MS-RTOS的XIP-ANYWHERE动态装载技术,无需装载APP镜像到 RAM 中执行,大大降低了对RAM的需求,同时片内FLASH XIP运行速度比RAM更快,使得MCU上的动态装载APP变得真正实用。同时MS-RTOS的应用程序编译时无需指定运行地址,一次编译,处处运行,使用更灵活。
- 强安全
安全性方面,MS-RTOS在众多RTOS中独树一帜,达到了前所未有的高度。
- 内核保护
MS-RTOS的APP进程工作在 CPU 用户态,只能通过系统调用(syscall)进入内核, 保护内核不被进程破坏。
- 进程地址隔离
MS-RTOS利用 MPU 或MMU做到进程地址空间相互隔离,锁定应用问题的作用范围,避免应用问题传染。
- APP镜像数字签名
MS-RTOS支持对APP镜像数字签名,有效阻止了未经签名或被恶意篡改或伪造的 APP 在目标系统(如智能表计设备)上运行,有效保证了目标系统的安全性。
- 掉电安全文件系统
MS-RTOS针对各种储存介质均有掉电安全文件系统解决方案,保障设备在意外断电时文件系统的安全,同时MS-RTOS FLASH文件系统解决方案支持磨损平衡,有效提高FLASH使用寿命。
- 健康监控
MS-RTOS支持设备健康监控,在驱动或应用出现问题时,能储存崩溃现场信息供后续上报云端进行分析,并及时重启系统或应用。
- APP权限可配置
MS-RTOS支持APP权限配置,限定APP能访问哪些设备、可以进行哪些系统敏感操作、可以使用多少个内核资源等,有效保证系统安全。
- 轻量级
MS-RTOS使用模块化设计,并且高度可配置,在内核全功能配置时,只占用50KB FLASH空间,最小配置时FLASH空间占用低至8KB。
- 标准配置:FLASH:50KB,RAM:32KB
- 最小配置:FLASH:8KB,RAM:4KB
- 硬实时
MS-RTOS是一款硬实时的操作系统,内核关键算法时间复杂度均是O(1):
- ns 级中断响应延迟,支持中断嵌套
- 基于优先级抢占式调度,调度时间确定
- 支持同优先级线程,时间片轮转 RR 和先来先服务 FIFO 调度
- 互斥量支持优先级继承,防止优先级翻转
- 进程切换零损耗
- 支持实时内存分配
- 低功耗
MS-RTOS实现了一个功能完整的电源管理框架,帮助应用轻松实现设备低功耗,满足电池供电应用场景节能需求:
- 支持 Tick-less 技术,减少 Tick 中断开销
- 支持CPU和设备调整频率运行
- 设备低功耗框架
- 系统空闲时 CPU 进入深度睡眠
- OTA升级
MS-RTOS支持 OTA升级技术,能支持APP与系统独立升级,相比传统捆绑模式,升级粒度更小、速度更快,此外MS-RTOS还提供了差分包升级的支持,节约通信流量的同时做到实现快速升级。
- 功能丰富
MS-RTOS提供了完善的C库和C++支持及BSD/socket接口,可移植大量的开源或商业中间件,翼辉也通过开源社区www.github.com/ms-rtos 提供了大量的开源中间件支持,有效满足高端智能设备的中间件需求:
类型 |
中间件 |
图片 |
libpng, libjpeg, stb, tjpgd, qrcode |
音频 |
mp3, flac, aac, wav |
AI推理 |
cmsis-nn |
网络 |
lwip_net, esp_at_net, goahead, netutils |
无线 |
lorawan, nimble, zigbee, openthread |
压缩 |
zlib |
文件系统 |
fatfs, uffs, yaffs2, littlefs, edgefs |
GUI |
nxp_emwin, st_emwin, st_touchgfx, littlevgl, awtk, guix, u8g2 |
格式 |
c-capnproto, iniparser, cjson, jsmn, tinycbor,protobuf-c, nanopb, http_parser, nghttp2 |
脚本引擎 |
jerryscript, lua |
USB |
st_usb_stack, nxp_usb_stack |
安全 |
tinycrypt, tinydtls, mbedtls |
物联网 |
paho-mqtt-embedded-c, paho-mqtt-sn-embedded-c, libcoap, microcoap,liblwm2m, mongoose,sddc |
数据库 |
tkvdb, sqlite3 |
其它 |
coremark, fcb2, freemodbus, openamp |
- 跨平台、支持众多芯片
MS-RTOS支持在主流的Cortex-M和C-SKY体系结构CPU上运行,同时MS-RTOS针对不同类型的设备都提供了驱动框架,有效屏蔽不同硬件平台的差异和简化驱动开发难度,实现应用跨平台。目前MS-RTOS支持众多半导体厂商的主流芯片:
厂商 |
CPU核心 |
CPU型号 |
ST |
Cortex-M0 |
STM32F0系列 |
Cortex-M3 |
STM32F1系列 |
|
Cortex-M4 |
STM32F4系列 |
|
Cortex-M7 |
STM32F7系列 |
|
Cortex-M7 |
STM32H7系列 |
|
Cortex-M33 |
STM32L5系列 |
|
NXP |
Cortex-M7 |
i.MX RT 10xx系列 |
GigaDevice |
Cortex-M23 |
GD32E23x系列 |
Cortex-M4 |
GD32F30x系列 |
|
Cortex-M4 |
GD32F4xx系列 |
|
BEIJING SMARTCHIP MICROELECTRONICSS |
Cortex-M4 |
SCM4XX系列 |
Cortex-M4 |
SCCB9001xx系列 |
|
CSG |
C-SKY 807 |
FUXI-M 807 |
解决应用痛点
传统的小型实时操作系统或物联网操作系统,使用起来存在较多较大的痛点,主要有以下几个:
- 安全性差
传统的RTOS,如FreeRTOS、uCOS,不支持进程和内核保护,应用工作在CPU内核态,没有真正利用CPU的MPU或MMU,没有完善的CPU异常处理逻辑,应用有问题时易造成死机或重启,并且难以分析问题原因
- OTA升级慢
传统的RTOS,由于不支持动态装载,应用和内核与驱动只能捆绑在一起链接,生成的镜像比较大,修改一行代码都需要整体升级,也不支持差分升级,OTA升级速度慢
- 低功耗实现复杂
传统的RTOS,没有完整的电源管理框架,只有Tick-less技术难以做到很好的低功耗效果,很难满足电池供电场景节能需求
- 系统平台不统一
传统RTOS,内核功能和中间件都比较少,只能满足简单设备的底层软件需求,难以支撑复杂智能设备的底层软件需求,造成不同产品线操作系统平台不统一
- 研发难度大、周期长
传统的RTOS,不提供对应的集成开发环境、测试工具,没有好用的问题分析工具和安全子系统,造成出现问题时分析极为困难,加上功能薄弱,造成研发难度大、周期长
MS-RTOS设计目标就是解决以上痛点。
典型应用
- 智能表计
- 汽车电子
- 医疗仪器
- 智能家居、智能家电
- 智能穿戴设备