hbchf 发表于 2012-5-30 21:55:00

谢谢楼主分享!

liycobl 发表于 2012-5-30 22:33:41

支持      ,

yanggexiaosa 发表于 2012-5-31 08:37:06

顶一个。。。

hzing 发表于 2012-6-10 21:07:30

强烈MARK!

沉月归巢 发表于 2012-6-10 21:20:21

很专业。看不懂呢

chenshuqu 发表于 2012-7-31 11:49:36

酷,mark!

yanke543108 发表于 2012-7-31 12:08:52

mark      

liycobl 发表于 2012-7-31 13:09:12

mark      ,

贪狼 发表于 2012-7-31 15:04:20

我是一初学者但比较感兴趣, 收藏一下

zhdo1983 发表于 2012-7-31 22:49:52

mark                  

麦芽糖 发表于 2012-8-1 12:25:45

感觉挺好的啊!怎么广告了?嗯,那能不能开个专栏来发这种…不能把别人的热情给灭了啊!你们看,都说别人不分享你说别人小气了,别人分享了又说是打广告…嗯,或许我说的不对~

亮0000仔 发表于 2012-8-4 21:28:32

好。。。。。。。。{:biggrin:}

zzx1415 发表于 2012-8-16 11:16:42

不错的文章,要是有文件版就好了

chenxujiaoyang 发表于 2012-8-16 13:34:33

顶               

jz701209李 发表于 2012-8-16 21:30:45

强帖留名.....

我不乐意啊 发表于 2012-8-16 23:50:55

顶                                       

weibinhi 发表于 2012-8-20 17:19:53

ucos51标志

jxglg 发表于 2012-8-23 19:10:51

标记,以后好好看。

zspzwal 发表于 2012-9-26 21:17:53

好东西 mark

jiangshui_642 发表于 2012-9-27 16:53:30

好久没看到这么有份量的帖子了

吴杰 发表于 2012-10-22 14:06:49

顶一下!

51_jiaduoW~W 发表于 2012-10-22 22:50:48

最近学习ucos的移植代码。看到开关中断处。有点问题



首先ucos支持三种开关中断方式

下面是pc移植的代码(ucos官方)

#defineOS_CRITICAL_METHOD    2



#if      OS_CRITICAL_METHOD == 1

#defineOS_ENTER_CRITICAL()asmCLI                  /* Disable interrupts                        */

#defineOS_EXIT_CRITICAL()   asmSTI                  /* Enableinterrupts                        */

#endif



#if      OS_CRITICAL_METHOD == 2

#defineOS_ENTER_CRITICAL()asm {PUSHF; CLI}            /* Disable interrupts                        */

#defineOS_EXIT_CRITICAL()   asmPOPF                   /* Enableinterrupts                        */

#endif



#if      OS_CRITICAL_METHOD == 3

#defineOS_ENTER_CRITICAL()(cpu_sr = OSCPUSaveSR())    /* Disable interrupts                        */

#defineOS_EXIT_CRITICAL()   (OSCPURestoreSR(cpu_sr))    /* Enableinterrupts                        */

第一种方式最简单,就不再说了。

问题是后面两种方式,这两种方式都是为了解决如下情况,逻辑一样,只是一个存到栈,一个存到变量cpu_sr中了



1.OS_ENTER_CRITICAL()

2.。。。。。。。。。。。代码

3.         OS_ENTER_CRITICAL()

4.         。。。。。。。。用户代码

5.         OS_EXIT_CRITICAL()

6.。。。。。。。。。。代码

7.OS_EXIT_CRITICAL()



如果这种情况用 第一种方式不能保证 1-7行中断都是关着的,因为第5行调用了开中断指令

所以用后两种方式就很好的解决了这个问题

!!!!!!!

这才有我的问题。问题处在(比如第二种方式)

#if      OS_CRITICAL_METHOD == 2

#defineOS_ENTER_CRITICAL()asm {PUSHF; CLI}            /* Disable interrupts                        */

#defineOS_EXIT_CRITICAL()   asmPOPF                   /* Enableinterrupts                        */

这样的话 pushf实现了保存状态标志,在退出 关中断的时候popf出栈恢复 标志寄存器内容

