大家评估一下,把一个150K程序的前后台系统改成多任务系统工作量有多大?
大家评估一下,把一个150K程序的前后台系统改成多任务系统工作量有多大? 说简单也简单,对你原来的前台,创建一个线程让它去执行,然后后台依然是后台:-) 那这样使用RTOS还有意义吗?反而增加了系统的开销。如果要充分发挥在RTOS平台下的编程优势,必须要多开线程,那样的话内存使用会暴增。
且频繁的进行线程切换效率其实很低的。
相反在前后台里面使用状态机类似的编程方法,例如:
switch(step)
{
case STEP1:
case STEP2:
...
...
}
这样的架构设计一样可以做到任务的实时性。
所以我认为除非程序非常复杂(例如在32位平台上的系统),否则没必要用RTOS。 使用的是256K flash的arm芯片。原来的程序6个“任务”都在中断中跑,就界面显示在后台。感觉程序结构很不清晰合理。 如果目前的前后台工作很稳定的话,我建议你还是别急着使用RTOS。
除非要增加很多新功能,例如TCPIP USB之类的设备。等。 我的意思是,对这类迁移性的项目,可以一步步来进行,先是大循环 --> 线程。
然后是把一些相对独立些的功能模块拆分成线程
...
当最终完成时,一个易于维护的系统也就出来了。
做软件很大程度上就是在稳定性的基础上实现易维护性、模块化(以提高以后的可重用性)。 呵呵,现在的肯定是不稳定了,并且也没有其他好的解决方法。 RTOS的实质就是模块化 简单化
现在硬件不值钱
开发软件的时间值钱
所以RTOS并不是无意义的 学习 线程切换效率很低么?
我怎么觉得就切换那点时间,几乎都可以忽略不计了。反倒是switch-case浪费的cpu时间更多,每次一个个的case过去,时间都耗在比较上了,还不容易维护。
页:
[1]