打印

楼上的和浙大**一样

[复制链接]
18721|81
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
highgear|  楼主 | 2009-4-14 22:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 21ic大掌柜 于 2016-8-23 10:54 编辑

-----------------------------------------------------------------------<br />冷漠&nbsp;发表于&nbsp;2009-4-13&nbsp;17:56&nbsp;侃单片机&nbsp;←返回版面&nbsp;&nbsp;&nbsp;&nbsp;<br />9楼:&nbsp;没劲,把简单的事情弄那么复杂。&nbsp;<br /><br />天花板协议。<br /><br />我也问LZ个问题:去年wxj1952“一道题终结OS/非OS之争”3000元求解,最后没有一个人能解。(其实答案是用OS解决的,很简单。但是裸奔很困难。)<br /><br />&nbsp;&nbsp;&nbsp;请真正懂OS同步、互斥机制的高手来解一下。把3000元拿走。(名誉上)<br />看看七年学到手了什么。<br />-----------------------------------------------------------------------<br /><br />!!最后没有一个人能解!!,21icbbs&nbsp;无人矣,&nbsp;冷漠兄弟,或许你是对的,我向你道歉,我们别在这里混了。<br /><br /><br />&nbsp;<br />&nbsp;<br />

相关帖子

沙发
x_tin| | 2009-4-14 22:54 | 只看该作者

我晕...........

使用特权

评论回复
板凳
yzhj| | 2009-4-14 23:24 | 只看该作者

趁着还没关门,赶紧冒个泡

呵呵!!!

使用特权

评论回复
地板
木头东瓜| | 2009-4-14 23:32 | 只看该作者

不会写程序的人路过

使用特权

评论回复
5
xwj| | 2009-4-14 23:48 | 只看该作者

典型的脑残题,以老x见贴必回的个性,都只能选择沉默,还能怎

 wxj1952 发表于 2007-12-1 17:29 侃单片机 ←返回版面   

楼主: 一道题终结拥OS与反OS之争

 这是一个实际应用的例子。实现目标:

1、用单CPU做一个精确的时钟。
2、以此时钟为基准,每秒钟运行一次一个500ms开销的任务,设其为F05()。
3,每分钟到达时,运行一次4个紧密关联的函数,每个运行开销700ms, 设其为F071(),F072(),F073(),F074();要求4个函数必须顺序运行。
4、为简化题目,只做秒、分2位。

要求:各函数时间开销严格,运行期间不允许打断(即不允许被中断或抢占)。

叙述一下这个题目的意思,当每分钟到达时,程序运行F071~F074,这段时间软件耗费至少700msX4=2.8秒,这样时钟的秒位肯定要丢数(因为“要求”说了,F071~F074运行必须顺序,不允许抢占。可以被调度)。怎么解决?

高手总说裸奔比OS灵活的多,我特别希望高手能实际“奔”一个简明而优雅的程序供我们欣赏/学习一下,否则总让人感觉我们国人喜欢说大话、空话,特没劲。


12月3日
hotpower 是真正有才能的人,他已经把这道题的题意和解法基本说穿了。我不用再多解释题意了:
1、83楼: 不能打断的(函数)时间必须小于节拍时间,字谜(解决方法)实际在函数的间隙上。 
2、N楼  只要不出现时间的误差积累,就应该"算准"。否则就别玩了。

12月4日
贴到其他贴去忘了说了,3000元求助实用程序。
别说我题意不清故意刁难谁,老板的课题就是这么出的。我没觉得他刁难我,挺清楚的。看不懂的人就不用作了。


“这道题如果OS能做到,匠人也能裸奔做到。”没错,那么请现在就做。
“裸奔高手必然也会用OS。”没错,那么请立即就做。

要是高人都放弃了,我就贴答案了。
“不是做不到,而是想不到。”

看不懂题意的人,最好保持沉默。



* - 本贴最后修改时间:2007-12-5 9:37:11 修改者:wxj1952
 农民讲习所 发表于 2007-12-1 17:45 侃单片机 ←返回版面   

3楼: 题都不会出。先沙发~~~~~~~~
 农民讲习所 发表于 2007-12-1 17:54 侃单片机 ←返回版面   

8楼: 俺也不出手,最近心情不错,没必要去砸砖。
 computer00 发表于 2007-12-1 19:04 侃单片机 ←返回版面   

14楼: 这个OS更加做不到了,除非你不让你OS调度...

2.8s不能被打断,也就意味着你的系统时钟节拍必须大于2.8s,否则必然被时钟节拍中断打断~~~~~~~~

另外,题目本身就是矛盾的,要求2.8s不能被打断,又要求每秒执行另一个任务500ms?
除非你的CPU是双核的...
 wxj1952 发表于 2007-12-1 19:23 侃单片机 ←返回版面   

