打印

唉,这么简单的问题搞这么复杂来忽悠菜鸟……

[复制链接]
楼主: 刘前辈
手机看帖
扫描二维码
随时随地手机跟帖
161
ayb_ice| | 2011-9-2 10:55 | 只看该作者 回帖奖励 |倒序浏览
KEIL的RTX不也支持ARM吗

使用特权

评论回复
162
zyj0622| | 2011-9-2 11:56 | 只看该作者
x新手进来观光各位前辈的论剑

使用特权

评论回复
163
Cortex-M0| | 2011-9-2 12:18 | 只看该作者
谢谢刘前辈耐心解答。

尽管俺现在不玩技术,但N年前玩过,对Intel的8052硬件结构还是略知一二,8052的中断系统,由于受当时的技术条件限制,执行相关中断级指令后,不能立刻响应中断,需多执行一条指令,才能响应中断,这一特征被很多高手利用,如用在仿真器中,利用这一特征做单步运行,可简化外围硬件,但是,并不是说,单步运行一定要用此方法,事实上,用此方法做的单步运行,一般用用还行,但在调试低级中断过程中,经常失误,多走一步或几步,原因在于该特征对其他中断也有影响,引起失误,在调试高级中断时,直接杯具了,因为单拍中断和其他高级中断抢跑道,两者只能运行其中之一,不能用单拍中断控制其他高级中断,尽管人们后来想出很多方法来打补丁弥补,但先天不足的缺陷,不可能做的很完美。  
相反,不使用该特征做的单步运行,尽管硬件复杂,但单步运行绝对可靠,无论是中断外还是中断中,高级中断还是低级中断,运行暂停运用自如。

这一特征同样被用于RTX51_FULL系统中,简化编程,但不等于非要用该特征才能玩转RTOS 的调度器。
否则,后期的流水线结构MCU, 如ARM等,就玩不转RTOS 的调度器了?
电工们都知道,当然能玩,只不过实现方法不同而已~~~

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
highgear + 1
164
刘前辈|  楼主 | 2011-9-2 13:02 | 只看该作者
#163楼 M0版主
……相反,不使用该特征做的单步运行,尽管硬件复杂,但单步运行绝对可靠,无论是中断外还是中断中,高级中断还是低级中断,运行暂停运用自如。


坚决同意。不过Intel不是为了单步调试方便才这么设计的。以前说过,当时世界OS领域的一个重要课题是:一个自我挂起的进程,如何能够进行自我切换?

      举个例子,时间片10ms 一次轮流调度,而有的任务只需要运行4ms,怎么办?RTX51最初的版本是:当前任务执行4ms之后,OS_ WAIT 阻塞自己,释放出让CPU给其它任务;怎么让?再等待6ms 下一时间片到来,让内核调度器负责切换?——岂不等于没有出让CPU ?!
    还有,阻塞自己和任务自我切换是一个原子语句,中间不能被中断;如果OS_WAIT 释放CPU最后一条语句EA=1;(这个是必然的)后面被内核中断(或调度)跳转走了,当前任务的阻塞系统调用就不是原语了(还没执行完就回不来了。)
    哈哈,所以,阻塞函数最后一条EA=1;后面紧跟着一条语句就是“关闭内核调度器。”任务调度优先。4ms 执行完释放CPU后立即执行任务切换,到下一就绪任务!
     所有这一切,如若没有EA指令后面保护一条指令执行,信号量的完成将要复杂得多了,正如什么AVR,ARM一样,“不是不能完成,而是没有硬件的支持,复杂10倍。”教材上讲的,大师们研究的方法深刻表明了这个软件问题。
    可见,Intel 之了不起之处。——它在设计51核之时,已经为它以后的RTOS做好准备了。……之所以他能到处卖他的51核专利,这么简单的事,别人想不到啊。


、、

使用特权

评论回复
165
Cortex-M0| | 2011-9-2 13:25 | 只看该作者
RTOS处理冲突的办法有两种。
第1种方法最简单:关中断。
共享数据访问完后,再开中断。
保证了原子操作。
像ucos类的RTOS基本都这样处理。

但有时关闭中断需执行较长时间,真如刘前辈所说的:“复杂10倍。”


因此,后来人们想出第2种方法
引出了“中断分层处理”这个方法。

不但加快了中数响应速度,实施过程中,并不需要增加多少代码量啊~~~

使用特权

评论回复
166
zzggigyl| | 2011-9-2 17:48 | 只看该作者
备忽悠进来的

使用特权

评论回复
167
lxnboy| | 2011-9-2 18:01 | 只看该作者
我看看,不说话

使用特权

