我也试验一把ucos移植看到各位大侠的文章,同时也为了加深理解uc/os,我做了2.52版本以上(2.51版本以前的移植稍有不同)的uc/os的移植,移植过程中由于考虑不周——主要是堆栈的设计,导致耽误了一些时间,首先我希望完全应用51中的堆栈,这样做的好处是可以快速存取,但弊端是,idata区变量使用和堆栈范围都有限制,在真正应用中不实际,尤其是遇到任务多的情况。后来借鉴21ic上的gdtyy大侠移植的堆栈实现方式(有关于堆栈的解释,请参阅21ic上gdtyy大侠的文章),以c语言实现,这样的好处是,程序容易读,便于理解。当然效率较低,有兴趣的朋友可以在.src的基础上改进效率或参考gdtyy大侠的代码。
移植所用代码是基于ucos 2.61版本,编译平台是keil c51 v706a,使用EasyScope 8052F仿真运行结果——利用P1口做任务指示。
移植过程中主要参考了北航出版的《嵌入式实时操作系统 uC/OS-II》和21ic上gdtyy大侠的文章,另外修正了ucos-ii.com网站上所列的bug——见Micrium Bug.mht。
希望能和大家多多交流与学习。我的邮箱:fg_lin@xinhuanet.com
程序已经上传到上载区——ucos-II-261.rar