亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? com.c

?? 中芯微VC0528測試程序
?? C
字號:
/*
 *  Com.c
 *
 *  Copyright (C) 2004 Vimicro Corporation
 *  
 *  Written by TangMian	Email: tangmian@vimicro.com	Tel: 010-68948888-8902
 *
 *  Overview:
 *   This is a Serial Communication Firmware. It is used to Script Test.
 *
 *
 *   2005,10,27
 *		Released By TangMian.	Version 1.01
 */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include "Com.h"

void Com_SendData(char* pt, int num);

void ErrorCommand(void);
void RespondCommand(void);
void ReturnCommand(UINT8 vl);
UINT16 LengthCommand(void);
UINT8 GetDataCommand(UINT8* ptr, UINT16 length);

void InitComRecive(UINT32 baud, void (*func)(UINT8 uOneByte));


UINT8	m_buf[12];
UINT8	bcomnum = 0;

UINT32		dPara[64];


static UINT8	buffer[256];
static UINT8	bData[256];






static	UINT32	(*pReceiveFunc)(UINT8* pbDptr);
static	void	(*pSendFunc)(UINT8* pbDptr, UINT32 dNum);




//************************************************ API ******************************************************//
/*------------------------------------------------------------------------------------------------------------
 [DESCRIPTION]
			Initialize Uart0
 [ARGUMENTS]
			pReceiveCom:	Receive Function Pointer
			pSendCom:	Send Function Pointer
 [RETURN VALUE]
			NULL
------------------------------------------------------------------------------------------------------------*/
void Com_Init(UINT32 (*pReceiveCom)(UINT8* pbDptr), void (*pSendCom)(UINT8* pbDptr, UINT32 dNum))
{
	memset(m_buf, 0, 12);
	memset(buffer, 0, 256);
	memset(bData, 0, 256);
	memset((void*)dPara, 0, 64);
	pReceiveFunc = pReceiveCom;
	pSendFunc = pSendCom;
}



/*------------------------------------------------------------------------------------------------------------
 [DESCRIPTION]
			Check that wether command has been received
 [ARGUMENTS]
			NULL
 [RETURN VALUE]
			1: command received;	0: No command received
------------------------------------------------------------------------------------------------------------*/
UINT8 Com_Check(void)
{

	UINT8*	sptr;
	
	sptr = m_buf + bcomnum;
	bcomnum += (UINT8)pReceiveFunc(sptr);
	/*
	if((m_buf[0]==0x80) && (bcomnum==0xA))
	{
		//bcomnum = 0; //leon
		return 1;
	}
	else
		return 0;*///leon
	if(m_buf[0]!=0x80)
		bcomnum=0;
	if(bcomnum>=0xA)
	{
		bcomnum = 0; 
		return 1;
	}
	else
		return 0;	

}

/*------------------------------------------------------------------------------------------------------------
 [DESCRIPTION]
			Get Command Main ID
 [ARGUMENTS]
			NULL
 [RETURN VALUE]
			ID Number	(0x81: 938; 0x82: 568; 0x83 Function ...)
------------------------------------------------------------------------------------------------------------*/
UINT8 Com_GetMainID(void)
{
	return m_buf[1];
}

/*------------------------------------------------------------------------------------------------------------
 [DESCRIPTION]
			Get Function Parameter
 [ARGUMENTS]
			NULL
 [RETURN VALUE]
			1: Success; 0: Failed
------------------------------------------------------------------------------------------------------------*/
UINT8 Com_GetFuncPara(void)
{
	UINT32	i, len;
	//UINT8*	sptr;
	
	//sptr = (UINT8*)dPara;
	len = LengthCommand();
	RespondCommand();
	i = GetDataCommand(bData, len);
	if (i)
	{
		//for(j=0; j<256; j++)
		//{
			//*sptr ++ = *(bData + j);
			memcpy((void*)dPara, (void*)(bData + 1), 256);
		//}
	}
	
	return i;
}