但是pushf不仅会将中断允许标志压入栈,同时会将其他标志,比如ZF。OF压入。那么问题就来了。调用popf恢复的中断状态标志就变成了代码第 3行执行处的标志状态了。。。。。。。。。

里面的ZF OF等标志也会恢复到了第三行的状态,正常的话那么第6行以后的代码执行应该用第5行执行后的状态标志,但是因为pushf popf的调用,那么ZF OF等的标志只是第三行的标志态。。。。岂不是执行程序就不对了



想了很久,很纠结,希望高手指教

QQ:1183557534,有知道的请回帖或联系我

49547754 发表于 2012-10-23 10:08:34

不错顶起

fanfeixing 发表于 2012-11-6 09:49:37

强烈支持,非常好的帖子!!

Eve昔枫 发表于 2012-11-6 09:58:00

楼主厉害啊!学习了

rechan886 发表于 2012-11-6 22:20:38

支持一下。。。。。。。。。。。。。。。。。

zike310 发表于 2012-11-7 07:10:43

光看这些字都要顶一个

rechan886 发表于 2012-11-12 11:09:10

我有个疑惑啊。。。。

国防大学 发表于 2012-11-13 16:20:33

顶楼主……………………………………………………

wuqiushan741826 发表于 2013-1-10 10:02:46

看了一个星期才看完,二个星期才理解,太强大了LZ

sss520sss520xx 发表于 2013-1-13 22:14:47

真是学习的好东西,非常好

tacbo2012 发表于 2013-1-16 23:23:38

顶一个 向楼主学习

diyeyuye 发表于 2013-1-17 13:50:00

必须标记一下。。。{:handshake:}大神啊!

armyang 发表于 2013-2-4 05:02:54

mark今天太累了留着以后仔细看

sololey 发表于 2013-2-4 15:46:25

mark   不错

debian123 发表于 2013-2-5 11:51:18

MARK{:smile:}

中国力量 发表于 2013-2-7 17:46:10

armecos 发表于 2009-6-13 06:28 static/image/common/back.gif
网友交流之经验谈
巨龙公司系统集成开发部 杨屹 asdjf@163.com2002/11/27



这个一定会名扬千古的!!

csdf 发表于 2013-2-7 20:07:15

mark收藏收藏

lq1573 发表于 2013-2-23 12:04:04

Mark,用于以后学习

ayumi8 发表于 2013-2-25 10:07:44

太犀利了    表示新手看不懂....但是能感觉到很牛的样子....

jz701209李 发表于 2013-2-26 13:59:52

armecos 发表于 2009-6-12 23:40 uCOS51一种低成本的开发方法---ISP asdjf@163.com 2003/10/29 ...

学习一下....

404710520 发表于 2013-2-26 16:38:43

收藏了~~

charlieholy 发表于 2013-3-20 14:59:20

给跪了                                    

colorat 发表于 2013-3-21 11:44:39

mark!!!{:lol:}

dela2000 发表于 2013-4-12 23:13:16

mark,后续学习。

崆峒 发表于 2013-4-13 10:38:23

多谢楼主分享

49547754 发表于 2013-4-15 10:56:40

顶一下楼主

sup888 发表于 2013-4-15 11:34:01

Mark换电脑看,手机比较小

绿茶山人 发表于 2013-4-15 11:39:55

必须mark!!

eryueniao 发表于 2013-4-15 14:18:52

cool                                                                        

bigrocks 发表于 2013-4-15 14:34:22

mark{:smile:}{:smile:}

clarkewayne 发表于 2013-4-15 14:43:52

俺也mark吧

lovebobo 发表于 2013-4-15 15:20:54

不是一般的长啊!

zm110911 发表于 2013-4-15 17:46:50

MARK一个

clarkewayne 发表于 2013-5-7 15:17:06

太强了!!

MrMount 发表于 2013-5-8 01:29:32

高手,学习!

夜尽天明 发表于 2013-5-10 17:29:05

这东西不错

LOVEDOVE 发表于 2013-8-1 17:30:32

谢谢楼主分享

木虫 发表于 2013-8-6 19:54:41

{:smile:}{:lol:}{:smile:}

