介绍

玄武操作系统是一款运行在单片机上的通用操作系统,可用于汽车、物联网、工控等各个领域。 玄武OS的内核是假定系统为多核系统(SMP)来设计的,但也提供单核(UP)精简版的内核。

  • 源码仓库:XuanWuOS
  • 欢迎加入QQ讨论群:820392693

玄武OS不只是一个操作系统内核,其实是关于系统内核、中间件、应用的一整套集成开发环境。 包括以下特性:

  • 开发环境支持多平台:Linux/Windows;
  • 便于扩展的编译系统,可快速集成各种组件;
  • 提供单核CPU与多核CPU两种内核;
  • 高度模块化;
  • 高可移植性,支持各种架构的MCU;
  • 支持C/C++混合开发;
  • 集成Lua虚拟机;
  • 自身的命名前缀与命名空间,防止集成第三方组件时发生命名冲突;
  • 电源管理框架。

用户可先参考上手指南选择一个开发环境,然后参考示例学习 玄武OS的各种用法。


Lua虚拟机

  • 玄武OS已经集成最新的Lua-5.4.0
  • 示例1
    • 工程: XuanWuOS/xwbd/fk429m
    • MCU:STM32F429
  • 示例2
    • 工程: XuanWuOS/xwbd/atkh743
    • MCU:STM32H743

img


玄武内核模块

玄武OS还有一个在Linux内核中实现的内核模块,安装到Linux内核后就可在内核中 调用玄武OS的API。

  • 源码仓库:XuanWuKO
  • 支持Linux内核的版本:3.0.x ~ 5.4.x 。

img


C++

  • 玄武OS支持使用C++进行开发

img


编译过程

玄武OS在终端环境,也拥有一个颜色鲜艳的编译过程。

img


源码结构

img

  • Build
    • xwbs: 编译系统 (License:Apache-2.0)
  • BSP & Project
    • xwcd: 架构、CPU、SOC、外设驱动相关的代码 (License:Apache-2.0)
    • xwbd: 工程配置、工程驱动与工程应用程序 (License:Apache-2.0)
  • OS
    • xwos: 内核 (License:MPL-2.0)
  • Middleware
    • xwmd: 驱动框架与中间件 (License:MPL-2.0)
    • xwem: 第三方开源软件

上手指南

Linux内核模块

ST STM32

NXP S32K

NXP MPC56x

编辑中...

NXP I.MX RT1052

  • 龙邱RT1052开发板...编辑中...

示例

玄武OS中有多个示例可帮助用户快速了解API的用法。可调用xxx_start()函数启动示例。

  • 线程
    • 创建线程:xwam/example/thread/create
    • 线程睡眠:xwam/example/thread/sleep
  • 定时器:xwam/example/timer
  • 同步
    • 信号量:xwam/example/sync/semaphore
    • 条件量:xwam/example/sync/condition
    • 事件信号旗:xwam/example/sync/flag
    • 线程栅栏:xwam/example/sync/barrier
    • 信号选择器:xwam/example/sync/selector
  • 临界区管理
    • 中断管理:xwam/example/lock/cpuirq
    • 自旋锁:xwam/example/lock/spinlock
    • 顺序锁:xwam/example/lock/seqlock
    • 互斥锁:xwam/example/lock/mutex
  • 内存管理
    • 简单内存分配器:xwam/example/mm/sma
    • 内存切片分配器:xwam/example/mm/memslice
    • 伙伴算法分配器:xwam/example/mm/bma

应用手册

可以在导航栏中找到应用手册的入口。

img