[STM32]

我的ucos学习历程(期望对新手有用,高手勿喷)

[复制链接]
16104|22
手机看帖
扫描二维码
随时随地手机跟帖
paulleonard|  楼主 | 2014-5-17 14:43 | 显示全部楼层 |阅读模式
本帖最后由 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。

相关帖子

jj1989| | 2014-5-24 16:26 | 显示全部楼层
感谢分享。目前还只是把STM32当单片机在用,要找个时间好好学习下操作系统了。

使用特权

评论回复
星火燎原| | 2014-6-19 17:10 | 显示全部楼层
顶一下

使用特权

评论回复
韩乐园| | 2014-6-20 09:20 | 显示全部楼层
俺也是把STM32当成单片机用,,,看到SD驱动那张 就已经跪了

使用特权

评论回复
xppx1987| | 2015-12-18 11:04 | 显示全部楼层
不错啊,向lZ学习!

使用特权

评论回复
xxqxiao| | 2016-10-8 14:45 | 显示全部楼层
看来把STM32当作单片机玩的不只是我一个啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

使用特权

评论回复
貌似我也是、、、、、

使用特权

评论回复
nmji12| | 2016-10-14 14:20 | 显示全部楼层
从裸奔到系统,其实是对系统的硬件内核和系统的内核,mcu工作模式的一种更深入的解读。先跑起来是最好入门的方式之一,但如果你在裸奔的时候就去研究系统的怎么调用,如何启动,如何中断,其实从ucos的内核学起可能会更加顺畅

使用特权

评论回复
dogglove| | 2016-10-18 11:04 | 显示全部楼层
UCOS 研究过,移植到PIC18单片机上,蛮好用的。STM32裸跑可惜了,UCOS可以用用啊

使用特权

评论回复
roykin| | 2016-10-27 22:44 | 显示全部楼层
mark!

使用特权

评论回复
深藏在云端| | 2017-1-8 14:07 | 显示全部楼层
51上可以写个操作系统吗?

使用特权

评论回复
狼烟客| | 2017-1-13 14:11 | 显示全部楼层
51单片机当然也可以,只要容量够

使用特权

评论回复
刚把得| | 2017-1-14 10:24 | 显示全部楼层
我还是先把32学好吧

使用特权

评论回复
小鱼丸| | 2017-2-12 17:14 | 显示全部楼层

使用特权

评论回复
shuiqinghan2012| | 2017-3-15 17:10 | 显示全部楼层
想学

使用特权

评论回复
深藏在云端 发表于 2017-1-8 14:07
51上可以写个操作系统吗?

51单片机当然也可以,只要容量够

使用特权

评论回复
tomlucky| | 2017-3-27 18:56 | 显示全部楼层
lz请教个问题。

是所有的stm32系列都能跑ucos? 还是那些比较高级的呢?

比如我有stm32f103tct6,但是不知道怎么判定能不能跑ucos.

使用特权

评论回复
自由一份子| | 2017-4-17 17:24 | 显示全部楼层
tomlucky 发表于 2017-3-27 18:56
lz请教个问题。

是所有的stm32系列都能跑ucos? 还是那些比较高级的呢?

所有都能跑,只是根据频率、容量、运存的不同,其所能运行的任务数和速度会有所不同,普通51单片机理论上也能跑。只要移植好,容量够,无非是速度慢点

使用特权

评论回复
free_tend| | 2017-4-20 16:41 | 显示全部楼层
曾经把uclinux移植到stm32上, usb驱动总是出问题  后来也没时间去解决。

使用特权

评论回复
tconquer| | 2017-4-27 21:30 | 显示全部楼层
mark好好学习

使用特权

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

本版积分规则

7

主题

21

帖子

2

粉丝