From f9ca7821a7dd77c6a9f5f35bef22e1dfa3885486 Mon Sep 17 00:00:00 2001
From: Terraneo Federico <fede.tft@hotmail.it>
Date: Tue, 28 Dec 2010 21:37:50 +0100
Subject: [PATCH] Simple high load test for EDF, passed

---
 main.cpp                                        | 17 ++++++++++++-----
 miosix_np_2/nbproject/configurations.xml        |  3 +++
 .../nbproject/private/configurations.xml        |  1 -
 3 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/main.cpp b/main.cpp
index c12873ac..50b0ea93 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,6 +1,7 @@
 
 #include <cstdio>
 #include <cstdlib>
+#include <vector>
 #include "miosix.h"
 
 using namespace std;
@@ -15,10 +16,13 @@ void blinkThread(void *argv)
     long long tick=getTick();
     for(;;)
     {
-        if(led2::value()) led2::low(); else led2::high();
+        long long prevTick=tick;
         tick+=period;
         Thread::setPriority(Priority(tick)); //Change deadline
-        Thread::sleepUntil(tick);
+        Thread::sleepUntil(prevTick); //Make sure the task is run periodically
+        if(led2::value()) led2::low(); else led2::high();
+        delayMs(14);
+        if(getTick()>tick) iprintf("Deadline missed (A)\n");
     }
 }
 
@@ -28,14 +32,17 @@ int main()
     led1::mode(Mode::OUTPUT);
     led2::mode(Mode::OUTPUT);
 
-    Thread::create(blinkThread,STACK_MIN);
+    Thread::create(blinkThread,2048);
     const int period=static_cast<int>(TICK_FREQ*0.05);
     long long tick=getTick();
     for(;;)
     {
-        if(led1::value()) led1::low(); else led1::high();
+        long long prevTick=tick;
         tick+=period;
         Thread::setPriority(Priority(tick)); //Change deadline
-        Thread::sleepUntil(tick);
+        Thread::sleepUntil(prevTick); //Make sure the task is run periodically
+        if(led1::value()) led1::low(); else led1::high();
+        delayMs(24);
+        if(getTick()>tick) iprintf("Deadline missed (B)\n");
     }
 }
diff --git a/miosix_np_2/nbproject/configurations.xml b/miosix_np_2/nbproject/configurations.xml
index 7ca3a1b9..28d3a232 100644
--- a/miosix_np_2/nbproject/configurations.xml
+++ b/miosix_np_2/nbproject/configurations.xml
@@ -101,12 +101,15 @@
               <in>control_scheduler.h</in>
             </df>
             <df name="edf">
+              <in>edf_scheduler.cpp</in>
+              <in>edf_scheduler.h</in>
             </df>
             <df name="priority">
               <in>priority_scheduler.cpp</in>
               <in>priority_scheduler.h</in>
             </df>
             <in>scheduler.h</in>
+            <in>tick_interrupt.h</in>
           </df>
           <in>error.cpp</in>
           <in>error.h</in>
diff --git a/miosix_np_2/nbproject/private/configurations.xml b/miosix_np_2/nbproject/private/configurations.xml
index b730d14c..023c313e 100644
--- a/miosix_np_2/nbproject/private/configurations.xml
+++ b/miosix_np_2/nbproject/private/configurations.xml
@@ -5,7 +5,6 @@
   <confs>
     <conf name="Default" type="0">
       <gizmo_options version="3">
-        <configurationname>GizmoSimple</configurationname>
       </gizmo_options>
       <runprofile version="6">
         <args></args>
-- 
GitLab