wzd5230 发表于 2013-8-9 00:30:56

这么好的帖子,如果我不留下名字,我怎么对得起amobbs

凌晨一点 发表于 2013-8-12 00:25:30

很好的学习资料啊

zlpvch 发表于 2013-8-12 00:25:48

mark         

zlpvch 发表于 2013-8-12 00:26:08

51的时代什么时候会结束呢?

fshunj 发表于 2013-9-14 11:44:53

太强大了啊

问乐寻音 发表于 2013-9-14 20:50:49

楼主辛苦了

lydmom 发表于 2013-9-15 07:42:27

mark{:handshake:}

kalo425 发表于 2013-10-16 23:00:05

armecos 发表于 2009-6-12 23:29 static/image/common/back.gif
在51单片机上硬件仿真uCOS51的说明
巨龙公司系统集成开发部 杨屹 asdjf@163.com2002/11/26
   


NB`````````````````

kuki0702 发表于 2013-10-17 08:50:00

ucos 不错 ,mark

xiaocaofei 发表于 2013-10-17 11:22:53

mark一下,有时间慢慢看

xCamel 发表于 2013-10-17 12:57:55

学习了      

enovo2468 发表于 2013-10-17 16:20:34

好,mark下{:smile:}

ch499306362 发表于 2013-10-20 17:14:28

mark!{:cry:}{:cry:}{:cry:}

Eric321 发表于 2013-11-24 14:46:33

好资料,值得学习

Eric321 发表于 2013-11-25 15:22:03

mark一下

xiong57785 发表于 2013-11-25 20:45:04

{:titter:}{:titter:}{:titter:}{:titter:}{:titter:}{:titter:}{:titter:}{:titter:}{:titter:}{:titter:}

zlliming 发表于 2013-12-30 13:51:17

楼主真个PDF的那该多好啊!!方便我们阅读啊!

jie18778884418 发表于 2014-3-6 14:08:10

好货,必须顶

LZ19992005 发表于 2014-3-6 14:15:08

学习了。看看

wyw08 发表于 2014-3-6 14:40:29

谢谢楼主分享!

机器人天空 发表于 2014-3-6 14:57:11

mark....学习一下

flame123 发表于 2014-3-6 16:22:02

太强大了!标记。

电气工程化动自 发表于 2014-3-6 18:42:24

DING,,好帖子!!!

lqr 发表于 2014-4-30 14:05:53

mark         

lydmom 发表于 2014-4-30 22:53:27

先收藏着!谢谢分享

pxq8410 发表于 2014-5-7 10:34:01

好文,留存

iqxt88 发表于 2014-9-13 18:47:47

好东西,顶一下

chinabox 发表于 2014-9-13 20:09:11

mark                  

wshg 发表于 2014-9-14 14:42:12

不错的文章,先标记一下.

ggchao 发表于 2014-9-14 17:32:26

写的非常详细,good

hkjabcd 发表于 2014-9-14 18:54:28

先MARK,有时间再看看

vala 发表于 2014-9-29 10:33:40

好东西,正准备学习

yuzr 发表于 2014-9-29 10:54:35

好贴,要是能弄成PDF就好了。呵呵。

zhouq3132 发表于 2014-9-29 12:50:17

mark                  

fayuanye 发表于 2014-10-4 20:18:47

牛人!!{:victory:}{:victory:}

10xjzheng 发表于 2014-11-12 20:16:53

楼主,你移植好的51ucos的工程可以发一个给我吗?

HalenYU 发表于 2014-11-12 21:48:04

这是要出书的节奏啊

卢台长 发表于 2014-11-12 22:45:03

围观围观。

Okar 发表于 2014-11-12 23:26:34

真是好资料啊,周围有同学自己写了一个uCos,好羡慕,也想自己试试,正好有这个资料可以参考{:lol:}

ZYBing 发表于 2014-11-13 08:27:05

谢谢分享!

L7科创 发表于 2014-11-13 08:38:43

谢谢了。收藏下。
页: 1 2 3 [4] 5
查看完整版本: 《uCOS51移植心得》---七年前之《快快乐乐跟我学51单片机操作系统和IP栈》