amobbs.com 阿莫电子技术论坛

标题: ucosii for 51:ucos在51单片机上的移植,版本为2.51,为一个简单的门禁控制器 [打印本页]

作者: amazing030    时间: 2010-5-25 17:57
标题: 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)
作者: amazing030    时间: 2010-5-25 18:04
买了本ucos作者的书,贝贝老师翻译的那本,20来本书里唯一的一本“著”的,很是喜欢,打算翻烂
作者: smarxx    时间: 2010-5-25 18:53
51跑的动ucos?
作者: longquan    时间: 2010-5-25 21:46
我也买了一本,可惜没看
作者: yangsen    时间: 2010-5-25 22:23
还有本书写的也不错:μC/OS ARM移植要点详解,黄燕平写的。
作者: arndei    时间: 2010-6-4 10:28
向楼主学习……
作者: zpyws    时间: 2010-6-4 19:32
厉害,支持一下楼主
作者: dotor    时间: 2011-1-18 10:57
回复【楼主位】amazing030  
-----------------------------------------------------------------------

你的这个代码太棒了,之前你的LED单任务代码用在STC89C516RD+上main里改个口就能用了,而且非常精简。
你的代码比杨毅的精简实在太多,很棒,值得好好研究下,太感谢了!
我也买了本邵贝贝的书,确实比任哲的写的好,其他的就更别提了。
作者: zxjupc    时间: 2011-2-18 10:36
有没有程序讲解······见笑了
作者: xxl88    时间: 2011-2-18 14:17
51 UCOS II
作者: 285915046    时间: 2011-2-18 14:28
下下来学习学习
作者: gxustudent    时间: 2011-2-18 15:16
你这个Ucos改得太好了,我从来没有想过操作系统也可以这样写,
你将51捉衿见肘、微不足道的资源用得出神入化,
对任务切换理解得相当深刻啊!!堪称神来之笔,鬼斧神工!
我第一次看别人写的操作系统看得如此入迷,差点忘了看小_电影!
写得太好了!
先声明,我不是枪手啊!
作者: rigol_fan    时间: 2011-2-18 16:08
好好研究一下,十分感谢楼主
作者: Grey    时间: 2011-3-7 11:07
楼主可不可以留个QQ或者Email啊?!最近在接触uCOS,想向楼主学习一下!
作者: Grey    时间: 2011-3-7 11:15
回复【楼主位】amazing030  
-----------------------------------------------------------------------

