Ejemplo n.º 1
0
void test_alarm(void)
{
	int i,j,it,cnt,icnt;
	unsigned char testbuf[100];
	cnt = 0;
	icnt=1000;
	it=0;
#if 0
			//cnt =alarm_count_get();
			for(i=0;i<sizeof testbuf;i++)
				testbuf[i]=1;
			alarm_save(0,testbuf,100);
			for(i=0;i<sizeof testbuf;i++)
				testbuf[i]=2;
			alarm_save(0,testbuf,100);
			
			memset(testbuf,0,sizeof testbuf);
			alarm_read(0,1,testbuf,100);
	
			memset(testbuf,0,sizeof testbuf);
			alarm_read(0,0,testbuf,100);

#endif
	while(1){
		for(j=1;j<2;j++){
			while(cnt<300){
				for(i=0;i<sizeof testbuf;i++)
					testbuf[i]=i/3+cnt;
				alarm_save(j,testbuf,100);
				cnt ++;
				icnt = cnt;
			}
			cnt=299;
			icnt=255;
			while(cnt){
				
				delay_us(200000);
				memset(testbuf,0,sizeof testbuf);
				alarm_read(j,icnt,testbuf,100);
				for(i=0;i<sizeof testbuf;i++)
					if(testbuf[i]!=(unsigned char)(i/3+cnt))
						break;
				if(i==sizeof testbuf)
					print(PRINT_NORMAL,"check cnt icnt: %d it:%d ok\n",icnt,it);
				else
					print(PRINT_NORMAL,"check cnt icnt :%d it %d err\n",icnt,it);
				cnt --;
				icnt--;
				if(icnt<0)
					icnt=255;
			}
		}
	}

}
Ejemplo n.º 2
0
    }
    res->next = NULL;
    return res;
  }
}

static alarm_t* root_peek(void) {
  return root;
}

static void callback( __attribute__ ((unused)) int unused0,
                      __attribute__ ((unused)) int unused1,
                      __attribute__ ((unused)) int unused2,
                      __attribute__ ((unused)) void* ud) {
  for (alarm_t* alarm = root_peek(); alarm != NULL; alarm = root_peek()) {
    uint32_t now = alarm_read();
    // has the alarm not expired yet? (distance from `now` has to be larger or
    // equal to distance from current clock value.
    if (alarm->expiration - alarm->t0 > now - alarm->t0) {
      alarm_internal_set(alarm->expiration);
      break;
    } else {
      root_pop();

      if (alarm->callback) {
        tock_enqueue(alarm->callback, now, alarm->expiration, 0, alarm->ud);
      }
    }
  }
}
Ejemplo n.º 3
0
int alarm_readflash_bin(unsigned char type,unsigned int cur,void *pbuf,unsigned short len)
{	
	return alarm_read(type,cur,pbuf,len);
}