感谢众网友关注,下午公开答案

[复制链接]
程序匠人 发表于 2007-12-5 21:24 | 显示全部楼层

忽悠,尽情忽悠

koon 发表于 2007-12-5 21:27 | 显示全部楼层

要真正的并行处理只有多核

程序匠人 发表于 2007-12-5 21:32 | 显示全部楼层

裸奔也可以并行化处理

OS也好,并行处理也好,还有什么状态机……这些编程思想,还不都是人想出来的。机器可以做到的事,人也可以做到。




农民讲习所 发表于 2007-12-5 21:23 侃单片机 ←返回版面    

41楼: 俺说的是“裸奔是串行化处理,OS是并行化处理” 

不是简单的串行和并行概念

 
 
IceAge 发表于 2007-12-5 22:42 | 显示全部楼层

wxj1952 输定了

os 的技术核心在于时间片和调度,这两者 裸奔 也能做到,毕竟 裸奔 的场合大多不是复杂的应用。os 的灵活性和通用性可以做到动态调度,裸奔要做到这点,就有衣服,不在是裸奔了。

wxj1952 你拿固定任务去挑战 裸奔,你的衣服会被终结 --- 裸奔了。
zusen 发表于 2007-12-5 23:05 | 显示全部楼层

其实我想问问

60秒后 F05() 和 F071() 的竞争问题~~~~~
hotpower 发表于 2007-12-5 23:23 | 显示全部楼层

俺不参与政治斗殴~~~俺还是喜欢做俺的3小时PIC24FJ速成菜鸟~~~

ocon 发表于 2007-12-5 23:47 | 显示全部楼层

搞技术来不得半点忽悠,楼主是块做营销的料。

ocon 发表于 2007-12-6 00:07 | 显示全部楼层

楼主的下场:

computer00 发表于 2007-12-6 00:20 | 显示全部楼层

哈哈~~~~49楼这个图真是爽呀~~~太夸张了吧,那人真惨...

洪七公 发表于 2007-12-6 00:41 | 显示全部楼层

晕~~~现在才知道被人拍的滋味有多么好受了~~~

hq_y 发表于 2007-12-6 06:33 | 显示全部楼层

呵呵~~~~~~~~~~

幸福DE饭团 发表于 2007-12-6 08:54 | 显示全部楼层

天使?

鸟人?
 楼主| wxj1952 发表于 2007-12-6 08:59 | 显示全部楼层

看高手内讧挺好玩的,明天再来玩了

哇!睡了一觉,没想到“窝里斗”这么快就开演啦!

12月5号 以前挺安静的,高手好像都躲在阴处没时间,怎么现在突然一下冒出这么多高手,各个都那么兴奋,像打了**血似地,都有时间了。

hbicecream 发表于 2007-12-6 09:02 | 显示全部楼层

46楼

不错,就是两种任务的时间竞争,如果楼主这样写程序

void TASK0(void *pdata)
{
    pdata = pdata;

    while (1)
    {
        F05();
        OSTimeDly(OS_TICKS_PER_SEC/2);
    }
}

void TASK1(void *pdata)
{
    pdata = pdata;

    while (1)
    {
        if (分钟到)
        {
            F071();
            OSTimeDly(OS_TICKS_PER_SEC/10);
            F072();
            OSTimeDly(OS_TICKS_PER_SEC/10);
            F073();
            OSTimeDly(OS_TICKS_PER_SEC/10);
            F074();
            OSTimeDly(OS_TICKS_PER_SEC/10);
        }
    }
}
那就乖乖等着挨砖头吧!!哈哈!!
forest_j 发表于 2007-12-6 09:26 | 显示全部楼层

大跌眼镜

senda_3526 发表于 2007-12-6 09:49 | 显示全部楼层

楼主可能这样不行吧

LZ的这点水平不行吧
首先是保证每秒的一次500ms的任务运行,可是现在你的软件不能保证呀
另个关联紧密的4个任务是不是不再紧密了呀
LZ先说明你如何保证的每S的一次500ms
 "这是一个实际应用的例子。实现目标:

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

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

