软件架构

XWOS的目录结构

XWOS在设计时就充分考虑了代码的复用性、移植性以及与第三方软件的兼容性, 代码被架构成多层结构:构建系统、BSP、操作系统内核、中间件和应用。

XWOS架构图
Photo: xwos.tech / CC-BY-SA-4.0

构建系统

  • xwbs : 构建系统

BSP

  • xwcd : 编译器、CPU、SOC、外设驱动相关的代码
    • xwcd/ds : 玄武设备栈,XWOS的驱动框架
    • xwcd/perpheral : 基于玄武设备栈,实现的各种外设驱动,代码可被不同SOC共享
    • xwcd/soc : 不同SOC的XWOS移植实现层的代码
  • xwbd : 不同电路板的工程配置、调试脚本、链接脚本、驱动与应用。电路板目录还可以放在其他位置。

操作系统内核

  • xwos : 内核
    • xwos/osal : 操作系统抽象层,统一的内核API,不区分操作系统的具体实现
    • xwos/ospl : 操作系统移植层,其中定义了内核提供给BSP的回调函数以及BSP需要提供给内核的函数
    • xwos/lib : 基本C函数库,包括原子操作库、位操作库、数据结构等
    • xwos/mm : 内存管理
    • xwos/mp : 多核(mp)内核
    • xwos/up : 单核(up)内核

中间件

  • xwmd : 中间件
    • xwmd/isc : 系统间的通讯机制
      • xwmd/isc/xwcq : 线程间的循环队列
      • xwmd/isc/xwmq : 线程间的消息队列
      • xwmd/isc/xwssc : SOC与SOC间的点对点通讯协议
      • xwmd/libc : 标准C库的适配代码
      • xwmd/xwrust : XWOS RUST框架
  • xwem : 第三方开源软件
    • xwem/fs : 各种开源的文件系统
    • xwem/serializing : 序列化与反序列化
      • xwem/serializing/nanopb : protocol-buffer
    • xwem/vm : 虚拟机
      • xwem/vm/lua : Lua语言虚拟机

应用

  • xwam : 参考代码以及应用代码

文档

  • xwxr : API文档生成配置