评论回复
168
刘前辈|  楼主 | 2011-9-2 18:12 | 只看该作者

看看这个OS领域难题研究的是什么……

本帖最后由 刘前辈 于 2011-9-2 18:14 编辑

Doc12.pdf (212.67 KB)

使用特权

评论回复
169
刘前辈|  楼主 | 2011-9-2 19:07 | 只看该作者
#165楼 M0版主说的是另一回事。



今天偶然翻书,原来前辈的 DPTR=count ;  20年前就被周航慈老师理论化了。“生产者/ 消费者”  一样把OS概念用于裸奔。

EA=0;
DPTR=count ;  // 一个短小的缓冲区。
EA=1;



、、

使用特权

评论回复
170
刘前辈|  楼主 | 2011-9-2 20:45 | 只看该作者
本帖最后由 刘前辈 于 2011-9-2 20:46 编辑

正如中颖单片机执行通不过下面指令一样:

#include <reg51.h>
#include <intrins.h>

char   timecount;
sbit  LED0=P1^0;
/********************************************************
主函数
*********************************************************/

main()
{
TMOD=01;
TR0=1;
EA=1;
ET0=1;
while(1)
{
EA=1;    // T0中断被阻塞,LED0停止闪烁。
ET0=1;
PT0=1;
ET1=0;
EX0=0;      //  一直阻塞。
//_nop_( );  除非加入一条任意普通指令,中断才能在这条之后被触发。LED0才能正常闪烁。
ES=0;
EA=0;
}

}

/*********************************************************
  Time0中断函数
**********************************************************/
void Time0(void) interrupt 1 using 0
{
   TH0=0x4c;               //50ms定时
   TL0=0x00;
   timecount++;
   if(timecount==20)
   {
    timecount=0;
        LED0=!LED0;      //一秒钟闪烁一次。     
    }  
}
/*********************************************************/


、、

使用特权

评论回复
171
highgear| | 2011-9-2 22:31 | 只看该作者
不得不佩服刘公公前辈的胡扯能力, 长篇大论无非是千方百计地试图遮盖被打的脸, 刘公公前辈, 你累不累啊?

123姐姐, 没有必要告诉一只井蛙海有多广阔。

使用特权

评论回复
172
dengm| | 2011-9-3 17:45 | 只看该作者
本帖最后由 dengm 于 2011-9-3 17:54 编辑

抢夺os太耗ram了,  我用asm在51上实现过非抢夺调度器,  但stack处理好麻烦. 在at89c2051上运行都可以.
有doevents, timer, stop_tk, run_tk等系统api. 是一个多状态机系统, 每一任务(状态机) 仅用 2 bytes ram,  每一任务(状态机) 可用一个10ms为单位的定时器(10ms.. 2560ms), 每一任务(状态机) 最多64状态, 还有STOP状态及doevents状态.

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
Cortex-M0 + 1
173
Cortex-M0| | 2011-9-3 17:57 | 只看该作者
dengm老师正解~~~

这一方法好,经典之作啊~~~

使用特权

评论回复
174
alamo2009| | 2011-9-3 21:18 | 只看该作者
to:刘前辈
建议你收手吧!21IC上有好多马屁精!!!
如果有人指出21IC上那些“名人”的不足,必然有一堆马屁精在后面叫骂!!!只要有脑子的人都会看出来----这是无可置疑的!
就如我评论《感悟设计》这本书一样!评完之后,一堆人在骂,在羞辱,我跟匠人反映之后,骂人的回复已被匠人删了!我只是评论书又不是针对作者,谁知一帮子人全来针对我,发现21IC上的人骂人水平远远高于技术!!!
你的回复太长,我基本没怎么看,不知是对是错,但是我建议你收手,因为争论不出什么结果的!根本就没人看你的回复,你还长篇大论一番!洋洋自得!

使用特权

评论回复
175
Cortex-M0| | 2011-9-4 05:44 | 只看该作者
本帖最后由 Cortex-M0 于 2011-9-4 05:55 编辑

LS兄弟太有材啦,绝对是未来的诺贝尔得主!

说实话,刘前辈尽管精通Keil, 经常发明些“第一”,“填补空白”,但还没指望过拿诺贝尔奖, LS兄弟一定是红朝未来的希望,诺贝尔科技类得主第一人!

咱引用些21ic名人之言:

