讨论:有了RTOS你还让STM32“裸奔”吗
UCOS无疑是开发嵌入式系统的利器,如果是使用了它们,可以使项目的前景更为看好,比裸奔拥有更高的技术含量,得到更广泛的认可.裸奔,其实从51单片机开发,我就是在裸奔,裸奔可以完成任务
但是,在STM32这样的环境下,你还裸奔吗?
STM32虽然也不贵,那是频率有72M,STM32VET6有512K的FLASH和64K的SRAM,足够跑UCOS和UCGUI
裸奔的时候演示怎么做?
傻等:for(i=0;i
for(j=0;j
;
用中断服务但还是傻等
设置定时器
do
琢磨着这点时间干点其他的实事
while(定时完成没有?)
前者的确不好,把CPU掐死了;后者有改进,但是还是要不停的判断
使用UCOS怎么做?
假设SYSTICK设置为1MS中断1次
需要等待888毫秒
做事
OSTIMEDLY(888)
继续做事
在这888毫秒中,这个任务是放弃了CPU的,完全放弃了,至于交给谁来运行,完全取决于其他任务的优先级,因此这样就合理了,你不需要“琢磨着这点时间干点其他的实事”,完全由你配置的任务的优先级来决定。
如果需要等待事件的发生才继续做
做事
PEND
继续做事
PEND不到,就要去睡觉,让其他的任务做事,例如A请求缓冲区,如果缓冲区被另一个任务B占有了,那就睡觉最好,好让B使用完缓冲区,然后B POST,在B POST的过程中,发现A在等待,就把A叫起来继续运行了。
我认为:使用RTOS抛弃裸奔,是明智的选择。请大家讨论
赞,希望能出一下STM32ucos的教程
恩恩,学习学习 :)新手学习了 给个赞都是技术牛 恩恩,学习学习 恩恩非常好
:) 国内rtos报到 suyong_yq 发表于 2013-5-20 01:30 static/image/common/back.gif
使用操作系统编程是一种全新的理念,在设计复杂应用的时候就体现出优势了。当在系统中需要不断增加新功 ...
非常感谢进士留言!学习UCOS,发展国内RTOS.
赞一个! 使用操作系统编程是一种全新的理念,在设计复杂应用的时候就体现出优势了。当在系统中需要不断增加新功能时,基于RTOS的软件系统仅需要新增任务,而裸奔情况下,不知道要改多少地方呢,改不好就死翘翘了。实际上,对RTOS的使用要根据具体需要来的,对于规模小的软件,裸奔能搞定就用裸奔好了,对于要求扩展性强并且规模不确定的情况下,就用RTOS。
不过我个人不太看好uCOS,在开源RTOS中,大家用的算法都差不多的,不过在产品中用uCOS是要花钱的。如果要花钱,不如用更NB的RTOS,例如NQX;如果不想花钱,也有不少真正开源的RTOS可以选择,例如FreeRTOS、RT-Thread等等。对于大型的应用,还有Linux、VxWorks等可以选择。uCOS用来教学还可以,但实际的实用性还得再考虑考虑。
页:
[1]
2