• Azure RTOS ThreadX 是专门为嵌入式应用程序设计的高性能实时内核。
  • ThreadX 服务是作为 C 库实现的,所以只有应用程序实际使用的那些服务被引入了运行时映像。 因此,ThreadX 的实际大小完全由应用程序决定。 对于大多数应用程序,ThreadX 的指令映像的大小在 2 KB 至 15 KB 之间

    picokernel™ 体系结构

    ThreadX 服务没有像传统的微内核体系结构那样将内核函数相互层叠,而是直接将其插入核心。 由此产生了最快的上下文切换和服务呼叫性能。 我们将此非分层设计称为 picokernel 体系结构。

  • ThreadX 主要是在 ANSI C 中编写的。用户需要少量的汇编语言来定制内核,从而满足基础目标处理器的需求。

    • 简单的 picokernel 体系结构
    • 自动扩展(占用空间少)
    • 确定性处理
    • 快速实时性能
    • 抢先式和协作式计划
    • 灵活的线程优先级支持
    • 动态系统对象创建
    • 无限量的系统对象
    • 经过优化的中断处理
    • 抢占阈值 (Preemption-threshold™)
    • 优先级继承
    • 事件链接 (Event-chaining™)
    • 快速软件计时器
    • 运行时内存管理
    • 运行时性能监视
    • 运行时堆栈分析
    • 内置系统跟踪
    • 广泛的处理器支持
    • 广泛的开发工具支持
    • 字节顺序完全中性

ThreadX 的大多数发行版都包含完整的 C 源代码以及特定于处理器的汇编语言。 这消除了许多商业内核所出现的“黑盒”问题。

符合 MISRA C

MISRA C 是一组编程准则,面向使用 C 编程语言的关键系统。 最初的 MISRA C 准则主要面向汽车业应用;但是,现在人们广泛认可 MISRA C 适用于任何安全关键应用。 ThreadX 符合 MISRA-C:2004 和 MISRA C:2012 的所有“必需”规则和“强制性”规则。

  • 华为、阿里的编程规范更加注重代码风格的规范

比如每行代码不能超过120个字、代码缩进、空格和大括号等的使用,这些是MisraC这样的规范中没有的

  • MisraC更加注重代码的功能性、稳定性和可维护性

比如所有的switch的case里都要有break,以防止错误逻辑的意外发生

再比如操作符两边的数据类型需要一致,以防止隐式类型转换会发生与程序员想法不一致的情况(比如uint8类型的a就不能和int16类型的b做”>” “<” “==”的比较)

MISRA-C,汽车制造业嵌入式C编码标准,最早版本为MISRA-C:1998,该标准后来的版本增加了编码规范的覆盖范围到其他高安全性系统,当前最新版本为MISRA-C:2012
1998年汽车工业软件可靠性联合会(MISRA)发布的针对汽车工业软件安全性的C语言编码规范,成为MISRA-C:1998。此编码规范最初只是针对汽车制造业的嵌入式开发,从MISRA-C:2004开始扩大覆盖范围到其他高安全性系统,最新版本为MISRA-C:2012