SchedulerTest.c
上传用户:super_houu
上传日期:2008-09-21
资源大小:4099k
文件大小:3k
源码类别:

DVD

开发平台:

Others

  1. #include "Config.h" // Global Configuration - do not remove!
  2. #ifdef TEST_HARNASS // for test only.
  3. #include <embedded.h>
  4. #include "IncludeSysDefs.h"
  5. #include "PlaycoreCoremaincoremain.h"
  6. #include "KerneluITRONrtos.h"
  7. //#include "Decoderlow_leveli44_api.h"
  8. #include "PlaycoreSAMPschedulerSAMPScheduler.h"
  9. #ifdef tr_printf
  10. #undef tr_printf
  11. #define tr_printf(sMsg) (printf ## sMsg)
  12. #endif
  13. //scheduler test code
  14. void task0 (void);
  15. void task1 (void);
  16. void task2 (void);
  17. void task3 (void);
  18. void task4 (void);
  19. void task5 (void);
  20. IDENT mid0,mid1,mid2,mid3,mid4,mid5;
  21. IDENT tid0,tid1,tid2,tid3,tid4,tid5;
  22. IDENT sid0,sid1,sid2,sid3,sid4,sid5,sid6,sid7,sid8,sid9;
  23. void task0 (void)
  24. {
  25. char buffer[1500] = "Mess 0";
  26.    tr_printf (("Task 0 startn"));
  27. SAMP(OS_TaskCreate) (3,1500,task2,&tid2);
  28.    SAMP(OS_TaskCreate) (4,1500,task1,&tid1);
  29. SAMP(OS_SemCreate) (1,&sid0);
  30. SAMP(OS_MboxCreate) (20,&mid0);
  31.    while (1)
  32.    {
  33.       SAMP(OS_SemP) (sid0,1);
  34.     SAMP(OS_SendMsg) (mid0,buffer,strlen(buffer));
  35.    }
  36. }
  37. void task1 (void)
  38. {
  39.    size_t size;
  40. char buffer[1500];
  41.    tr_printf (("Task 1 startn"));
  42. SAMP(OS_TaskCreate) (0,1500,task5,&tid5);
  43. SAMP(OS_MboxCreate) (20,&mid1);
  44. while (1)
  45. {
  46. SAMP(OS_RecvMsg) (mid0,1,buffer,12,&size);
  47.       tr_printf (("Message 0: %sn",buffer));
  48.    }
  49. }
  50. void task2 (void)
  51. {
  52.    size_t size;
  53. char buffer[1500];
  54.    tr_printf (("Task 2 startn"));
  55. SAMP(OS_TaskCreate) (2,1500,task3,&tid3);
  56. SAMP(OS_TaskCreate) (1,1500,task4,&tid4);
  57. SAMP(OS_MboxCreate) (20,&mid2);
  58. SAMP(OS_MboxCreate) (20,&mid3);
  59. SAMP(OS_MboxCreate) (20,&mid4);
  60. SAMP(OS_MboxCreate) (20,&mid5);
  61. SAMP(OS_SemCreate) (1,&sid1);
  62. SAMP(OS_SemCreate) (1,&sid2);
  63. SAMP(OS_SemCreate) (1,&sid3);
  64. SAMP(OS_SemCreate) (0,&sid4);
  65. SAMP(OS_SemCreate) (0,&sid5);
  66. SAMP(OS_SemCreate) (0,&sid6);
  67. SAMP(OS_SemCreate) (0,&sid7);
  68. SAMP(OS_SemCreate) (0,&sid8);
  69. SAMP(OS_SemCreate) (0,&sid9);
  70.    while (1)
  71. {
  72.    SAMP(OS_SemV)(sid0);
  73. SAMP(OS_RecvMsg) (mid1,1,buffer,12,&size);
  74.       tr_printf (("Message 1: %sn",buffer));
  75. SAMP(OS_SemV)(sid4);
  76.    }
  77. }
  78. void task3 (void)
  79. {
  80. char buffer[1500] = "Mess 2";
  81.    tr_printf (("Task 3 startn"));
  82.    while (1)
  83. {
  84. SAMP(OS_SemP) (sid4,1);
  85.     SAMP(OS_SemP) (sid1,1);
  86. SAMP(OS_SendMsg) (mid2,buffer,7);
  87.     SAMP(OS_SemV) (sid1);
  88.     SAMP(OS_SemP) (sid2,1);
  89. SAMP(OS_SendMsg) (mid3,"Mess 3",7);
  90.     SAMP(OS_SemV) (sid2);
  91.     SAMP(OS_SemP) (sid3,1);
  92. SAMP(OS_SendMsg) (mid4,"Mess 4",7);
  93.     SAMP(OS_SemV) (sid3);
  94.    }
  95. }
  96. void task4 (void)
  97. {
  98.    size_t size;
  99. char buffer[1500];
  100.    tr_printf (("Task 4 startn"));
  101. while (1)
  102. {
  103. SAMP(OS_RecvMsg) (mid2,1,buffer,12,&size);
  104.       tr_printf (("Message 2: %sn",buffer));
  105. SAMP(OS_RecvMsg) (mid3,1,buffer,12,&size);
  106.       tr_printf (("Message 3: %sn",buffer));
  107.    }
  108. }
  109. void task5 (void)
  110. {
  111.    size_t size;
  112. char buffer[12];
  113.    tr_printf (("Task 5 startn"));
  114. while (1)
  115. {
  116. SAMP(OS_RecvMsg) (mid4,1,buffer,12,&size);
  117.       tr_printf (("Message 4: %sn",buffer));
  118.    }
  119. }
  120. #endif