/demos/trunk/loader/loadfile/load.fsf |
---|
53,7 → 53,7 |
[0]:[0][3000]:[0][10000]:[0][3000]:[0][10000]:[0]:POSIX; |
[1]:[0][6000]:[0][30000]:[0][6000]:[0][30000]:[0]:POSIX; |
[2]:[0][3000]:[0][30000]:[0][3000]:[0][30000]:[0]:POSIX; |
[3]:[0][6000]:[0][30000]:[0][6000]:[0][30000]:[0]:EDF; |
[3]:[0][6000]:[0][30000]:[0][6000]:[0][30000]:[0]:POSIX; |
END |
68,7 → 68,7 |
OS:[2]:POSIX:[1]:[0][0]:[0][0]:ACT_SINGLE([5][0]): |
:EXEC_CONST([1][0]):NO_CRIT; |
CT:[3]:EDF:[10]:[1][0]:[0][100000]:ACT_PERIODIC([1][0],[1][0]): |
BT:[3]:POSIX:[10]:[0][0]:[0][0]:ACT_SINGLE([6][0]): |
:EXEC_CONST([0][20000]):NO_CRIT; |
END |
/demos/trunk/loader/shark/func.h |
---|
88,13 → 88,21 |
extern __inline__ void end_oneshot_task(void) {} |
extern __inline__ void start_periodic_task(void) {} |
extern __inline__ void start_job_periodic_task(void) {} |
extern __inline__ void end_job_periodic_task(void) {} |
extern __inline__ void start_job_periodic_task(void) { |
task_testcancel(); |
} |
extern __inline__ void end_job_periodic_task(void) { |
task_testcancel(); |
} |
extern __inline__ void end_periodic_task(void) {} |
extern __inline__ void start_back_task(void) {} |
extern __inline__ void start_job_back_task(void) {} |
extern __inline__ void end_job_back_task(void) {} |
extern __inline__ void start_job_back_task(void) { |
task_testcancel(); |
} |
extern __inline__ void end_job_back_task(void) { |
task_testcancel(); |
} |
extern __inline__ void end_back_task(void) {} |
#endif |
/demos/trunk/loader/shark/shark.c |
---|
1,5 → 1,6 |
#include "func.h" |
#include "calibrate.h" |
#include <tracer.h> |
extern int cal_cycles; |
extern struct timespec zero_time; |
90,11 → 91,66 |
} |
TASK finish_task() { |
extern unsigned int TracerEventsPresent; |
unsigned int k; |
SYS_FLAGS f; |
tracer_init_udp(1,"192.168.82.46","192.168.82.20"); |
tracer_create_udp_task(NULL,80); |
f = kern_fsave(); |
k = TracerEventsPresent; |
kern_frestore(f); |
while(k > 0) { |
f = kern_fsave(); |
k = TracerEventsPresent; |
kern_frestore(f); |
} |
tracer_flush_sent_events(); |
sys_end(); |
return NULL; |
} |
void end_simulation() { |
int i; |
struct loader_task *l = loader_task_list; |
NRT_TASK_MODEL nrt; |
TRACER_LOGEVENT(FTrace_EVT_trace_stop,0,0,0); |
tracer_disable(); |
i = 0; |
while (i < total_loader_task) { |
group_kill(l->group); |
i++; |
l=&loader_task_list[i]; |
} |
nrt_task_default_model(nrt); |
task_activate(task_create("Finish",finish_task,&nrt,NULL)); |
} |
void set_simulation_time (struct timespec *total) { |
struct timespec end_time; |
ADDTIMESPEC(&zero_time,total,&end_time); |
kern_event_post(&end_time,(void *)((void *)(sys_end)),NULL); |
kern_event_post(&end_time,(void *)((void *)(end_simulation)),NULL); |
} |
107,6 → 163,12 |
i = 0; |
tracer_initialize(10000000); |
tracer_enable(); |
TRACER_LOGEVENT(FTrace_EVT_trace_start,0,0,0); |
kern_gettime(&zero_time); |
while (i < total_loader_task) { |