本帖最后由 paulleonard 于 2014-5-17 14:50 编辑
我的ucos学习历程(高手勿喷)
话说在上手了stm32一段时间以后,就觉得不耍耍ucos实时操作系统总觉得非常可惜。而且本人一直对OS的东西颇为好奇,于是按捺不住内心的寂寞,在网上搜索起了学习ucos的方法。Ucos目前最为流行的是两本书,其中一本叫《嵌入式实时操作系统uc/os-2》,是邵贝贝翻译的, 这本书原著作者貌似正是ucos的祖师爷,参考价值不言而喻。另外一本则是《嵌入式实时操作系统uc/os-2原理及应用》,这本书是国内出版比较早的一本经典书籍,作者是任哲。非常幸运的是,我们学校图书馆里这两本书都能找到,果断借来仔细研读。在大致学习了一遍这两本书后,我觉得翻译本由于篇幅很大,解释很详细,更适合于查阅。而任哲的书则理论框架搭建相对清晰,但是又很难知道ucos具体细节。 所以两本搭配起来看才能一窥究竟。 就这样不断地摸索了大概有一个月,我对ucos终于有了一定的理解,但是越是对它了解深入,就越是觉得ucos的神奇,也更加想知道ucos究竟是怎么在硬件上跑的。学到这里就觉得如果不仔细剖析源代码,那终究是就个半瓶水,理论与实践无法完美结合。网上ucos代码的版本不止一个,但真正要在硬件上调试,又由于具体代码无法直接脱离硬件的平台(懂移植的都懂的,在不同平台上要做修改),因此特定的代码只能针对一个具体的硬件。这样就让我们这些新手真的望而生畏了。于是找到一个靠谱儿的,切实可行的,稳定的平台对于一个新手来说尤为重要。
在网上不断地找啊找,找啊找,找到了一个视频,好像作者是王华斌,他是在xp下Borland C 3.1就能运行ucos了。这样真的很方便,因为我在学习移植之前,可以先专心学习ucos的原理,而不用担心在我的stm32板子上是否能成功运行的问题。这种想法真的是为初学者打开了一扇大门。随着我学习时间的增加,认识的朋友也越来越多。
有天,一个朋友告诉我网上有人把ucos移植到VC下了,有源代码。 听到这,很兴奋,因为作为一名工科生来说,vc环境是非常熟悉的(学过c++都懂得)。我把源码在vc下运行了下,果然很方便呀。又可以习惯的做单步调试了。在网上仔细搜了下,不但有源码,还有视频,貌似还有本书《嵌入式实时操作系统uc/os原理与实践》作者卢有亮。抱着看看视频的想法怎么样,几集听下来发现讲的很不错。而且作者恰恰在分析源码,这点让我很认同。于是忍痛在网上买了一本书(貌似插广告了,但是这书确实不错)。这本书的特点就是属于代码与框架兼顾,属于前面两本的中和版,也许是我已经建立起概念来了才会这么觉得。但是这本书的代码解析还是非常值得大家一看的,再配合上在VC下的单步调试,这样就真正能对ucos的精髓纵览无余了。
然后就是移植了,移植的时候比较头疼,建议有一个开发板,先把移植好的源代码跑起来,然后再自己试着移植比较好。据说原子 奋斗 还有亮点 还有个刘洋的都差不多的好像,随便用一个应该就可以了。 写了这么多,做一下总结:其实我在自学时走了一些弯路,我觉得开始就应该是理论与代码兼顾,这样不会在一个很简单的问题上困惑很久(大不了老子改了代码单步调试,验证一下)。开始在pc环境下学习为好,无论是在BC下,还是VC下, 我个人倾向VC。然后搭配上一两本经典书籍(我文中写到的觉得还都不错),这样学会应该是很容易的。而且真为现在开始学ucos的人感到庆幸,因为现在的资料应有尽有。最后在此感谢为我们奉献好资料的人,祝他们好人一生平安。也期望ucos初学者能踏踏实实,戒骄戒躁,少走弯路,顺利攻下ucos。
|