20楼: 我知道圈圈会提这样的问题。


我说的是不允许抢占,4个函数是由一个长任务分解得到的。它们将被调度器顺序调度,如果这道题变成秒位任务可以优先打断这个长任务,那还值得做吗?

如果不想做,就别先挑出题的人的毛病,说出题人的语文水平太差。
 athlon64fx 发表于 2007-12-1 21:05 侃单片机 ←返回版面   

64楼: 如果不是文字游戏的话,此题无解

有一点不明白,F01-F04既然不允许被打断,为什么非要说成4个? 分明是一个嘛.
另外,有什么运算会占用500mS 2.8S的时间? 既然LZ都谈到了OS,就不会是CPU延时吧,所以说,这个题目根本没有代表性,更何谈"一题终结xx之争"?
 athlon64fx 发表于 2007-12-1 22:14 侃单片机 ←返回版面   

72楼: re:

难道我是文盲? 
是F071~F074不允许被中断还是F071~F074的“每个函数”不允许被中断? 
截然不同的两个意思。我想楼主表达得很清楚,2.8秒内不允许中断.
LZ会用调度器太牛了..
我不过在两年前写过一个.

-------------------------------------

叙述一下这个题目的意思,当每分钟到达时,程序运行F071~F074,这段时间软件耗费至少700msX4=2.8秒,这样时钟的秒位肯定要丢数(因为“要求”说了,F071~F074运行必须连贯,不允许抢占。)






 hotpower 发表于 2007-12-2 00:17 侃单片机 ←返回版面   

83楼: 不能打断的时间总和必须小于节拍时间,字谜实际在函数的间隙上

 

LZ属于典型的脑残儿表达不清的那种,根本就没发现自己说话老是考虑不周前后矛盾。--所以老x真的不想参与,因为那样好像显得我跟脑残也是同类了...
 
如果LZ承认补充的这个说明:
 12月3日
hotpower 是真正有才能的人,他已经把这道题的题意和解法基本说穿了。我不用再多解释题意了:
1、83楼: 不能打断的(函数)时间必须小于节拍时间,字谜(解决方法)实际在函数的间隙上。 
2、N楼  只要不出现时间的误差积累,就应该"算准"。否则就别玩了。

那么老x一分钟即可给出解决程序(但问题是LZ就没觉得上面的补充和LZ你20楼的说法又矛盾了吗???)

使用特权

评论回复
6
xwj| | 2009-4-15 00:03 | 只看该作者

拿computer00 33楼的程序稍作修改即可

//拿computer00     33楼的程序稍作修改即可
#define bool bit
bool 秒到达标志;
bool 分到达标志;

void 定时器1ms中断服务程序(void)        //这是节拍器的,实际上非要2.8S不许插入F05();的话放个秒计数放这里面,然后外面处理即可,时钟根本就不会错
{
    static unsigned int ms,s,m;
    ms++;
    if(ms>=1000)
    {
        ms=0;
        s++;
        秒到达标志=真;
        if(s>=60)
        {
            m++;
            分到达标志=真;
        }
    }
}

void main(void)         //既然LZ非要不许丢失F05();,那就这样:
{
    while(1)
    {
        if(秒到达标志)
        {
            秒到达标志=0;
            F05();
        }
        else if(分到达标志)
        {
            分到达标志=0;
            F071();
            if(秒到达标志)
            {
                秒到达标志=0;
                F05();
            }
            F072();
            if(秒到达标志)
            {
                秒到达标志=0;
                F05();
            }
            F073();
            if(秒到达标志)
            {
                秒到达标志=0;
                F05();
            }
            F074();
            if(秒到达标志)
            {
                秒到达标志=0;
                F05();
            }
        }
    }
}


/*
  如果LZ非要不许F05();插入4个F07x();函数之间运行的话(LZ开始一直是这个意思,后来被拍了很多天估计反应过来了又加了个矛盾的补充),
    那么你用任何OS都别想解决;(如果反驳,请给出你用OS实现的程序!)
  如果你承认你后来的补充,那就请理解了F05();的运行十几后再来说话!
*/

    

使用特权

评论回复
7
xwj| | 2009-4-15 00:12 | 只看该作者

上面写的效率有点问题(虽然会执行正确),再改一下

