📄 main8.c
字号:
#include "cpu.h"
#include "regdef.h"
#include "drivers\uart.h"
#include "include\core.h"
#include "include\pipe.h"
#include "include\mailbox.h"
#include "include\mem.h"
#define STACK_SIZE 4096
#define SAME_PRIO 63
#define TMP_SEM_ID 150
pipe_t *p1;
pipe_t *p2;
pipe_t *p3;
pipe_t *p4;
pipe_t *p5;
pipe_t *p6;
char_t *msg[20] = {
{ "The first message!" },
{ "The sencond message !" },
{ "The third message!" },
{ "The fourth message!" },
{ "The fifth message!" },
{ "The sixth message!" },
{ "The seventh message!" },
{ "The eighth message!" },
{ "The ninth message!" },
{ "The tenth message!" },
{ "The eleventh message!" },
{ "The twelveth message!" },
{ "The thirteenth message!" },
{ "The fourteenth message!" },
{ "The fifteenth message!" },
{ "The sixteenth message!" },
{ "The seventeenth message!" },
{ "The eighteenth message!" },
{ "The ninteenth message!" },
{ "The twentith message!" }
};
void Task0(void) {
uword_t err, err1, i;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print(".....................\n");
Print("Task0 is running!\n");
for(i = 0; i < 30; i++) {
pipeSend(p1, msg[i], &err1);
}
Print("Sending message to pipe1 is over!\n");
Print(".....................\n\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(65);
}
}
void Task1(void) {
uword_t err, err1;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task1 is running!\n");
Print("Task1 wants to send some data to pipe1!\n");
pipeSend(p1, msg[0], &err1);
if(err1 == PIPE_ID_NOT_MATCH) {
Print(0,
"Task1 was refused to send some data to pipe1!\n\n");
}
semPost(TMP_SEM_ID, NULL);
}
osWait(65);
}
}
void Task2(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task2 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(68);
}
}
void Task3(void) {
uword_t err, err1;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task3 is running!\n");
Print("Task3 wants to send some data to pipe2!\n");
pipeSend(p2, msg[2], &err1);
if(err1 == PIPE_ID_NOT_MATCH) {
Print(0,
"Task3 was refused to send some data to pipe2!\n\n");
}
semPost(TMP_SEM_ID, NULL);
}
osWait(68);
}
}
void Task4(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task4 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(65);
}
}
void Task5(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task5 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(65);
}
}
void Task6(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task6 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(45);
}
}
void Task7(void) {
uword_t err, err1;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task7 is running!\n");
Print("Task7 wants to send some data to pipe3!\n");
pipeSend(p3, msg[6], &err1);
if(err1 == PIPE_ID_NOT_MATCH) {
Print(0,
"Task7 was refused to send some data to pipe3!\n\n");
}
semPost(TMP_SEM_ID, NULL);
}
osWait(68);
}
}
void Task8(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task8 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(68);
}
}
void Task9(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task9 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(568);
}
}
void Task10(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task10 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(68);
}
}
void Task11(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task11 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(458);
}
}
void Task12(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task12 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(35);
}
}
void Task13(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task13 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(45);
}
}
void Task14(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task14 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(23);
}
}
void Task15(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task15 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(35);
}
}
void Task16(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task16 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(23);
}
}
void Task17(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task17 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(35);
}
}
void Task18(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task18 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(24);
}
}
void Task19(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task19 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(23);
}
}
void Task20(void) {
uword_t err, err1, i;
char_t *str;
while(1) {
str = (char_t*)kmalloc(51);
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print(".....................\n");
Print("Task20 is running!\n");
Print("Now retrieve date from pipe1\n");
for(i = 0; i < 30; i++) {
if((str = (char_t*)pipeRev(p1, &err1)) != NULL) {
Print("the %d message is:\n", i);
Print("%s\n\n", str);
}
}
Print(".....................\n\n");
semPost(TMP_SEM_ID, NULL);
}
kfree(str);
osWait(24);
}
}
void Task21(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task21 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(23);
}
}
void Task22(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task22 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(35);
}
}
void Task23(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task23 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(123);
}
}
void Task24(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task24 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(100);
}
}
void Task25(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task25 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(56);
}
}
void Task26(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task26 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(58);
}
}
void Task27(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task27 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(56);
}
}
void Task28(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task28 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(45);
}
}
void Task29(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task29 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(156);
}
}
void Task30(void) {
uword_t err, err1, i;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print(".....................\n");
Print("Task30 is running!\n");
for(i = 0; i < 30; i++) {
pipeSend(p2, msg[i], &err1);
}
Print("Sending message to pipe2 is over!\n");
Print(".....................\n\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(125);
}
}
void Task31(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task31 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(354);
}
}
void Task32(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task32 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(125);
}
}
void Task33(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task33 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(12);
}
}
void Task34(void) {
uword_t err, err1;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task34 is running!\n");
Print("Task34 wants to send some data to pipe4!\n");
pipeSend(p4, msg[8], &err1);
if(err1 == PIPE_ID_NOT_MATCH) {
Print(0,
"Task34 was refused to send some data to pipe14\n\n")
;
}
semPost(TMP_SEM_ID, NULL);
}
osWait(568);
}
}
void Task35(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task35 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(456);
}
}
void Task36(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task36 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(125);
}
}
void Task37(void) {
uword_t err;
while(1) {
semGain(TMP_SEM_ID, NULL, &err);
if(err == SEM_OK) {
Print("Task37 is running!\n");
semPost(TMP_SEM_ID, NULL);
}
osWait(111);
}
}
void Task38(void) {
uword_t err;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -