update
authorMart Lubbers <mart@martlubbers.net>
Fri, 2 Oct 2015 09:38:16 +0000 (11:38 +0200)
committerMart Lubbers <mart@martlubbers.net>
Fri, 2 Oct 2015 09:38:16 +0000 (11:38 +0200)
mart/ex10/ex10dmaster.c
mart/ex10/ex10dslave.c
mart/ex10/plots.m

index ad9ea10..b95d7e2 100644 (file)
@@ -21,16 +21,16 @@ void lpt1_handler(void *arg)
        RT_INTR intr;
        rt_intr_create(&intr, "lpt1 handler", LPT1IRQ, 0);
        rt_task_set_periodic(NULL, TM_NOW, 1e5);
-    rt_printf("Sending\n");
+       rt_printf("Sending\n");
 
        unsigned int i;
        for(i = 0; i<SAMPLES; i++){
                times[i] = rt_timer_read();     
-        outb(inb(0x378) & 0xEF, 0x378);
-        outb(inb(0x378) | 0x01, 0x378);
-        // Signal other machine
-        rt_intr_wait(&intr, TM_INFINITE);
-        times[i] = rt_timer_read()-times[i];
+               outb(inb(0x378) & 0xEF, 0x378);
+               outb(inb(0x378) | 0x01, 0x378);
+               // Signal other machine
+               rt_intr_wait(&intr, TM_INFINITE);
+               times[i] = rt_timer_read()-times[i];
                rt_task_wait_period(NULL);
        }
 
@@ -48,10 +48,10 @@ int main(int argc, char* argv[])
        rt_print_auto_init(1);
        mlockall(MCL_CURRENT | MCL_FUTURE);
 
-    ioperm(0x37A, 1, 1);
-    ioperm(0x378, 1, 1);
-    outb(inb(0x37A) | 0x01, 0x37A);
-    outb(inb(0x378) | 0x01, 0x378);
+       ioperm(0x37A, 1, 1);
+       ioperm(0x378, 1, 1);
+       outb(inb(0x37A) | 0x01, 0x37A);
+       outb(inb(0x378) | 0x01, 0x378);
 
        rt_task_create(&task, "task", 0, 50, 0);
        rt_task_start(&task, &lpt1_handler, 0);
index ed079c2..d22e18d 100644 (file)
@@ -20,14 +20,10 @@ void lpt1_handler(void *arg)
        rt_intr_create(&intr, "lpt1 handler", LPT1IRQ, 0);
 
        rt_printf("Listening...\n");
-    rt_intr_wait(&intr, TM_INFINITE);
-    outb(inb(0x378) & 0xEF, 0x378);
-    outb(inb(0x378) | 0x01, 0x378);
-       rt_printf("Received an interrupt\n");
        while(1){
-        rt_intr_wait(&intr, TM_INFINITE);
-        outb(inb(0x37A) & 0xEF, 0x37A);
-        outb(inb(0x37A) | 0x01, 0x37A);
+               rt_intr_wait(&intr, TM_INFINITE);
+               outb(inb(0x378) & 0xEF, 0x378);
+               outb(inb(0x378) | 0x01, 0x378);
        }
 }
 
@@ -36,10 +32,10 @@ int main(int argc, char* argv[])
        rt_print_auto_init(1);
        mlockall(MCL_CURRENT | MCL_FUTURE);
 
-    ioperm(0x37A, 1, 1);
-    ioperm(0x378, 1, 1);
-    outb(inb(0x37A) | 0x01, 0x37A);
-    outb(inb(0x378) | 0x01, 0x378);
+       ioperm(0x37A, 1, 1);
+       ioperm(0x378, 1, 1);
+       outb(inb(0x37A) | 0x01, 0x37A);
+       outb(inb(0x378) | 0x01, 0x378);
 
        rt_task_create(&task, "task", 0, 50, 0);
        rt_task_start(&task, &lpt1_handler, 0);
index 062657e..966b0f3 100644 (file)
@@ -1,3 +1,5 @@
+a = figure;
+set(a,'visible','off');
 d = csvread("ex10ab.csv")(:,2) ./ 1000;
 dmax = max(d);
 dmin = min(d);
@@ -15,19 +17,20 @@ text(100, dmax-stepsize*3, sprintf("Std: %.2f", ddev));
 text(100, dmax-stepsize*4, sprintf("Max: %d", dmax));
 print -dpng "-S1200,1200" ex10ab.png
 
-d = csvread("ex10d.csv")(:,2);
-dmax = max(d);
-dmin = min(d);
-davg = mean(d);
-ddev = std(d);
-figure;
-plot(d, '@k');
-title("Measurements on interrupt latency via LPT1");
-xlabel("Number of the measurement");
-ylabel("Time till next measurement in nanoseconds");
-stepsize = (dmax+dmin)/25;
-text(100, dmax-stepsize, sprintf("Min: %d", dmin));
-text(100, dmax-stepsize*2, sprintf("Mean: %.2f", davg));
-text(100, dmax-stepsize*3, sprintf("Std: %.2f", ddev));
-text(100, dmax-stepsize*4, sprintf("Max: %d", dmax));
-print -dpng "-S1200,1200" ex10ab.png
+%set(a,'visible','off');
+%d = csvread("ex10d.csv")(:,2);
+%dmax = max(d);
+%dmin = min(d);
+%davg = mean(d);
+%ddev = std(d);
+%figure;
+%plot(d, '@k');
+%title("Measurements on interrupt latency via LPT1");
+%xlabel("Number of the measurement");
+%ylabel("Time till next measurement in nanoseconds");
+%stepsize = (dmax+dmin)/25;
+%text(100, dmax-stepsize, sprintf("Min: %d", dmin));
+%text(100, dmax-stepsize*2, sprintf("Mean: %.2f", davg));
+%text(100, dmax-stepsize*3, sprintf("Std: %.2f", ddev));
+%text(100, dmax-stepsize*4, sprintf("Max: %d", dmax));
+%print -dpng "-S1200,1200" ex10ab.png