yj005
发表于 2010-6-2 23:20:01
mark
way2888
发表于 2010-6-3 20:12:34
学习了!
yijiyuanjack
发表于 2010-6-3 20:20:25
回复【6楼】yy888
-----------------------------------------------------------------------
标志
sinocxg
发表于 2010-6-3 20:23:12
mark,学习
m-aaaa
发表于 2010-6-3 22:33:24
好东东,先马克。
mick
发表于 2010-6-4 10:27:41
mark
machaelzhou
发表于 2010-6-4 20:41:24
好东西
pallana
发表于 2010-6-7 15:33:06
今天花了几个小时的时间,终于搞懂了。巧妙的利用了RET指令来切换任务。在Keil中调试通过,确实是多个任务同时。
于是,我不得不来顶作者的帖子。
下一步,我打算自己敲一遍程序,背下来,以后写的时候就是就不需要来翻帖子了。我的经验,学习编程“背”非常管用。只是不知道这算不算剽窃。
liangtao
发表于 2010-6-7 16:11:22
mark
AE86
发表于 2010-6-8 13:06:47
有时间再细看
zhijitx
发表于 2010-6-9 17:25:17
mark
cuikai12345
发表于 2010-6-9 19:39:29
mark
lovecsu
发表于 2010-6-10 01:00:06
mark
xinxinEC
发表于 2010-6-18 22:12:27
mark,学习
ljt8015
发表于 2010-6-19 17:53:25
mark!~
lffpga
发表于 2010-6-19 21:45:55
准备凳子,坐!
1145557260
发表于 2010-6-19 22:17:40
好好学习~~
yu230
发表于 2010-6-19 22:40:38
好好学习
jack_yu
发表于 2010-6-20 00:26:49
mark!
lanweijt
发表于 2010-6-21 11:27:57
标记
zhuyi25762
发表于 2010-6-25 00:32:38
感觉看不懂
benlippen
发表于 2010-6-26 18:53:08
好好学习
wukaka
发表于 2010-7-18 23:12:10
今天才发现这个好贴,要恶补呀!
maidilong
发表于 2010-7-19 01:22:00
也记录一个,牛呀
maidilong
发表于 2010-7-31 05:45:26
记录一下
zwdxsky
发表于 2010-7-31 11:00:07
强!先收了,仔细学习。。。
aeiowx
发表于 2010-7-31 15:10:42
好东西,MARK
xixiangfeng
发表于 2010-8-1 10:33:42
楼主的精神值得学习!
poet_lee
发表于 2010-8-3 10:05:46
好贴留名 谢谢分享
jinbangzhou
发表于 2010-8-3 10:59:42
mark
yoya0303
发表于 2010-8-3 23:17:54
谢谢作者 强大啊
willtakex
发表于 2010-8-10 16:53:10
感谢楼主无私的奉献,我这个菜鸟学习中。。。
rainyss
发表于 2010-8-12 02:29:55
【521楼】 pallana
积分:14
派别:
等级:------
来自:
今天花了几个小时的时间,终于搞懂了。巧妙的利用了RET指令来切换任务。在Keil中调试通过,确实是多个任务同时。
于是,我不得不来顶作者的帖子。
下一步,我打算自己敲一遍程序,背下来,以后写的时候就是就不需要来翻帖子了。我的经验,学习编程“背”非常管用。只是不知道这算不算剽窃。
算呀,不过我也是从别人那里抄来的,有protothread,还有电脑圈圈.剥完皮再穿上我做的衣服,人家就认不出来啦...
zy0818
发表于 2010-8-12 02:56:18
又学习了。
lbhj310
发表于 2010-8-12 16:16:41
先顶。慢慢看。
lbhj310
发表于 2010-8-12 16:16:55
先顶。慢慢看。
liwei20080512
发表于 2010-8-18 16:06:34
感谢楼主的精心讲解,我这个菜鸟正在入门51实时多任务,看了讲解,开始懂了
bluehacker
发表于 2010-8-18 18:53:07
欣赏楼主的精神,但我坚持认为这类在51上跑系统的想法没有意义
qilujie
发表于 2010-8-18 19:38:06
mark
rainyss
发表于 2010-8-19 00:10:52
【553楼】 bluehacker
积分:30
派别:
等级:------
来自:
欣赏楼主的精神,但我坚持认为这类在51上跑系统的想法没有意义
种树不一定为了吃桃,也可以是乘凉.
billjing
发表于 2010-8-20 19:07:11
楼主太有才了!
heyking
发表于 2010-8-20 20:29:53
good
aaa879771245
发表于 2010-8-21 11:01:19
MARK___0S
waronder
发表于 2010-8-26 17:06:01
看了之后,如醍醐灌顶呀!
fiab13
发表于 2010-8-26 18:32:33
思考中。。。
mick
发表于 2010-8-26 20:52:40
MARK
wukaka
发表于 2010-8-27 17:20:50
仔细阅读
waterloo100
发表于 2010-8-27 17:39:38
mark
TANK99
发表于 2010-8-27 19:49:01
MARK
xyz160405
发表于 2010-8-27 21:52:52
mark
coolzc
发表于 2010-8-27 21:56:30
消化了两天,今天总算有点明白了。还是要谢谢lz的详细教程啊。
关键就是这段代码:
void task_load(unsigned int fn, unsigned char tid){
task_sp = task_stack + 1;
task_stack = (unsigned int)fn & 0xff;
task_stack = (unsigned int)fn >> 8;
}
task_sp这个数组作为堆栈的SP指针指向了task_stack和task_stack组成的堆栈,task_stack在上,所以这个程序地址的高八位先弹出,然后task_stack作为程序地址的低八位弹出。这个16位地址指向task1,task2,task3三个函数。
task_sp = task_stack + 1;的表示方法是为了让指针task_sp指向task1,task2,task3三个函数的高八位地址,即lz解释的:二维数组task_stack[]中 tid-1行的第二个元素的地址。因为51的指针是先弹出程序地址的高八位,再是低八位的顺序,所以也就有了task_sp = task_stack + 1;这段程序。
唉,我也mark下,省的自己以后又在这段程序上犯糊涂了。
dengting
发表于 2010-8-27 23:03:07
撒尿标记
boboo
发表于 2010-8-27 23:23:16
mark
Cybers
发表于 2010-8-28 11:59:53
Make it
lizardno1
发表于 2010-8-28 21:47:29
mark
skjweoqi
发表于 2010-8-29 19:08:58
顶!
electron_love
发表于 2010-9-16 16:39:44
真的看不懂。厉害
wyt990
发表于 2010-9-19 08:56:24
楼主厉害,感谢分享,支持。。。。。
zhangcuejun
发表于 2010-9-20 09:58:25
高明
julou
发表于 2010-9-21 18:00:16
mark
sytu_xww
发表于 2010-9-25 16:16:56
mark
QQ373466062
发表于 2010-9-25 17:18:44
继续看
flor
发表于 2010-9-26 13:59:23
mark!
d20062303732
发表于 2010-9-26 14:37:25
markkkkkk
shaobing1231
发表于 2010-9-26 15:03:52
mark~~
楼主给的东西不错~~!!
andrew_dj
发表于 2010-9-26 18:03:38
顶,好好学习一下哈
anning
发表于 2010-9-26 20:43:36
mark
MA_J
发表于 2010-9-26 21:13:48
mark
staple
发表于 2010-9-26 22:20:16
mark
ITOP
发表于 2010-9-26 22:25:11
这个写的不错!
redzhch
发表于 2010-9-28 23:46:34
顶起来,仔细研究
H007
发表于 2010-9-29 17:50:28
mark
foreverliang
发表于 2010-9-30 09:48:00
好贴
zheng_8145
发表于 2010-10-2 19:40:51
mark
yi5971
发表于 2010-10-5 18:39:30
Mark
tianyuwei
发表于 2010-10-5 19:03:19
mark----------------
yulri
发表于 2010-10-6 11:51:37
强烈关注……
castlehu
发表于 2010-10-6 12:56:38
MARK
zhuhanliang
发表于 2010-10-6 13:18:04
关注贴
sdpz
发表于 2010-10-8 09:08:11
rainyss,你说接了36MHZ晶振,STC12类型标称最多35MHZ,你试过最快可以跑多快?
tianyuwei
发表于 2010-10-8 09:43:22
mark-------------
czy8787475
发表于 2010-10-8 10:31:24
mark
zhanghzhan
发表于 2010-10-8 10:45:49
markj
GOOOOL
发表于 2010-10-8 17:49:29
回复【楼主位】rainyss
-----------------------------------------------------------------------
强烈关注……
rainyss
发表于 2010-10-8 22:29:34
回复【595楼】sdpz
rainyss,你说接了36mhz晶振,stc12类型标称最多35mhz,你试过最快可以跑多快?
-----------------------------------------------------------------------
最高36M,多一点都不行.试过36.1XXX,结果是变成几M.
tao3236
发表于 2010-10-9 17:42:49
mark
yoko
发表于 2010-10-9 23:17:45
mark
linhuaou
发表于 2010-10-10 00:18:56
mark
wukong
发表于 2010-10-10 10:20:24
mark
wdcyf15
发表于 2010-10-11 11:05:49
一直想搞操作系统,可是……自己才菜啦……学习啦
ednchina
发表于 2010-10-12 16:15:00
写的很好。
sjssjs
发表于 2010-10-12 16:25:43
mark
biguozi
发表于 2010-10-14 00:58:19
mark it
abo83819
发表于 2010-10-14 10:56:30
好贴,讲的很生动~!!
zhanghzhan
发表于 2010-10-14 14:08:14
如果每个任务都执行完,才开始 task_switch()。那么跟时间片论调没有区别。
但是这种想法的确让人很受启发!
起码我是看得真真的!不错 非常不错。超级不错。
---吗日寇!
zeta1989
发表于 2010-10-14 14:08:46
mark
changzi2008
发表于 2010-10-14 21:41:21
支持,加油!
zhongchaogege
发表于 2010-10-14 23:21:10
写的不错!
247683915
发表于 2010-10-15 00:54:45
mark!!!
wantao0916
发表于 2010-10-15 10:31:09
先顶在学习。
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13
14
15