本帖最后由 sdnumcu 于 2014-12-4 14:29 编辑
最近总有新人在问我要ucos移植的资料,我突发奇想想写一点关于我原来学习ucos的心得,希望能给新手起到抛砖引玉的作用。 其实学习ucos并不难,只要理解ucos的原理你就会发现ucos是很简单的一个kernel了,可又有什么好的方法来理解ucos的原理呢?难道看《μc/os-II-源码公开的实时嵌入式操作系统》.邵贝贝等译这本书就能一下理解么?我在最早看这本书的时候看了后面忘记了前面,到了最后对ucos还是一知半解,就连在bc4.5下编译都不行,几次下来我学习的劲头一点也没了,由于在工作中也不使用,所以就把这个丢到一边去了。大概过了1年吧,我又对RTOS有了兴趣,又开始学习ucos了,这次我没有再看《μc/os-II-源码公开的实时嵌入式操作系统》这本书了,觉得看的再多也不会有很大的帮助了,我在公司找了块能跑UCOS的板子,刚好这块板子是AT89C52+32kRAM的,是做解码器用的,我对C51比较熟悉,所以不会在单片机硬件这块浪费时间了。我当时的想法就是要学好ucos就必须掌握其原理,所以我就第一步想把ucos移植到我这块板子上,我移植的方法是把ucos的 kernel文件加到工程中编译,我先把要用的osstart等与CPU相关的函数全部用空函数替代,然后一步一步地往下修改编译出来的错误,把错误全部处理完后,再参考资料把与CPU相关的函数用汇编语言补上。大概耗费了我一个星期的时间吧我终于把ucos在51上移植成功了,让我惊喜的是我也明白了ucos的基本原理,觉得我一个星期的时间比以前看几次《μc/os-II-源码公开的实时嵌入式操作系统》这本书更有效果。这几年我也把ucos移植到了32位的H8/3062,FREESCALE的MC9S08AW60,凌阳的SPCE061等芯片上。去年我自己也写了个RTOS,这RTOS能管理32个任务,该RTOS支持时间片轮训和占先式调度,最主要的是很适合小RAM的芯片上运行,其kernel本身才占用86BYTES的RAM,把该内核移植到我的产品中表现相当满意,性能绝不比ucos 差。我建议想学习UCOS的人:<br>1.选好自己最熟悉的单片机,如果完全是新手那就选51吧,原因我就不说了。2.在自己的芯片上动手移植和调式UCOS。我相信只要你是个有心人ucos就是 case 了,就那么简单。 |