Ejemplo n.º 1
0
 UINT32 com_read(unsigned char *buffer, UINT32 nLen)
{
	UINT32 nReturn = SUCCESS;
	UINT32 i = 0;
	for(i = 0; i < nLen; i++)
	{
		if(SUCCESS != sci_read_tm(boot_uart_id, buffer+i, 1))
		{
			nReturn = ERROR_READDATA_TIMEOUT;
			break;
		}
	}
	return nReturn;
}
Ejemplo n.º 2
0
UINT32 com_read_tm(unsigned char *buffer, UINT32 nLen, UINT32 nTimeOut)
{
	UINT32 nReturn = SUCCESS;
	UINT32 i = 0;
	for(i = 0; i < nLen; i++)
	{
		if(SUCCESS != sci_read_tm(p2p_uart_id, buffer+i, nTimeOut * 1000))
		{
			nReturn = ERROR_READDATA_TIMEOUT;
			break;
		}
	}
	return nReturn;
}
Ejemplo n.º 3
0
UINT32 api_com_monitor()
{
	UINT8 i = 0;
	UINT8 ch = 0xff;
	UINT8 *comtest_command = "comtest";
	INT32 comtest_command_len = STRLEN(comtest_command) - 1;
	UINT8 sync = 0;
	UINT32 timeout = 1000;
	OSAL_T_CTSK t_ctsk;
	
	if (COM_MONITOR_CHECK_STBID &g_com_detect_flag)
	{
		i = 0;
		while(sci_read_tm(SCI_FOR_RS232, &ch, timeout) == SUCCESS)
		{
			if((i <= comtest_command_len) && (comtest_command[i] == ch))
			{
				timeout = 1000 * 100;
				sci_write(SCI_FOR_RS232, ch);
				i++;
				if (i > comtest_command_len) /* Is a comtest command string, wait for serial id trans */
				{					
					t_ctsk.stksz = 0x2000;
					t_ctsk.quantum = 10;
					t_ctsk.itskpri = OSAL_PRI_NORMAL;
					t_ctsk.name[0] = 'A';
					t_ctsk.name[1] = 'S';
					t_ctsk.name[2] = 'H';
					t_ctsk.task = (FP)lib_ash_shell;
					if(g_com_ash_id != OSAL_INVALID_ID)
					{
						osal_task_delete(g_com_ash_id);					
					}
					g_com_ash_id = osal_task_create(&t_ctsk);
					if (g_com_ash_id == OSAL_INVALID_ID)
						return 1;
					
					api_set_com_check_flag(COM_MONITOR_CHECK_PAUSE);
					break;
				}
			}
			else
				break;
		}
	}

	return 0;
}
Ejemplo n.º 4
0
UINT32 com_send2back_tm(unsigned char * buffer, UINT32 nLen, UINT32 nTimeOut)
{
	UINT32 i;
	INT8 tmp;

	for(i=0;i<nLen;i++)
	{
		sci_write(p2p_uart_id, buffer[i]);

		if(sci_read_tm(p2p_uart_id, &tmp, nTimeOut * 1000)!=SUCCESS)
		{
			return !SUCCESS;
		}
		if(tmp!= buffer[i])
		{
			return !SUCCESS;
		}
	}
	return SUCCESS;
}