楼主啊!给俺个联系方式呗!想学习一下啊!最近找了一大通资料啃了很久就想完成在51上面的移植一直搞不定啊!下载了大片的代码编译的时候只有你的完全通过,太佩服你了!
能不能给个联系方式嘛!QQ或者Email都好啊!我的QQ:791799923(很少登录,不过最近会一直开着等着),Email:GreyZhang@126.com(每天至少查看两次)。希望楼主能够回复啊~~!
作者: danceman_uk    时间: 2011-3-20 23:17
谢谢楼主了!
作者: wmm20031015    时间: 2011-3-21 08:47
感谢楼主
作者: conan3314    时间: 2011-3-21 10:00
学习学习
作者: afei8856    时间: 2011-4-22 21:37
看看
作者: wangyj173    时间: 2011-4-23 00:03
LZ之前的那个也很好,占用的RAM真少
作者: henalhs    时间: 2011-4-23 00:54
编译报错。。。。
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
作者: amazing030    时间: 2011-4-23 08:33
RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT
这是什么问题?找个无2K限制的版本
作者: luck851    时间: 2011-6-30 23:18
mark
作者: zzw223226    时间: 2011-9-7 14:13
猪,我太爱你了~~!!!真的@
作者: zwb27    时间: 2011-9-12 15:30
我用small rtos 在51上也写过这类的程序,当时写的是个密码锁的程序。51上移植系统感觉是牺牲一些实时性能弥补51RAM的缺陷。写点小的应用还是挺好的。
作者: cecwxf    时间: 2011-9-21 14:15
mark+look
作者: ljmdzyx    时间: 2011-9-21 23:14
MARK
作者: ERDTxiduoduo    时间: 2011-9-22 17:47
MARK
作者: l09046162    时间: 2011-9-24 11:26
谢谢楼主分享!!!!mark!!!!!
作者: downtoearth    时间: 2011-9-24 11:57
mark
作者: downtoearth    时间: 2011-9-24 11:57
mark
作者: downtoearth    时间: 2011-9-24 11:57
mark
作者: jiyibolo    时间: 2011-9-24 13:05
请问楼主,为什么我重新建立一个工程,把你的源程序加到工程中后会出现重复定义等error的提示,请问建立工程文件时有什么设置吗?
作者: jetimchen    时间: 2011-9-24 13:27
mark
作者: liucw99    时间: 2011-9-24 14:26
多谢分享,我也想好好研究下。
作者: littlepig    时间: 2011-9-24 16:22
mark
作者: oxalis    时间: 2011-9-25 12:22
大家都说好,来瞧瞧
谢谢楼主分享!
作者: mzbhy    时间: 2011-9-25 13:02
俺看下。
作者: huhushuai123    时间: 2011-9-26 21:08
感动啊 正好要研究这个的
作者: lizhengfly    时间: 2011-11-23 21:41
学习了,谢谢!
作者: j-link    时间: 2012-1-4 20:44
因为内部的 1k RAM 不够用,ucos II怎么改全部使用外部 RAM 吗?
外部有 32k RAM!!!
作者: szcoffee    时间: 2012-1-5 15:51
mark
51 ucos
作者: zhaoliang056    时间: 2012-1-5 16:17
研究一下
作者: xiaodian2008    时间: 2012-1-5 18:26
要是能全部搞通了,成功移植上去了就NB啦。记得分享分享经验!
作者: 673217899    时间: 2012-1-9 00:59
谢谢楼主分享!!!!mark!!!!!
作者: llbdz    时间: 2012-1-9 12:58
51的板子有必要用操作系统吗
作者: shamork    时间: 2012-1-12 09:07
mark
作者: APTX4869    时间: 2012-1-12 12:02
总觉得51运行uCOS是不是太累了,资源不够啊。
作者: summerrain19    时间: 2012-2-9 10:44
留待学习
作者: idata    时间: 2012-2-12 16:48
支持楼主这样的做法。
但是有几个疑问,请各位也注意一下:
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,是如何确定的呢?这几个都用到了同样的大小,能否解释一下?谢谢
作者: duzhang    时间: 2012-2-14 14:38
MARK
作者: zhaoliang056    时间: 2012-2-14 23:49
mark
作者: wishu520    时间: 2012-2-18 11:57
学习中
作者: to_xyr    时间: 2012-2-26 12:54
MARK
作者: LingYi    时间: 2012-12-13 09:45

作者: 信天游    时间: 2012-12-13 16:04
初学者向楼主致敬
向楼主学习
作者: 咱厝人    时间: 2012-12-18 20:32
刚开始学51,向您学习
作者: sjh943498450    时间: 2013-1-28 17:17
标记学习下
作者: shiyue01    时间: 2013-6-9 00:14
mark            
作者: 880705lpdhr    时间: 2013-7-10 08:08
MARK      
作者: lsy5110    时间: 2013-7-10 09:01
谢谢
作者: ZHAOBAO511    时间: 2013-7-10 10:27
能否发一下电路图?在PROTEUS中仿真一下,谢谢, 
作者: yionline    时间: 2013-8-1 15:13
amazing030 发表于 2010-5-25 18:04
买了本ucos作者的书,贝贝老师翻译的那本,20来本书里唯一的一本“著”的,很是喜欢,打算翻烂 ...

全名叫什么?
作者: tatata000    时间: 2013-8-4 16:40
看起来不错,研究下
作者: longfeix86    时间: 2013-8-4 16:56
我把那本书也传上来吧,如果涉及侵权请删除之
作者: zhoufeng332    时间: 2013-8-5 19:27
太感谢了,好好学习!
作者: 277955973    时间: 2013-8-5 19:42
下载来看看...
作者: cnzhoujin    时间: 2019-7-19 07:22
资料不错,一下编译成功。
作者: angler12    时间: 2021-9-17 23:05
下载不了,前辈,能再分享一下吗
作者: njl2008    时间: 2022-5-16 18:54
非常感谢分享,下载学习一下
作者: 国学芯用    时间: 2022-10-25 09:34
现在都在玩FreeRTOS   www.stcai.com
[attach]599909[/attach]
作者: ZHAOBAO511    时间: 2023-5-13 17:58
本帖最后由 ZHAOBAO511 于 2023-5-13 18:07 编辑

您 好,在不?请教一下这个门禁咋用的?想学一下,另外能否把之前状态机的也发一下?此程序短小精悍,内存小,值得学习!做了仿真给大家共同研究一下。[attach]618181[/attach]






欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4