Ejemplo n.º 1
0
VOID
Trace(TRACE trace, VOID *v)
{
	for (BBL bbl = TRACE_BblHead(trace); BBL_Valid(bbl); bbl = BBL_Next(bbl)) {
		BasicBlockTrace(trace, bbl);

	 	for (INS ins = BBL_InsHead(bbl); INS_Valid(ins); ins = INS_Next(ins)) {
			CallTrace(trace, ins);
			MemoryTrace(trace, ins);
		}
	}
}
Ejemplo n.º 2
0
/*******************************************************************************
* Function Name  : SendKey
* Description    : Send key to key processing proc.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void SendKey(u8 key)
{
  key_proc_req_t  *p_req = NULL;

  p_req = (key_proc_req_t*)Malloc(&g_SystemHeap,8);

  if( p_req != NULL)
  {
    p_req->cmd = KEY_CMD_IR_INPUT;
    p_req->key_msg.key_modifier = 0;
    p_req->key_msg.key_val = key;

    KeyProc_QPut((u8*)p_req);
  }
  else
  {
    CallTrace(TRACE_APP_LOW,"Remocon: Memory alloc fail !\n\r");
  }

}
Ejemplo n.º 3
0
/*******************************************************************************
* Function Name  : IRemoCon_ISR
* Description    : process IR remocon received pulse .
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void IRemoCon_ISR()
{
//	CallTrace(TRACE_DRV_HIGH, "IRemoCon_ISR %d %d\n\r",state,ir_count_100us);

  switch(state)
  { 
	case lead :   
		// between falling edge (8.5ms~9.5ms)
		// then, lead code!!!
		while((ir_count_100us >= 85) && (ir_count_100us < 95)){	
			  state = code; 								    
			  bit_count = 0;   
			  temp = 0;

			  CallTrace(TRACE_DRV_HIGH, "IRemoCon lead %d\n\r",ir_count_100us);
			  
			  break;
		}
	case code : 											
															
		 if((ir_count_100us < 15)){ // dummy time
		 	
		 }else if((ir_count_100us >= 20) && (ir_count_100us < 25)) // between falling edge (2ms~2.5ms)
			 temp |= 0x80;								      // then, code is one(1)!!!
	     else{ 
			 state = lead;
			 break;
		 }
		  
	     bit_count++;

	     if(!(bit_count % 8))						   
	     { 
			  data[(bit_count / 8) - 1] = temp; 
			  temp = 0;

			  if(bit_count >= 32)
		      { 
				  state = lead; 
				  bit_count = 0;
				  flag = 1;
                
			      //CallTrace(TRACE_DRV_HIGH, "IRemoCon custom code:0x%02x%02x data:0x%02x%02x\n\r",data[0],data[1],data[2],data[3]);

				   if(CustomCode1==data[0] && CustomCode2==data[1])
				  SendKey(Conv_Key(data[2]));				  
			  }
		  }

		  temp = temp >> 1;
		  break;

	default: 
		state = lead;
		break;
	
  }

  ir_count_100us = 0;
  
}