ucosii for 51:ucos在51单片机上的移植,版本为2.51,为一个简单的门禁控制器
ucos在51单片机上的移植,版本为2.51,为一个简单的门禁控制器,只有其框架,4个任务,时间显示,密码验证,任务调度,菜单。主体框架运行良好是在以前发过的一个状态机改过来的,因发现全部都要改,而目前更想学ucos,故只写了主体框架,即待机界面和菜单。刚学两天,只用了任务管理,想到信号量发现用不上:(。
RAM需求较大,用的是STC89C54RD+,1K的RAM,目前跑4个任务没问题。
电路10简单,就不上传了,也因核心是ucos而不是电路,NOKIA 5110LCD,DS1302,4*4 Keyboard,因时间问题,也未加注释,但编程风格良好。
点击此处下载 ourdev_556873.rar(文件大小:264K) (原文件名:uCOS_C51 V3.0.rar) 买了本ucos作者的书,贝贝老师翻译的那本,20来本书里唯一的一本“著”的,很是喜欢,打算翻烂 51跑的动ucos? 我也买了一本,可惜没看 还有本书写的也不错:μC/OS ARM移植要点详解,黄燕平写的。 向楼主学习…… 厉害,支持一下楼主 回复【楼主位】amazing030
-----------------------------------------------------------------------
你的这个代码太棒了,之前你的LED单任务代码用在STC89C516RD+上main里改个口就能用了,而且非常精简。
你的代码比杨毅的精简实在太多,很棒,值得好好研究下,太感谢了!
我也买了本邵贝贝的书,确实比任哲的写的好,其他的就更别提了。 有没有程序讲解······见笑了 51 UCOS II 下下来学习学习 你这个Ucos改得太好了,我从来没有想过操作系统也可以这样写,
你将51捉衿见肘、微不足道的资源用得出神入化,
对任务切换理解得相当深刻啊!!堪称神来之笔,鬼斧神工!
我第一次看别人写的操作系统看得如此入迷,差点忘了看小_电影!
写得太好了!
先声明,我不是枪手啊! 好好研究一下,十分感谢楼主 楼主可不可以留个QQ或者Email啊?!最近在接触uCOS,想向楼主学习一下! 回复【楼主位】amazing030
-----------------------------------------------------------------------
楼主啊!给俺个联系方式呗!想学习一下啊!最近找了一大通资料啃了很久就想完成在51上面的移植一直搞不定啊!下载了大片的代码编译的时候只有你的完全通过,太佩服你了!
能不能给个联系方式嘛!QQ或者Email都好啊!我的QQ:791799923(很少登录,不过最近会一直开着等着),Email:GreyZhang@126.com(每天至少查看两次)。希望楼主能够回复啊~~! 谢谢楼主了! 感谢楼主 学习学习 看看 LZ之前的那个也很好,占用的RAM真少 编译报错。。。。
TO ".\OutPut\uCOS-II"
NOPRINT RAMSIZE(256)
******************************************************************************
* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 2003H BYTE (400%) *
******************************************************************************
Program Size: data=139.2 xdata=580 code=9766
LINK/LOCATE RUN COMPLETE.0 WARNING(S),0 ERROR(S)
*** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
MODULE:C:\KEIL\C51\LIB\C51L.LIB (-----)
LIMIT: 0800H BYTES
Target not created RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT
这是什么问题?找个无2K限制的版本 mark 猪,我太爱你了~~!!!真的@ 我用small rtos 在51上也写过这类的程序,当时写的是个密码锁的程序。51上移植系统感觉是牺牲一些实时性能弥补51RAM的缺陷。写点小的应用还是挺好的。 mark+look MARK MARK 谢谢楼主分享!!!!mark!!!!! mark mark mark 请问楼主,为什么我重新建立一个工程,把你的源程序加到工程中后会出现重复定义等error的提示,请问建立工程文件时有什么设置吗? mark 多谢分享,我也想好好研究下。 mark 大家都说好,来瞧瞧
谢谢楼主分享! 俺看下。 感动啊 正好要研究这个的 学习了,谢谢! 因为内部的 1k RAM 不够用,ucos II怎么改全部使用外部 RAM 吗?
外部有 32k RAM!!! mark
51 ucos 研究一下 要是能全部搞通了,成功移植上去了就NB啦。记得分享分享经验! 谢谢楼主分享!!!!mark!!!!! 51的板子有必要用操作系统吗 mark 总觉得51运行uCOS是不是太累了,资源不够啊。 留待学习 支持楼主这样的做法。
但是有几个疑问,请各位也注意一下:
1、reentrant函数的使用。
楼主的有些函数,需要定义为reentrant,比如DisplayString,这个函数被不同的task调用,Task_ReadKey和Task_KeyFunc,如果在执行的时候,可能会被打断,导致不可重入。
同样的,delay函数要小心用,不要导致重入问题。
重入函数在编译的时候,编译器会把参数、局部变量放到模拟栈中,如果没有定义成reentrant,会按照默认的分配规则,可能会导致内存覆盖的问题。因为多task,编译器对函数调用树可能没有正确建立。
2、OS_ENTER_CRITICAL的使用。
在Task_ShowTime的for(;;)调用不妥,因为这个会关系统中断,知道调用OS_EXIT_CRITICAL,才有可能执行其他的。这两条语句中的过程很多,可能会开中断。
OS_ENTER_CRITICAL,最好只用在非得关中断的地方。一般是驱动操作,对时序有要求的。
3、栈大小的设置。
MaxStkSize,是如何确定的呢?这几个都用到了同样的大小,能否解释一下?谢谢 MARK mark 学习中 MARK {:victory:} 初学者向楼主致敬{:3_42:}
向楼主学习 刚开始学51,向您学习 标记学习下 mark MARK 谢谢{:smile:} 能否发一下电路图?在PROTEUS中仿真一下,谢谢, amazing030 发表于 2010-5-25 18:04 static/image/common/back.gif
买了本ucos作者的书,贝贝老师翻译的那本,20来本书里唯一的一本“著”的,很是喜欢,打算翻烂 ...
全名叫什么? 看起来不错,研究下 我把那本书也传上来吧,如果涉及侵权请删除之 太感谢了,好好学习! 下载来看看... 资料不错,一下编译成功。 下载不了,前辈,能再分享一下吗 非常感谢分享,下载学习一下 现在都在玩FreeRTOS www.stcai.com
本帖最后由 ZHAOBAO511 于 2023-5-13 18:07 编辑
您 好,在不?请教一下这个门禁咋用的?想学一下,另外能否把之前状态机的也发一下?此程序短小精悍,内存小,值得学习!做了仿真给大家共同研究一下。
页:
[1]