叙述一下这个题目的意思,当每分钟到达时,程序运行F071~F074,这段时间软件耗费至少700msX4=2.8秒,这样时钟的秒位肯定要丢数(因为“要求”说了,F071~F074运行必须顺序,不允许抢占。可以被调度)。怎么解决?"
这是你的原文
senda_3526 发表于 2007-12-6 10:19 | 显示全部楼层

呵呵,不知是谁打自已的耳光

"/******************************************************************************/
/*                                                                            */
/*                     wxj1952.C:  A RTX-51 Application                       */
/*                                                                            */
/******************************************************************************/

#include <rtx51tny.h>                 

/******************************************************************************/
/*       Task 0 'job0':                                */
/******************************************************************************/
job0 () _task_ 0  {    
              
  os_create_task (1);                 
  os_create_task (2);                 
  os_create_task (3);                
  os_create_task (4);                
  //os_create_task (5);                 
  //os_create_task (6);                 


  while (1)  {                        
   
    os_wait (K_IVL, 1, 0);  
    .
    .
    .
     DX_1;
    F05();
     EX_1;    

   os_switch_tast();                        
  }
}

/******************************************************************************/
/*   Task 1 'job1':                                    */
/******************************************************************************/
job1 () _task_ 1  {
  while (1)  {              
   
    os_wait (K_IVL, 60, 0);  
    .
    .
    .
     DX_1;
    F071();
     EX_1;    
   // os_send_signal (2);  

os_switch_tast();                
  }
}

/******************************************************************************/
/*    Task 2 'job2':                                    */
/******************************************************************************/
job2 () _task_ 2  {
  while (1)  {   
  //os_wait1 (K_SIG, 1);     
    . 
    .
    .         
      DX_1;
    F072();
       EX_1;        
// os_send_signal (3);  

   os_switch_tast();      
   
  }
}


/******************************************************************************/
/*    Task 3 'job3':                                                      */
/******************************************************************************/
job3 () _task_ 3  {
  while (1)  {  
//os_wait1 (K_SIG, 2);      
    .
    .
    .
       DX_1;
    F073();
       EX_1;        
// os_send_signal (4);  

   os_switch_tast();                   
    
  }
}

/******************************************************************************/
/*    Task 3 'job4':                                                      */
/******************************************************************************/
job3 () _task_ 4  {
  while (1)  {  
//os_wait1 (K_SIG, 3);  
        .
        .
        .
       DX_1;
    F074();
       EX_1;        

   os_switch_tast();                   
    
  }
}

DX_1/EX_1 语句高手一看就知道是什么,这是陈明计书上提供的语句.
"
LZ认为你的这个满足了要求了吗?
如果满足了要求的话,猪都会上树
senda_3526 发表于 2007-12-6 10:21 | 显示全部楼层

这是俺在你原来贴上裸奔的

292楼: 看看俺裸奔一下 

main()
{
  while(1)
   { 
    if(time到)
    {
     time到=0;
      if(time>=66)
       {
           f04();
           //f05();
         time-=6;
       }
      else if(time==64)
      {
          f03();
          //f05();
      }
     else if(time==62)
      {f02();//f05();
      }
      else if(time==60)
      {f01();//f05();
      }
      else if(time>60)
      {
       f05();
      }
      else
     {     delay300ms;f05();}
    }
  }
}

interrupt time1s
{
time到=1;
time++;
}


* - 本贴最后修改时间:2007-12-6 9:23:32 修改者:senda_3526
 
 
machunshui 发表于 2007-12-6 12:27 | 显示全部楼层

实在无聊

实在无聊.
有什么意思?
heyan 发表于 2007-12-6 12:44 | 显示全部楼层

唉!

不知道该说什么好了。

介绍下我的态度:
我不反对用OS,但资源少的MCU、任务明显的东东,尽量不要用OS。我现在的项目51的,程序量十几万行,几百K字节,不也就是状态机搞定?不过OS的一些东西还是可以学习的,什么消息呀、信号呀、状态机呀什么的。

但是32BIT的东东,还是用OS方便。我上个项目就是有TCP/IP、MPEG、GUI等等,不用OS,天,不写死?

总之要看项目、看MCU说话。期待拍砖!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部