打印
[uCOS/RTOS]

我的ucos学习历程(希望对新手有用)

[复制链接]
11751|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
paulleonard|  楼主 | 2014-5-17 15:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
话说在上手了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。

相关帖子

沙发
Rain_King| | 2014-5-17 15:14 | 只看该作者
其实说了这么多....在我看来,先学任务调度原理.....uCOS就非常好理解了.....

使用特权

评论回复
板凳
paulleonard|  楼主 | 2014-5-17 15:18 | 只看该作者
Rain_King 发表于 2014-5-17 15:14
其实说了这么多....在我看来,先学任务调度原理.....uCOS就非常好理解了..... ...

操作系统的多进程或者多线程是核心啊, 而实现这个最核心的是任务调度呀~   楼上也在说真理奥~  ;P

使用特权

评论回复
地板
Rain_King| | 2014-5-17 15:22 | 只看该作者
paulleonard 发表于 2014-5-17 15:18
操作系统的多进程或者多线程是核心啊, 而实现这个最核心的是任务调度呀~   楼上也在说真理奥~   ...

我也是刚学uCOS,顺带就把调度原理也学会了....在自己写一个调度任务,就基本上OK了

使用特权

评论回复
5
paulleonard|  楼主 | 2014-5-17 15:28 | 只看该作者
嗷嗷~  楼上说的任务调度原理也是一门课程? 我只知道操作系统课程中最重要的一章就是任务调度~   其实能自己写的话当然更好, 不过能看懂任务调度的源代码,学习下大师的代码,岂不是也很妙~

使用特权

评论回复
6
lyt20050326| | 2020-4-9 09:06 | 只看该作者
费了好大劲才贯通51,配合着c#做了一点通讯相关的东西。感觉有必要开始看看ARM,UCOS这一块的东西了。刚好看到这个帖子,有点引路的作用。感谢热心分享经历。

使用特权

评论回复
7
weict125| | 2020-10-13 14:21 | 只看该作者

使用特权

评论回复
8
weict125| | 2020-10-13 14:22 | 只看该作者
一直想学,一直未开始

使用特权

评论回复
9
Margon| | 2020-10-14 14:35 | 只看该作者
避坑指南啊

使用特权

评论回复
10
金木木| | 2021-1-9 20:50 | 只看该作者
感谢分享,我觉得还是要在板子上跑一跑才理解的透彻,还可能会出现一些莫名其妙的问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

21

帖子

2

粉丝