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