/*------------------------------------------------------------------------------------------------------------
 [DESCRIPTION]
			Get Function Command ID
 [ARGUMENTS]
			NULL
 [RETURN VALUE]
			ID Number
------------------------------------------------------------------------------------------------------------*/
UINT16 Com_GetFuncID(void)
{
	if(Com_GetFuncPara())
		return ((m_buf[2] << 8) | m_buf[3]);
	else
		return 0;
}


/*------------------------------------------------------------------------------------------------------------
 [DESCRIPTION]
			Return Function Result
 [ARGUMENTS]
			bParaNum:	The Number of Parameter to be returned
 [RETURN VALUE]
			1: Success; 0: Failed
------------------------------------------------------------------------------------------------------------*/
void Com_ReturnValue(UINT8 bParaNum)
{
	UINT32	Temp;
	//UINT8*	sptr;
	
	Temp = bParaNum * 4;
	
	//sptr = (UINT8*)dPara;
	buffer[0] = START_FLAG;
	buffer[1] = Temp + 4;
	buffer[2] = 0x0;
	buffer[3] = 0x0;
	memcpy((void*)(buffer + 4), (void*)dPara, Temp);
	buffer[Temp + 4] = 0x55;
	buffer[Temp + 5] = END_FLAG;
	
	Com_SendData((char*)buffer, (Temp + 6));
	
	bcomnum = 0;
	memset(m_buf, 0, 12);
	memset(buffer, 0, 256);

}

/*------------------------------------------------------------------------------------------------------------
 [DESCRIPTION]
			Return Error Command
 [ARGUMENTS]
			NULL
 [RETURN VALUE]
			NULL
------------------------------------------------------------------------------------------------------------*/
void ErrorCommand(void)
{
	//DisableInterrupt();
	buffer[0] = m_buf[0];
	buffer[1] = m_buf[1];
	buffer[2] = m_buf[2];
	buffer[3] = m_buf[3];
	buffer[4] = 0x00;
	buffer[5] = 0x02;		//Unknown Command
	buffer[9] = END_FLAG;
	Com_SendData((char*)buffer, 10);
	memset(m_buf, 0, 12);
	bcomnum = 0;
	//EnableInterrupt();
}

/*------------------------------------------------------------------------------------------------------------
 [DESCRIPTION]
			Download File to a Buffer
 [ARGUMENTS]
			filePtr : Buffer Point
			size : Buffer size
 [RETURN VALUE]
			NULL
// Add by aawolf 2005.12.1
------------------------------------------------------------------------------------------------------------*/
UINT8 Com_DownloadFile(UINT8 * filePtr,UINT32 size)
{
	UINT8 * ptr;
	UINT32	filesize=0;
	char buffer[1];
	memset(buffer,0,1);

	ptr = filePtr;

	while(filesize<size)
	{
		if((size - filesize) < 512)
		{
			GetDataCommand(ptr, (size - filesize));
			break;
		}
		else
		{
			filesize += 512;
			GetDataCommand(ptr, 512);
			ptr += 512;
		}
		buffer[0] = 0x1;
		Com_SendData(buffer,1);
	}

	return 0;
}

/*------------------------------------------------------------------------------------------------------------
 [DESCRIPTION]
			Upload a Buffer to a File
 [ARGUMENTS]
			filePtr : Buffer Point
			size : Buffer size
 [RETURN VALUE]
			NULL
// Add by aawolf 2005.12.1
------------------------------------------------------------------------------------------------------------*/
UINT8 Com_UploadFile(UINT8 * ptr,UINT32 size)
{
	UINT8	rx;
	char buffer[1];
	memset(buffer,0,1);

	while(size)
	{
		if(size > 512)
		{
			Com_SendData((char*)ptr, 512);
			ptr+=512;
			size-=512;
			//rx=Uart_Getch();
		}
		else
		{
			Com_SendData((char*)ptr, size);
			break;
		}
		//Delay(100);
		GetDataCommand((UINT8 *)buffer, 1);
		//if(buffer[0] != 0x1)
		//	return 0x1;


	}
	//rx=Uart_Getch();
	return 0;
}

//************************************************ API ******************************************************//



