NuttX Notes

NuttX是一款关注于标准符合度和减小footprint的实时操作系统。NuttX中最重要的标准就是POSIX和ANSI标准,如果这些标准中缺少某些所需要的功能,那么NuttX也会尽量采用UNIX或者其他RTOS(例如VxWorks)中已有的标准API。

NuttX使用BSD协议。

关键特性:

  • 标准符合度
  • 核心任务管理
  • 模块化设计
  • 完全抢占式调度
  • 可扩展性
  • 高度可定制性
  • 可以方便地扩展到新的处理器架构、SoC架构或者板级架构
  • 支持FIFO、轮转和 “sporadic” 调度策略
  • 实时性、确定性、支持优先级继承
  • 支持Tickless Operation
  • 同POSIX/ANSI类似的任务管理、命名消息队列、信号量、时钟/定时器、信号、pthreads、环境变量、文件系统
  • 同VxWorks类似的任务管理和watchdog定时器
  • BSD套接字接口
  • 用于管理抢占策略的扩展
  • 可选的具有地址环境的任务(也就是进程)
  • 内存配置:
    • Flat embedded build
    • Protected build with MPU
    • Kernel build with MMU
  • 内存分配器
    • 标准堆内存分配
    • 微粒分配器(Granule Allocator)
    • 共享内存
    • 动态调整的、每个进程独立的堆
  • 可继承的“控制终端”和I/O重定向
  • 按需分页
  • 系统日志
  • 既可以被编译为一个开放的、平台的嵌入式RTOS,也可以被编译为一个独立的、带有系统调用接口的安全的微内核
  • 内建有针对每个线程的CPU负责统计功能
  • 文档丰富(NuttX User Guide)

MTD设备

NuttX中实现了类似于Linux中MTD的接口,统一封装了各种Raw Flash(例如NAND、OneNAND、NOR、AG-AND、ECC'd NOR等)存储器,这些设备被统一暴露为/dev/mtdN这样的设备文件。需要注意的是,例如MMC、eMMC、SD、CompactFlash这样的块设备不在MTD关注的范围之内。

results matching ""

    No results matching ""