人们容易误解所有嵌入式产品均需要基于操作系统编程,甚至将EOS与RTOS相混淆,忽视了嵌入式应用的多样性。事实上,不是所有嵌入式系统的开发均需要RTOS,许多微控制器应用领域的嵌入式产品均采用无操作系统(NOS)编程,而应用处理器领域的嵌入式产品几乎基于嵌入式操作系统(EOS)编程。
可以从系统复杂性、多任务性、底层驱动接口一致性等角度来看是否需要使用RTOS。
● 当一个系统复杂到一定需要使用一个RTOS,且其硬件又具备足够的处理能力时。
● 需要并行运行多个较复杂的任务,任务间需要进行实时交互。
● 需要为应用程序提供统一的应用程序编程接口API(即底层驱动接口),实现应用软件与硬件驱动独立开发,方便程序代码的移植、复用,有利于提高开发效率与系统维护。
可以从性能、技术支持与成本、工具链、开发包资源等角度进行考虑。
● 性能如何?内核要求的最小开销,以及可维护性、可移植性、可扩展性。
● 技术支持如何?是否免费、是否有版税、是否可以深度开发、是否有收费陷阱等。
● 工具链如何?微处理器、在线仿真器、编译器、汇编器、链接器、调试器,以及模拟器等工具链是否成熟?
● 开发包如何?是否提供底层驱动和应用程序库(USB、GUI、以太网、Wi-Fi、文件系统、传感器、安全等)。