昨天下午收到快递送来的《感悟设计》,今天早上带到公司,走到半路下暴雨,虽然我保护的很好,但是还是淋湿了!
今天看了前三章。
感觉这这书就是扯淡的,用大篇篇幅在讲医学,而且讲完之后没有通过完整的连词将医学和电子设计衔接起来,也没有让人从医学自然而然的联想的电子设计。
我看书并不是想学单片机或者模拟电路,我是想看一下高手的思维,但是这本书把我没领上道。
不知大家对这本书有和印象?
还有,24页有个错误。
原式:Y = (R*1224)/1000 + (G*2404)/4096 + (B*467)/4096
应该改为:Y = (R*1224)/4096 + (G*2404)/4096 + (B*467)/4096...
alamo2009 发表于 2011-7-21 22:15


刘前辈回答:
前几天看到一篇**:一位大侠某一天拿起自己7年前扔在角落里的一本IT杂志,突然发现他想了5年没想通的问题,杂志上写的一清二楚。他由此感悟:

     一本书的内容,对它的读者感觉来说,不同层次的读者感觉是不一样的。写书的人,都是拎着一桶水的,他能给读者的,可能只有一杯水。对作者来说,他能拎的是多大的桶?对读者来说,自己的杯子有多大?——你需要装什么样的水。(如果你不需要,书写的再好你也没兴趣。)

     如果你的杯子正好需要《感悟》桶里的水,那么《感悟》就是好书。
     如果你的杯子比《感悟》的作者的桶还大,那读《感悟》就感觉尽是垃圾。——全由读者自己的水平层次决定。...
刘前辈 发表于 2011-7-22 19:02


---------------------------------- 可爱的分界线 -----------------------------------

LS有一遍贴子,很有意思,代表了21ic最高水平,原贴:
[侃单片机] 主题:为什么示波器一搭上,片子就发烫?
https://bbs.21ic.com/viewthread.php?tid=134747

其中论点把二姨家的机电全才,牛X的老X辩论的哑口无言,最后以老X道歉了事,感叹,老X真是技不如人啊~~~ :P

老x错了,这次真的错了。
首先,就是被6楼误导了,把他当成LZ说的了,
然后呢... 就是不该好心提醒下...

以后,老x不回新手贴得了
xwj 发表于 2009-9-26 00:08

使用特权

评论回复
176
virtualtryon| | 2011-9-4 08:05 | 只看该作者
很简单的问题,扯那么多,哥都看不下去了.
问题出在counter是int型.
counter与250比较的时候,先用低字节减去250,再用高字节减0
如果在跑主程序的时候数据是260,这时, counter刚减完250,中断来了,中断程序中被改成260,高字节由原来的1变成0,所以就出事了.
中断和主程序两个变量共用的资源一定要做互斥处理,不一定要关中断.
用一个标志位,主程序要判断前先把标志位置1,比较完后再清零,
进中断后先判断标志位,再进行处理.
想必这就是所谓的信号量了吧.
不知道||CY的用意何在.
直接用CY标志位也有这样的用法,在pic自带的EEPROM写程序中就有用借位标志的用法.

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
Cortex-M0 + 1
177
alamo2009| | 2011-9-4 10:21 | 只看该作者
To:Cortex-M0
"其中论点把二姨家的机电全才,牛X的老X辩论的哑口无言,最后以老X道歉了事,感叹,老X真是技不如人啊~~~ "

你绝对是个十足的马屁精!!!老x怎么了!是他自己不看清问题,就在那儿唧唧哇哇!
还有,你的确是个垃圾,自己也不看清问题就引用21IC上所谓名人的语录。
你还有个比较可笑的特点,擅长人云亦云!挖老底!你是版主,你可以把哥们所有帖子都搜出来,然后开一贴,置顶,让所有人都看见得罪"名人"的下场。

我的帖子都是得罪那些"名人"的,而让你这些小人羞辱的!从那个帖子起,哥们基本不在21ic上讨论技术!

谁只要得罪21IC上那些“名人”,你这个马屁精必然第一个会上来狂吠!把那些“名人”当你爹一样供着!

使用特权

评论回复
178
highgear| | 2011-9-4 11:25 | 只看该作者
alamo2009:
那个帖子俺看了一遍。老x绝不是危言耸听,而且前面的几位都说到问题的核心 ---- 地线,只是你置之不理而已。后面带有质问性质的帖子招致其他人的反感,就不足为奇了。技术问题,能解答就不错了,怎么能指望别人长篇大论把最基本,最基础的知识也写出来呢?

或许有人辱骂过你,但你把个人的仇恨对准了论坛,打击一大片,不招致反击是不可能的。俺与Cortex-M0也曾交锋过多次,正因为 Cortex-M0 属于君子一类(至少在论坛中的表现),所以俺没有采取俺对付 刘前辈(马甲:冷漠,wxj1952)的手段。你应该找羞辱你的人报仇,而不是对不相干的人发泄你的愤怒。同时以你的性格和心理素质,可能不在21ic上讨论技术更好些