void Com_SendData(char* pt, int num)
{
	pSendFunc((UINT8*)pt, num);

}


void RespondCommand(void)
{
	memcpy(buffer, m_buf, 4);
	buffer[4] = buffer[5] = 0x0;
	buffer[9] = END_FLAG;
	Com_SendData((char*)buffer, 10);
}

void ReturnCommand(UINT8 vl)
{
	if(vl!=0)
	{
		buffer[1]=0x00;
		buffer[2]=vl;
	}
	buffer[14]=0x55;
	buffer[15]=END_FLAG;

	Com_SendData((char*)buffer, 16);
}

UINT16 LengthCommand(void)
{
	UINT16	length;

	length = ((m_buf[4] << 8) | m_buf[5]);
	length *= 4;
	length +=3;

	return length;
}


UINT8 GetDataCommand(UINT8* ptr, UINT16 length)
{

	UINT32	dComNum = 0;
	UINT32	dNum, timeout;
	UINT8*	sptr;
	
	sptr = ptr;
	dNum = timeout = 0;
	//while((dComNum < length) && (timeout >= 0x7ffffff))
	while((dComNum < length) && (timeout < 0x7ffffff))	//leon	
	{
		dNum = pReceiveFunc(sptr);
		if (dNum == 0)
			timeout ++;
		else
		{
			sptr += dNum;
			dComNum += dNum;
		}
	}
	if(timeout >= 0x7ffffff)
		return 0;
	else
		return 1;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产电影精品久久禁18| 亚洲精品国产成人久久av盗摄 | 成人av电影观看| 久久久久久免费毛片精品| 成人高清av在线| 久久综合九色综合97_久久久| 激情五月婷婷综合| 日本一区免费视频| 91麻豆.com| 亚洲动漫第一页| 欧美一区二区三区视频免费 | 亚洲色图.com| 欧美精品xxxxbbbb| 精品一二三四在线| 国产精品久久毛片av大全日韩| 色综合天天天天做夜夜夜夜做| 亚洲精品乱码久久久久久日本蜜臀| 欧美午夜精品久久久久久孕妇| 日日摸夜夜添夜夜添亚洲女人| 欧美mv日韩mv| 成人一二三区视频| 亚洲午夜精品在线| 精品盗摄一区二区三区| 9久草视频在线视频精品| 亚洲图片自拍偷拍| 精品国精品国产尤物美女| 99久久精品久久久久久清纯| 肉肉av福利一精品导航| 国产精品无人区| 在线视频欧美精品| 国产精品一级在线| 亚洲成在人线免费| 国产精品三级视频| 欧美一区二视频| 91在线观看美女| 精品一区二区三区视频| 一区二区三区在线视频观看| 亚洲免费视频中文字幕| 精品国产一区二区三区忘忧草| 91丨porny丨户外露出| 日本aⅴ亚洲精品中文乱码| 国产精品无圣光一区二区| 日韩午夜激情视频| 91亚洲国产成人精品一区二区三| 日韩二区三区在线观看| 亚洲视频狠狠干| 久久久国产午夜精品| 欧美一区二区三区免费大片 | 久久久精品免费网站| 欧美日韩精品专区| 91丨九色丨尤物| 国产成人综合网| 另类的小说在线视频另类成人小视频在线 | 亚洲天堂网中文字| 欧美精品一区二区久久久| 3d成人动漫网站| 欧美伊人久久大香线蕉综合69 | 在线观看免费亚洲| 成人精品一区二区三区四区| 精品一区二区三区久久久| 日韩高清一级片| 午夜婷婷国产麻豆精品| 一区二区三区在线视频观看| 18成人在线观看| 国产欧美一二三区| 久久久精品黄色| www国产精品av| 久久亚洲捆绑美女| 欧美videos中文字幕| 日韩一本二本av| 91精品国产综合久久小美女| 欧美日韩成人综合在线一区二区| 欧美性猛交xxxxxxxx| 欧美性猛交一区二区三区精品| 色94色欧美sute亚洲线路一ni| aaa亚洲精品| 91欧美一区二区| 色94色欧美sute亚洲13| 在线观看三级视频欧美| 日本韩国欧美一区| 欧美中文字幕一区二区三区| 日本精品免费观看高清观看| 在线观看视频一区| 欧美精品电影在线播放| 欧美刺激脚交jootjob| 精品国一区二区三区| 国产拍揄自揄精品视频麻豆| 国产欧美日韩不卡免费| 国产精品超碰97尤物18| 一区二区三区蜜桃网| 婷婷开心久久网| 久久99久国产精品黄毛片色诱| 狠狠色丁香久久婷婷综| 粉嫩av一区二区三区在线播放| www.视频一区| 欧美网站一区二区| 精品久久久久久久人人人人传媒| 国产亚洲欧美在线| 有码一区二区三区| 日韩av一区二区三区| 国产激情一区二区三区四区| www.亚洲人| 5566中文字幕一区二区电影| 精品久久人人做人人爽| 国产精品国产三级国产三级人妇| 亚洲一区二区三区激情| 久久精品国产99| 97精品视频在线观看自产线路二| 欧美色图天堂网| 欧美精品一区二区三区蜜臀| 中文字幕日韩一区二区| 视频在线观看91| 国产综合色视频| 色老汉一区二区三区| 欧美第一区第二区| 自拍偷拍欧美激情| 美女性感视频久久| 91玉足脚交白嫩脚丫在线播放| 欧美一级片在线观看| 国产精品久久久久久久午夜片 | 欧美mv日韩mv| 亚洲欧美另类小说视频| 日产精品久久久久久久性色 | 在线视频你懂得一区| 欧美精品一区二区不卡| 亚洲精品成人a在线观看| 韩国一区二区视频| 欧美视频中文字幕| 日本一区二区免费在线| 无码av中文一区二区三区桃花岛| 成人午夜看片网址| 日韩欧美视频一区| 一区二区三区在线不卡| 精品在线亚洲视频| 欧美手机在线视频| 中文字幕日本乱码精品影院| 久久aⅴ国产欧美74aaa| 欧洲视频一区二区| 日本一区二区在线不卡| 日韩av一区二区三区四区| 色久综合一二码| 中文在线免费一区三区高中清不卡| 麻豆极品一区二区三区| 欧美日韩日日夜夜| 亚洲激情自拍偷拍| 波多野结衣在线一区| 2023国产一二三区日本精品2022| 午夜欧美2019年伦理| 91丝袜高跟美女视频| 国产精品国产a级| 福利视频网站一区二区三区| 久久久午夜精品| 久久精品国产一区二区三区免费看| 欧美在线一二三四区| 亚洲日本在线看| 91婷婷韩国欧美一区二区| 国产精品麻豆久久久| 国产一区二区三区四区五区入口 | 亚洲一区自拍偷拍| 在线免费观看一区| 亚洲综合小说图片| 色老汉一区二区三区| 亚洲免费av在线| 91在线国内视频| 亚洲欧美激情小说另类| eeuss鲁片一区二区三区在线观看| 久久精品一区二区三区四区| 国产寡妇亲子伦一区二区| 国产清纯美女被跳蛋高潮一区二区久久w| 免费欧美日韩国产三级电影| 欧美喷潮久久久xxxxx| 日韩高清一级片| 久久综合久久综合久久综合| 激情丁香综合五月| 久久久精品一品道一区| 成人一道本在线| 亚洲自拍与偷拍| 91精品午夜视频| 国产一区二区免费看| 国产视频一区二区在线| 99久久久久久| 亚洲国产一区二区视频| 欧美喷水一区二区| 日本不卡在线视频| 久久综合av免费| 成人一道本在线| 亚洲自拍偷拍av| 日韩欧美精品三级| 成人性生交大片免费看视频在线| 国产精品国产三级国产aⅴ中文 | 欧美大片国产精品| 国产乱码精品1区2区3区| 国产精品网站一区| 91久久久免费一区二区| 人人精品人人爱| 国产三级精品三级| 欧美日韩精品一区视频| 国产一区久久久| 亚洲综合在线五月| 欧美成人a∨高清免费观看|