Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1565 → Rev 1566

/demos/trunk/sharkDecoderWithFSF/initfile.c
84,15 → 84,17
}
 
int device_drivers_init() {
//KEYB_PARMS kparms = BASE_KEYB;
KEYB_PARMS kparms = BASE_KEYB;
int err=0;
LINUXC26_register_module();
PCI26_init();
//INPUT26_init();
INPUT26_init();
 
/*keyb_def_map(kparms, KEYMAP_IT);*/
//keyb_def_ctrlC(kparms, NULL);
//KEYB26_init(&kparms);
keyb_def_ctrlC(kparms, NULL);
err=KEYB26_init(&kparms);
if (err) exit(err);
 
 
return 0;
/demos/trunk/sharkDecoderWithFSF/decoder.c
61,8 → 61,33
 
 
 
/* 10% */
struct timespec decoderPeriod = {0,30000000};
struct timespec decoderBudget = {0,3000000};
 
/* 10% */
struct timespec readTaskPeriod = {0,30000000};
struct timespec readTaskBudget = {0,3000000};
 
/* 45% */
struct timespec displayPeriod = {0,40000000};
struct timespec displayBudget = {0,18000000};
 
// 5 %
struct timespec overloadPeriod = {0,10000000};
struct timespec overloadBudget = {0,500000};
 
fsf_server_id_t decoderServer;
fsf_server_id_t readTaskServer;
fsf_server_id_t displayServer;
fsf_server_id_t overloadServer;
 
fsf_contract_parameters_t overloadContract;
fsf_contract_parameters_t decoderContract;
fsf_contract_parameters_t readTaskContract;
fsf_contract_parameters_t displayContract;
 
 
void program_end()
{
 
116,8 → 141,8
err = fsf_create_local_thread(server,(fsf_sched_params_t *)(&pr), &j,NULL,
displayTask,NULL);
if (err) {
grx_close();
grx_text("failed to create displayTask",0,0,rgb16(255,255,255),0);
//grx_close();
//grx_text("failed to create displayTask",0,0,rgb16(255,255,255),0);
exit(err);
}
task_activate(j);
164,8 → 189,8
err = fsf_create_local_thread(server,(fsf_sched_params_t *)(&pr), &j,NULL,
readTask,NULL);
if (err) {
grx_close();
grx_text("failed to create displayTask",0,0,rgb16(255,255,255),0);
//grx_close();
//grx_text("failed to create displayTask",0,0,rgb16(255,255,255),0);
exit(err);
}
task_activate(j);
212,8 → 237,8
err = fsf_create_local_thread(server,(fsf_sched_params_t *)(&pr), &j,NULL,
mpeg2decoder,NULL);
if (err) {
grx_close();
grx_text("failed to create displayTask",0,0,rgb16(255,255,255),0);
//grx_close();
//grx_text("failed to create displayTask",0,0,rgb16(255,255,255),0);
exit(err);
}
task_activate(j);
261,8 → 286,8
err = fsf_create_local_thread(server,(fsf_sched_params_t *)(&pr), &j,NULL,
overLoadTask,NULL);
if (err) {
grx_close();
grx_text("failed to create displayTask",0,0,rgb16(255,255,255),0);
//grx_close();
//grx_text("failed to create displayTask",0,0,rgb16(255,255,255),0);
exit(err);
}
task_activate(j);
285,46 → 310,22
int i = 1;
char tmp[100];
struct timespec simtime;
//KEY_EVT k;
KEY_EVT k;
union sigval no_sigval = {0};
 
PI_mutexattr_t a;
KEY_EVT ev;
 
/* 10% */
struct timespec decoderPeriod = {0,30000000};
struct timespec decoderBudget = {0,3000000};
 
/* 10% */
struct timespec readTaskPeriod = {0,30000000};
struct timespec readTaskBudget = {0,3000000};
/* 45% */
struct timespec displayPeriod = {0,40000000};
struct timespec displayBudget = {0,18000000};
 
// 5 %
struct timespec overloadPeriod = {0,10000000};
struct timespec overloadBudget = {0,500000};
 
fsf_server_id_t decoderServer;
fsf_server_id_t readTaskServer;
fsf_server_id_t displayServer;
fsf_server_id_t overloadServer;
 
fsf_contract_parameters_t overloadContract;
fsf_contract_parameters_t decoderContract;
fsf_contract_parameters_t readTaskContract;
fsf_contract_parameters_t displayContract;
 
union sigval sval;
 
//ev.ascii = 'c';
//ev.scan = KEY_C;
//ev.status = KEY_PRESSED;
//ev.flag = CNTR_BIT;
//keyb_hook(ev, ending_system, FALSE);
ev.ascii = 'c';
ev.scan = KEY_C;
ev.status = KEY_PRESSED;
ev.flag = CNTR_BIT;
keyb_hook(ev, ending_system, FALSE);
 
PI_mutexattr_default(a);
fsf_init();
388,7 → 389,7
if (err) {
exit(err);
}
 
err = fsf_negotiate_contract(&decoderContract,&decoderServer);
if (err) {
exit(err);
403,30 → 404,32
exit(err);
}
 
print_server_list();
 
// Create and bind different ports to communication links (This ports a declared in global.h)
if((readTaskPort = port_create(readFilePortName, sizeof(struct readDecodeMessage), NUMBER_OF_MESSAGE, STREAM, WRITE)) == -1)
{
grx_text("failed to create readTask Port",0,0,rgb16(255,255,255),0);
//grx_text("failed to create readTask Port",0,0,rgb16(255,255,255),0);
exit(-1);
}
if((decoderTaskPort->displayTaskPort = port_create(displayPortName, sizeof(struct decodeDisplayMessage), NUMBER_OF_MESSAGE, STREAM, WRITE)) == -1)
{
grx_text("failed to create displayTask Port",0,0,rgb16(255,255,255),0);
//grx_text("failed to create displayTask Port",0,0,rgb16(255,255,255),0);
exit(-1);
}
if((decoderTaskPort->readTaskPort = port_connect(readFilePortName, sizeof(struct readDecodeMessage), STREAM, READ)) == -1)
{
grx_text("failed to connect to readTask Port",0,0,rgb16(255,255,255),0);
//grx_text("failed to connect to readTask Port",0,0,rgb16(255,255,255),0);
exit(-1);
}
if((displayTaskPort = port_connect(displayPortName, sizeof(struct decodeDisplayMessage), STREAM, READ)) == -1)
{
grx_text("failed to connect to displayTask Port",0,0,rgb16(255,255,255),0);
//grx_text("failed to connect to displayTask Port",0,0,rgb16(255,255,255),0);
exit(-1);
}
 
//graphic card Initialization
// graphic card Initialization
if (grx_init() < 1) {
exit(-1);
}
435,7 → 438,8
cprintf("GRX Err\n");
exit(-1);
}
/*
kern_gettime(&simtime);
for (i=1; i<10;i++) {
simtime.tv_sec+=1;
444,22 → 448,23
 
simtime.tv_sec+=10;
kern_event_post(&simtime,(void *)((void *)(ending_system)), NULL);
/*ch = keyb_getch(BLOCK);
*/
ch = keyb_getch(BLOCK);
kern_printf("Main %d\n", ch);
while(ch != ESC) {
 
switch (ch)
{
 
case '1': */
case '1':
addReadTaskToServer(readTaskServer);
addDecoderThreadToServer(decoderServer);
addDisplayTaskToServer(displayServer);
/*
 
break;
case '2':
sprintf(tmp,"Number of dummy task: %d", i);
grx_text(tmp,0,0,rgb16(255,255,255),0);
//grx_text(tmp,0,0,rgb16(255,255,255),0);
i++;
addOverLoadTaskToServer(overloadServer);
break;
471,9 → 476,9
ch = keyb_getch(BLOCK);
}
*/
//ending_system(NULL);
while(1);
 
ending_system(NULL);
// while(1);
return 0;
 
/demos/trunk/sharkDecoderWithFSF/gvideo.c
84,7 → 84,7
}
if(!port_send(p, (void*)&msg,BLOCK))
{
grx_text("\n\n readTask ******************** E R R O R E R R O R E R R O R **********************\n",0,0,rgb16(255,255,255),0);
//grx_text("\n\n readTask ******************** E R R O R E R R O R E R R O R **********************\n",0,0,rgb16(255,255,255),0);
}
}
}
113,7 → 113,7
if(port_receive(p, (void*)&msg, BLOCK))
{
if (initflag == 0)
grx_text("",20,20,rgb16(255,255,255),0);
grx_text("",20,20,rgb16(255,255,255),0);
displayTaskFunction(msg.src, msg.frame);
//cprintf("Display");
128,7 → 128,7
}
else
{
grx_text(" displayTask ******************** E R R O R E R R O R E R R O R **********************",20,20,rgb16(255,255,255),0);
//grx_text(" displayTask ******************** E R R O R E R R O R E R R O R **********************",20,20,rgb16(255,255,255),0);
initflag = 0;
}
//fsf_schedule_timed_job(NULL, NULL, NULL, NULL, NULL);