Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <bwio.h>
#include <types.h>
#include <k2PerfTest.h>
#include <timer.h>
#include <syscall.h>
int Sender() {
int MyID = MyTid();
bwprintf(COM2,"Sender: %d runs\n\r",MyID);
int ReceiverTID, i, StartTime, EndTime, Res;
int Sum = 0, Average;
char* SendMsg = "water water water loo loo loo, water water water loo loo loo, water water water loo loo loo cs452 cs452";
ReceiverTID = 1;
char ReplyMsg[32]; // 4 bytes
//char ReplyMsg[256]; // 64 bytes
//Clock* c;
//ClockInit(c);
//ReceiverTID = WhoIs("Rcvr");
for (i = 0; i < 100; ++i) {
//ClockUpdate(c);
//StartTime = c->ClockCount;
Res = Send(ReceiverTID, (char*)SendMsg, 32, ReplyMsg, 32);
if (Res != 32) {
bwprintf(COM2, "Send has Errors\n\r");
return Res;
}
//ClockUpdate(c);
//EndTime = c->ClockCount;
//Sum += (EndTime - StartTime);
}
//Average = Sum/100;
bwprintf(COM2, "Send Time: \n\r", Average);
Exit();
}
int Receiver() {
int MyID = MyTid();
bwprintf(COM2,"Receiver:%d runs\n\r", MyID);
int SenderTID, i, StartTime, EndTime, Res;
int Sum = 0, Average;
char ReceiveMsg[32];
char ReplyMsg[32]; // 4 bytes
Clock* c;
SenderTID = 2;
bwprintf(COM2,"Receiver: Guess1\n\r");
ClockInit(c);
// Res = RegisterAS("Rcvr");
//Reply(SenderTID, ReplyMsg, sizeof(ReplyMsg));
StartTime = 0;
bwprintf(COM2,"Receiver: Before Loop\n\r");
for (i = 0; i < 100; i++) {
ClockUpdate(c);
Res = Receive(SenderTID, (char*)ReceiveMsg, 32);
if (Res < 0) {
bwprintf(COM2, "Receive has Errors.\n\r");
return Res;
}
ClockUpdate(c);
EndTime = c->ClockCount;
Reply(SenderTID, (char*)ReplyMsg, Res);
Sum += (EndTime-StartTime);
}
Average = Sum / 100;
bwprintf(COM2, "Receive Time: %d\n\r", Average);
Exit();
}
int PerfTest() {
int SenderTID, ReceiverTID, NSTID, SendFirst = 1;
AP Args1, Args5;
char* SendMsg, ReplyMsg;
Args5.arg0 = (void *) Prio5;
Args5.arg1 = (void *) (&Receiver);
//Args1.arg0 = (void *) Prio1;
//Args1.arg1 = (void *) (&Receiver);
Args1.arg0 = (void *) Prio3;
Args1.arg1 = (void*) (&Sender);
//NSTID = Create(&Args5);
ReceiverTID = Create(&Args5);
//Args5.arg1 = (void*)(&Sender);
SenderTID = Create(&Args1);
bwprintf(COM2,"PerfTest exiting...\n\r");
//Send(ReceiverTID, (void*)SendMsg, sizeof(SendMsg), (void*)Reply, sizeof(ReplyMsg));
Exit();
}