void main(void)         //既然LZ非要不许丢失F05();,那就这样:
{
    while(1)
    {
        if(分到达标志)
        {
            分到达标志=0;
            F071();
                if((秒到达标志)
            {
                秒到达标志=0;
                F05();
            }
            F072();
                if((秒到达标志)
            {
                秒到达标志=0;
                F05();
            }
            F073();
                if((秒到达标志)
            {
                秒到达标志=0;
                F05();
            }
            F074();
        }
            if((秒到达标志)
        {
             秒到达标志=0;
             F05();
        }
    }
}


使用特权

评论回复
8
jiyiche| | 2009-4-15 00:53 | 只看该作者

支持21IC的兄弟

使用特权

评论回复
9
huangqi412| | 2009-4-15 08:01 | 只看该作者

趁着二姨还在 多看看

看来我们以后要只能lz的超超牛叉 三婶网了

使用特权

评论回复
10
yewuyi| | 2009-4-15 08:37 | 只看该作者

砸场子的?!

使用特权

评论回复
11
hqgboy| | 2009-4-15 09:04 | 只看该作者

高手很多,出手的不多。

使用特权

评论回复
12
edusunplus| | 2009-4-15 09:46 | 只看该作者

没明白想什么呢

使用特权

评论回复
13
程序匠八| | 2009-4-15 09:55 | 只看该作者

人至j则无敌

使用特权

评论回复
14
冷漠| | 2009-4-15 10:01 | 只看该作者

还是highgear水平高啊。

 “uc/OS -II有明显的硬伤,...”还是highgear水平高啊。 

highgear也不好好想想,1952有这个水平出这么深题意的题目?他要有这水平他就不用出国学习了。

题目摘自国外OS教材《 Real-Time Concepts for Embedded System 》。

哈哈,highgear,连题目什么意思还没搞清,就“水平太低了”。本想装聪明,结果贻笑大方。

看来highgear的水平根本看不上什么Jean J.Labrosse,什么邵贝贝,小儿科嘛。

highgear的本事就是空话、大话,“越是自卑的人越是夸大”。

来点实际的。不服气您也写一本“国际著名教材”流行全世界,译本进入中国清华教材试试?


最新消息:

highgear 正在编写一本“嵌入式实时操作系统”方面的国际著名教材,译本准备进入哈佛大学教本。

这可真是震撼中国的大事件!千百年来,咱们中国人不就是盼着这一天吗?

还有重要的一点,highgear是农民讲习所出来的天才,他为咱们21IC论坛、为农民讲习所、为所长、为咱们中国人挣了一口气。

从此以后,咱们再也不需要用以贬低他人的方式抬高自己来满足自尊心啦。






 
 

使用特权

评论回复
15
hq_y| | 2009-4-15 10:06 | 只看该作者

嗯嗯。。。路过。。。

使用特权

评论回复
16
耕在此行| | 2009-4-15 10:30 | 只看该作者

呵呵

不想拿奖 我只是来看热闹的

使用特权

评论回复
17
冷漠| | 2009-4-15 11:08 | 只看该作者

highgear果然高手啊。


“关于走马灯,我不多说了,两个程序早就贴出了,装盲人没有意思。那玩意连mcu都不用,就能做出来,方案如下:
555,CD4060, 29F64
别再装盲人,也别因为你们不知道原理就胡乱诬蔑。”
******************************************************************

高啊。  别人的走马灯程序讨论的是如何8路LED以不同的频率和花样“并发”运行、闪烁的问题。

highgear:“我会!那玩意连mcu都不用,就能做出来,方案如下:555,CD4060, 29F64。 别再装盲人,也别因为你们不知道原理就胡乱诬蔑。”

高!实在是高!
研究什么OS多任务“并发”运行,玩个走马灯用555就行了呗,菜鸟都会。要你们高手有什么用!

两任务并发有什么难?把F05、F28分割成碎片不就完了。嗨,真是14亿人只有highgear一人想的到。

到最后,研究OS两任务F05/F28 如何"并发执行"的1952 出国研究去了,而highgear 还在讲习所看大门玩 555。




 
 

使用特权

评论回复
18
小小叶子| | 2009-4-15 11:19 | 只看该作者

楼上的和浙大**一样

“宁愿嫁给美国黑人,可以早拿绿卡”
“那些垃圾般的中国男人甚至来攻击我的父母,男生们都骂我骚。”
“事实上男生们才是精神被老外***到高潮屡出。”
“在浙大一等女生睡豪宅别墅,二等女生睡酒店公寓,三等的就只能陪这帮猥琐中国男睡睡寝室的小床……中国男生连竞争的欲望都没有,就直接败了下来。”

使用特权

评论回复
19
yysmcu| | 2009-4-15 12:02 | 只看该作者

靠,找劈

使用特权

评论回复
20
awen2000| | 2009-4-15 12:20 | 只看该作者

LZ你算那根葱啊!

在论坛里提问题,人家一定要给你答案?
你算老几啊,有问必须有人给你答???
nnd,这么说话,找扁?

使用特权

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

本版积分规则

19

主题

1222

帖子

61

粉丝