Esempio n. 1
0
void taskM ( void ) {

	rt_sem_p(&xenomai_semaphore, TM_INFINITE); 	// wait for synch			
	print_pri(&taskMed, "TaskM started\n");
	rt_task_sleep(TIME_UNIT);
	print_pri(&taskMed, "TaskM starting work\n");

	busy_wait_ms(5*TIME_UNIT_MS);	
	print_pri(&taskMed, "TaskM complete\n");
}
Esempio n. 2
0
void taskH ( void ) {

	rt_sem_p(&xenomai_semaphore, TM_INFINITE); 	// wait for synch
	print_pri(&taskHigh, "TaskH started\n");
	rt_task_sleep(2*TIME_UNIT);
	
	rt_mutex_acquire(&resMut,NULL);	// lock resource	
	print_pri(&taskHigh, "TaskH locked resource\n");
	rt_task_sleep(2*TIME_UNIT);

	rt_mutex_release(&resMut);			// unlock the resource
	print_pri(&taskHigh, "TaskH released resource\n");
}
Esempio n. 3
0
void taskL ( void ) {

	rt_sem_p(&xenomai_semaphore, TM_INFINITE); 	// wait for synch
	print_pri(&taskLow, "TaskL started\n");	
	rt_mutex_acquire(&resMut,NULL);	// lock resource
	print_pri(&taskLow, "TaskL locked resource\n");
	
	busy_wait_ms(3*TIME_UNIT_MS);
	print_pri(&taskLow, "TaskL completed work\n");
	print_pri(&taskLow, "TaskL released resource\n");
	rt_mutex_release(&resMut);			// release resource
	
}
Esempio n. 4
0
void task_function(void* data)
{
	//rt_sem_p(sem, TM_INFINITE);
	print_pri(NULL,(char) data);
	//rt_sem_v(sem);

}
Esempio n. 5
0
void task_M(void* data)
{
	rt_sem_p(&syncsem,TM_INFINITE);
	rt_task_sleep_ms(1);
	//rt_sem_p(sem,TM_INFINITE);
	busy_wait_ms(5);
	print_pri(NULL,(char) data);
	//rt_sem_v(sem,TM_INFINITE);
}
Esempio n. 6
0
void task_H(void* data)
{
	rt_sem_p(&syncsem,TM_INFINITE);
	rt_task_sleep_ms(1);
	rt_sem_p(&semB,TM_INFINITE);
	rt_printf("H : I got B\n");
	busy_wait_ms(1);
	rt_sem_p(&semA,TM_INFINITE);
	busy_wait_ms(2);
	print_pri(NULL,(char) data);
	rt_sem_v(&semB);
	rt_sem_v(&semA);
}
Esempio n. 7
0
void task_L(void* data)
{
	rt_sem_p(&syncsem,TM_INFINITE);
	
	rt_sem_p(&semA,TM_INFINITE);
	int prio = rt_task_set_priority(NULL,99);
	rt_printf("L : I got A\n");
	busy_wait_ms(3);
	rt_sem_p(&semB,TM_INFINITE);
	busy_wait_ms(3);
	print_pri(NULL,(char) data);
	rt_sem_v(&semB);
	rt_sem_v(&semA);
}
Esempio n. 8
0
void
print_procs(char *name, int arity)
{
    dident d = enter_dict(name, arity);
    if (d == D_UNKNOWN)
    {
    	p_fprintf(current_output_,"No such did");
	ec_newline(current_output_);
    }
    else if (! d->procedure)
    {
    	p_fprintf(current_output_,"No procedures");
	ec_newline(current_output_);
    }
    else
    {
	pri *pd;
	for (pd=d->procedure; pd; pd=pd->nextproc)
	    print_pri(pd);
    }
}