目前接触了几位从裸机转向rtos的人士,接触了一些项目,有一些感想,对于不了解rtos的人,可能感觉这个东西很神秘,能解决任何裸奔解决不了的事情,可事情往往不是这样的。
裸奔只做一件事情是最有效率的,如果干一件事情裸奔都很吃力,rtos解决不了硬件负债的事情,相反使用rtos会更差。举例说明,假设系统有一个20us频率的中断在cortex-m3 上面,中断内最大耗时10us。那中断内留给rtos的只有10us了,这10us内还需要调用rtos的队列发送api。虽然有的系统能响应20us中断,但是保证不了10us内能完成api的调用以及出中断处理。即使能保证,外面任务的执行效率将会很差很差。
绝大部分的rtos做不了1us以内的中断相应。也就是说中断发生了之后,需要1us就能处理用户的中断函数。
上面两个例子只能从硬件设计上去着手,从根本上去解决这个问题。比如第一个问题可以采用专用的芯片或者控制器去降低中断的频率。第二个问题可以采用fpga去完成精确地定时等等。
rtos 更像一个军队管理决策者,而不是一个冲锋在前面的勇士。一个系统越趋向复杂rtos的优势越大,一个系统越趋向简单,rtos越无用武之地。rtos很多时候不是救命稻草,硬件设计的问题还是需要硬件设计去解决,不能侥幸带到软件这边去解决,即使软件侥幸能解决这一次,下一次可能又解决不了了,不具备通用性。
应该这么说:
“裸奔”可以解决硬件能承担得了的任何问题,只要自己的水平够。
操作系统的好处则是可以降低对编程者进行复杂任务编程的能力要求和工作量。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
学习了
淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang