32,7 → 32,10 |
*/ |
|
#include "kernel/kern.h" |
#include "modules/elastic.h" |
|
extern unsigned int usleep(unsigned int usec); // include file? |
|
TASK elastic_test(void *arg) { |
|
int nbr = (int)arg; |
47,6 → 50,7 |
{ |
ELASTIC_TASK_MODEL e1, e2, e3, e4; |
PID el_pid1, el_pid2, el_pid3, el_pid4; |
struct timespec t; |
|
cprintf("Elastic Task Demo (U=1.0 in initfile.c)\n"); |
|
61,13 → 65,14 |
cprintf("ERROR: Cannot create Elastic1\n"); |
sys_end(); |
} |
|
task_activate(el_pid1); |
|
cprintf("\nCreating elastic task with Tmin = 200000, Tmax = 500000, C = 60000, E = 1\n"); |
cprintf("\nCreating elastic task with Tmin = 200000, Tmax = 500000, C = 160000, E = 2\n"); |
elastic_task_default_model(e2); |
elastic_task_def_period(e2, 200000, 500000); |
elastic_task_def_wcet(e2, 60000); |
elastic_task_def_param(e2, 1, PERIOD_SCALING); |
elastic_task_def_wcet(e2, 160000); |
elastic_task_def_param(e2, 2, PERIOD_SCALING); |
elastic_task_def_arg(e2, (void *)2); |
el_pid2 = task_create("Elastic2",elastic_test,&e2,NULL); |
if (el_pid2 == NIL) { |
74,8 → 79,15 |
cprintf("ERROR: Cannot create Elastic2\n"); |
sys_end(); |
} |
|
task_activate(el_pid2); |
|
usleep(500000); |
|
ELASTIC_set_period(el_pid2, 210000); |
|
|
/* |
cprintf("\nCreating elastic task with Tmin = 300000, Tmax = 500000, C = 90000, E = 1\n"); |
elastic_task_default_model(e3); |
elastic_task_def_period(e3, 300000, 500000); |
101,10 → 113,10 |
sys_end(); |
} |
task_activate(el_pid4); |
*/ |
|
/* Exit at time t = 5.0 */ |
struct timespec t; |
t.tv_sec = 5; |
/* Exit at time t = 1.0 */ |
t.tv_sec = 1; |
t.tv_nsec = 0; |
kern_event_post(&t, (void(*)(void*))sys_end, NULL); |
while(1); |