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
查看完整版本: 给51 DIY超轻量级多任务操作系统