为什么要使用RTOS

1.传统的嵌入式单片机编程方式

功能有限的小系统中,无限循环足够实现系统功能。单片机就一个while循环,里边定时去处理,如下图轮训方式执行。

外设的数据接收一般用中断,比如网络数据,串口数据,这种用中断收发。函数之间耦合强,阅读性就不那么强。

2. 实时操作系统

当软件设计变得庞大且复杂时,设计师应该考虑使用实时操作系统。

2.1 硬实时响应

基于优先级抢占的RTOS,根据任务的实时需求,执行优先调度。有严格时序限制的任务可以优先执行,提高应用程序对时间关键事件的响应。

2.2 系统性能最大化

针对大型的、复杂的嵌入式应用,使用一个事件驱动的RTOS,来替代基于轮询的超循环结构,可以生成一个更有效的设计,更小的存储占用,应用可以获得更多的处理器时间。

2.3 降低复杂度

RTOS允许应用划分为一个个小的自主运行的任务。任务执行自己的上下文中,不依赖其它任务或调度器。

2.4 高峰负载管理

RTOS提供了为管理系统高峰活动提供了一个有效的方法。更高的优先级分配给执行峰值负载活动的任务,确保他们在临界时间内访问处理器,在此期间,较低优先级的任务被延迟。

2.5 紧密集成的中间件

RTOS的模块化设计使得它可以很容易的增加中间件。中间件组件以任务和驱动的方式增加。他们使用RTOS提供的资源与其它任务通信。基于相应的事件被RTOS调度。

2.6 更大的开发团队

每个任务可以被认为是一个项目。通过RTOS提供的资源(队列、信号量等)来定义输入输出。将系统定义为一个个的任务,可以更容易的部署更多开发人员到一个项目。

2.7 易于调试和验证

系统划分为功能明确的任务,不依赖其它任务。在整个系统集成之前,可以很容易的调试和验证每个任务。

2.8 代码重用

RTOS系统中的模块化设计,鼓励将软件功能创建为独立的、验证过的任务。其独立性使得在其它设计中重用这些模块变得很简单。

版权声明:本文为JerryMouseLi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/JerryMouseLi/articles/14188239.html