使用特权

评论回复
179
刘前辈|  楼主 | 2011-9-4 14:20 | 只看该作者
本帖最后由 刘前辈 于 2011-9-4 18:20 编辑
#179楼所长
    …… 所以俺没有采取俺对付 刘前辈(马甲:冷漠,wxj1952)的手段。你应该找羞辱你的人报仇,……


哈哈!所长最好先自视一下自己是谁,在这个论坛上,你有什么资格采取对付XXX 的手段你养着一条患有精神病的家犬一天到晚在论坛上游荡,到处便溺。如今还不知道自己是谁了。以为自己是版主啦?好好看清M0是谁,别人是版主,HotPower是版主,不服气?谁对付谁呀?
          站长还没让你当版主呢,自己先干上了。先要对M0采取手段了?
         “你爸是李刚?”   嘻嘻……
  
             跟我们单位那个精神病人的行为及相像,一天到晚上班总管着别人,对主任都敢指手画脚,“我岳父是中央领导……”实际自己连老婆都没有。整天不知道自己是谁;
        大家知道他有病,每天逗他玩,成了放松压力的游戏。“highgear ,给咱唱一个吧。”

         看来所长还真是什么时候感觉受了刘前辈莫大的羞辱,从此怀恨在心了。难怪前辈走到哪,所长和他的干儿子/亲儿子highgear 就要父子合穿一件马甲 齐上阵,找羞辱过父子俩的刘前辈,冷漠和1952报仇。害的刘前辈所有的楼层上都留下了highgear 的便溺;监护人也不管。这种心理病态的人还要追着俺到何时?没事,俺有的是时间陪你玩,……一直劝所长,有那精力把自己30多年的东西好好总结,汇集成书,俺帮你出版。

        可惜了这神童人才,一辈子就为了这点虚拟的所谓尊严,发誓报仇,结果毁了自己,也毁了儿子……

     所长最早是被1952贬出论坛的。从那时起,“农民讲习所”这个ID就没脸再出现了。这和刘前辈没有丝毫关系,只是看过那场高手论剑。所长表现确实不怎么样。再加上后来放出一条 highgear 出来跳骂,惹怒了1952 ,自己把自己羞出了论坛 。这叫自取其辱。

     1952如今可能在国外已著作等身了,所长还在这犯红眼病,气闷牵着 highgear 等着1952回国报仇呢。——那就慢慢等,反正已经等了这么多年了,这会儿看谁都像1952,真病的不轻。据说1952已经回国,也许这会儿正在哪个大学讲课呢。反正绝不可能到21IC来了。——您慢慢等……快60岁了

    冷漠更不好惹,你儿子敢骂娘,冷漠就让你名声扫地。——这会儿名声不高了吧,HOTPower可是如日中天呢。——过去想把HOT贬出论坛?结果如今自己先消失了。

        冷漠告诉我 highear 和所长的关系,——上阵父子兵。这已经成为笑谈。农民讲习所这么大腕,如今要穿着儿子的马甲才敢发帖?儿子倒是骂起娘来底气十足,让人一看就是真正的highgear疯儿子,决不是那个54岁的有修养的所长父亲。——要找冷漠报仇,可以到核工业部5 院去,弄不好冷漠现在是院长助理。

        所长如今是个啥,牵着一条掉了毛的瘦狗,整天到晚寻找目标,看看要对哪位采取手段……

      唉!如今,看着刘前辈也像1952啦……没事,对1952有多少仇恨就往俺老刘身上来,俺比他们年轻人耐受。就是笑得厉害,经常笑醒。反正在家也没事干,痘你儿子玩呗……,否则所长闷出病来,是俺老刘不好。……这辈子就真的毁在对1952的仇恨上啦?

      
         没事,所长老爷子先想想采取什么手段把你儿子的病治好吧,然后再考虑明天采取什么手段把谁赶出论坛?俺笑看所长整天琢磨着手段的事,天天晚上睡不着觉……

              哈哈……你自己玩吧……。


、、

使用特权

评论回复
180
刘前辈|  楼主 | 2011-9-4 14:33 | 只看该作者
再贴个LZ的答案,笑笑所长。笑你如今一天到晚想着报仇,连消息传递都玩不出来了。难怪不好意思再穿“讲习所长”的ID。穿着highgear 骂娘的马甲,不怕跌份儿?

    万一这边刚谈着什么傅里叶变换,自动控制原理,那边突然冒出一句“你脑袋被夹啦…… ”可真是让人大跌眼镜了。……所长家里有精神病人?难怪一生辛苦照料,耽误了事业。
    敬佩,真男儿。
   

、、

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则