Пример #1
0
void *low_prio_rt_thread(void *arg)
{
	struct thread *t = (struct thread *)arg;
	while (!thread_quit(t)) {
		while_not_flag(LOW_START_CYCLE, t)
		    rt_nanosleep(1 * NS_PER_MS);
		debug(DBG_INFO, "low try mutex\n");
		pthread_mutex_lock(&pi_mutex);
		debug(DBG_INFO, "low grab mutex\n");
		write_flag(MED_START_WORK);
		rt_nanosleep(1 * NS_PER_MS);
		while_not_flag(LOW_DROP_MUTEX, t) {
			//printf("!"); fflush(NULL);
			rt_nanosleep(1);
		}
		debug(DBG_INFO, "low drop mutex\n");
		low_drop_time = rt_gettime();
		pthread_mutex_unlock(&pi_mutex);
		while_not_flag(END_OF_CYCLE, t) {
			//printf("@"); fflush(NULL);
			rt_nanosleep(1 * NS_PER_MS);
		}
Пример #2
0
void clear_flag()
{
	write_flag(ADDR00, 0);
}
Пример #3
0
void send_flag(int addr, int cmd)
{
	write_flag(addr, cmd);
}