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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? speridll.cpp

?? 為keil C 軟件模擬方式運(yùn)行編寫的一個(gè)閃存模塊。
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
// SPeriDLL.cpp : Defines the initialization routines for the DLL.
// Sample Peripheral DLL: A/D Converter for ADuC812

#include "stdafx.h"
#include "Agsi.h"
#include "SPeriDLL.h"
#include "PeriDialog.h"
#include "serial\\serialport.h"
#include <process.h>    /* _beginthread, _endthread */

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

//
//	Note!
//
//		If this DLL is dynamically linked against the MFC
//		DLLs, any functions exported from this DLL which
//		call into MFC must have the AFX_MANAGE_STATE macro
//		added at the very beginning of the function.
//
//		For example:
//
//		extern "C" BOOL PASCAL EXPORT ExportedFunction()
//		{
//			AFX_MANAGE_STATE(AfxGetStaticModuleState());
//			// normal function body here
//		}
//
//		It is very important that this macro appear in each
//		function, prior to any calls into MFC.  This means that
//		it must appear as the first statement within the 
//		function, even before any object variable declarations
//		as their constructors may generate calls into the MFC
//		DLL.
//
//		Please see MFC Technical Notes 33 and 58 for additional
//		details.
//

/////////////////////////////////////////////////////////////////////////////
// CSPeriDLLApp

BEGIN_MESSAGE_MAP(CSPeriDLLApp, CWinApp)
	//{{AFX_MSG_MAP(CSPeriDLLApp)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static AGSICONFIG  AgsiConfig;
struct AGSIFUNCS   Agsi;

DWORD TX_REG,RX_REG;
DWORD g_CpuType;
DWORD g_FlashMemBase=0x400000,g_flashMemSize=0x80000;
extern CString g_flashDataFile;
CSerialPort comPort,listenPort,listenPort1;
CString g_strComm="com4";

DWORD GetFunctionPointers(void) {           // get all function pointers

  Agsi.DefineSFR            = (tAgsiDefineSFR)             GetProcAddress(AgsiConfig.m_hInstance, "AgsiDefineSFR");
  Agsi.DefineVTR            = (tAgsiDefineVTR)             GetProcAddress(AgsiConfig.m_hInstance, "AgsiDefineVTR");
  Agsi.DeclareInterrupt     = (tAgsiDeclareInterrupt)      GetProcAddress(AgsiConfig.m_hInstance, "AgsiDeclareInterrupt");
  Agsi.SetWatchOnSFR        = (tAgsiSetWatchOnSFR)         GetProcAddress(AgsiConfig.m_hInstance, "AgsiSetWatchOnSFR");
  Agsi.SetWatchOnVTR        = (tAgsiSetWatchOnVTR)         GetProcAddress(AgsiConfig.m_hInstance, "AgsiSetWatchOnVTR");
  Agsi.SetWatchOnMemory     = (tAgsiSetWatchOnMemory)      GetProcAddress(AgsiConfig.m_hInstance, "AgsiSetWatchOnMemory");
  Agsi.CreateTimer          = (tAgsiCreateTimer)           GetProcAddress(AgsiConfig.m_hInstance, "AgsiCreateTimer");
  Agsi.DefineMenuItem       = (tAgsiDefineMenuItem)        GetProcAddress(AgsiConfig.m_hInstance, "AgsiDefineMenuItem");

  Agsi.WriteSFR             = (tAgsiWriteSFR)              GetProcAddress(AgsiConfig.m_hInstance, "AgsiWriteSFR");
  Agsi.ReadSFR              = (tAgsiReadSFR)               GetProcAddress(AgsiConfig.m_hInstance, "AgsiReadSFR");
  Agsi.WriteVTR             = (tAgsiWriteVTR)              GetProcAddress(AgsiConfig.m_hInstance, "AgsiWriteVTR");
  Agsi.ReadVTR              = (tAgsiReadVTR)               GetProcAddress(AgsiConfig.m_hInstance, "AgsiReadVTR");
  Agsi.SetSFRReadValue      = (tAgsiSetSFRReadValue)       GetProcAddress(AgsiConfig.m_hInstance, "AgsiSetSFRReadValue");
  Agsi.ReadMemory           = (tAgsiReadMemory)            GetProcAddress(AgsiConfig.m_hInstance, "AgsiReadMemory");
  Agsi.WriteMemory          = (tAgsiWriteMemory)           GetProcAddress(AgsiConfig.m_hInstance, "AgsiWriteMemory");
  Agsi.GetLastMemoryAddress = (tAgsiGetLastMemoryAddress)  GetProcAddress(AgsiConfig.m_hInstance, "AgsiGetLastMemoryAddress");
  Agsi.IsSimulatorAccess    = (tAgsiIsSimulatorAccess)     GetProcAddress(AgsiConfig.m_hInstance, "AgsiIsSimulatorAccess");
  Agsi.SetTimer             = (tAgsiSetTimer)              GetProcAddress(AgsiConfig.m_hInstance, "AgsiSetTimer");
  Agsi.GetStates            = (tAgsiGetStates)             GetProcAddress(AgsiConfig.m_hInstance, "AgsiGetStates");
  Agsi.GetProgramCounter    = (tAgsiGetProgramCounter)     GetProcAddress(AgsiConfig.m_hInstance, "AgsiGetProgramCounter");
  Agsi.IsInInterrupt        = (tAgsiIsInInterrupt)         GetProcAddress(AgsiConfig.m_hInstance, "AgsiIsInInterrupt");
  Agsi.IsSleeping           = (tAgsiIsSleeping)            GetProcAddress(AgsiConfig.m_hInstance, "AgsiIsSleeping");
  Agsi.StopSimulator        = (tAgsiStopSimulator)         GetProcAddress(AgsiConfig.m_hInstance, "AgsiStopSimulator");
  Agsi.TriggerReset         = (tAgsiTriggerReset)          GetProcAddress(AgsiConfig.m_hInstance, "AgsiTriggerReset");
  Agsi.UpdateWindows        = (tAgsiUpdateWindows)         GetProcAddress(AgsiConfig.m_hInstance, "AgsiUpdateWindows");
  Agsi.HandleFocus          = (tAgsiHandleFocus)           GetProcAddress(AgsiConfig.m_hInstance, "AgsiHandleFocus");
  Agsi.GetExternalClockRate = (tAgsiGetExternalClockRate)  GetProcAddress(AgsiConfig.m_hInstance, "AgsiGetExternalClockRate");
  Agsi.GetInternalClockRate = (tAgsiGetInternalClockRate)  GetProcAddress(AgsiConfig.m_hInstance, "AgsiGetInternalClockRate");
  Agsi.GetClockFactor       = (tAgsiGetClockFactor)        GetProcAddress(AgsiConfig.m_hInstance, "AgsiGetClockFactor");
  Agsi.Message              = (tAgsiMessage)               GetProcAddress(AgsiConfig.m_hInstance, "AgsiMessage");
  Agsi.GetTargetKey         = (tAgsiGetTargetKey)          GetProcAddress(AgsiConfig.m_hInstance, "AgsiGetTargetKey");
  Agsi.SetTargetKey         = (tAgsiSetTargetKey)          GetProcAddress(AgsiConfig.m_hInstance, "AgsiSetTargetKey");
  Agsi.GetSymbolByName      = (tAgsiGetSymbolByName)       GetProcAddress(AgsiConfig.m_hInstance, "AgsiGetSymbolByName");
  Agsi.GetSymbolByValue     = (tAgsiGetSymbolByValue)      GetProcAddress(AgsiConfig.m_hInstance, "AgsiGetSymbolByValue");
  Agsi.ExecuteCommand       = (tAgsiExecuteCommand)      GetProcAddress(AgsiConfig.m_hInstance, "AgsiExecuteCommand");

  if ((Agsi.DefineSFR            == NULL) ||
      (Agsi.DefineVTR            == NULL) ||
      (Agsi.DeclareInterrupt     == NULL) ||
      (Agsi.SetWatchOnSFR        == NULL) ||
      (Agsi.SetWatchOnVTR        == NULL) ||
      (Agsi.SetWatchOnMemory     == NULL) ||
      (Agsi.CreateTimer          == NULL) ||
      (Agsi.DefineMenuItem       == NULL) ||

      (Agsi.WriteSFR             == NULL) ||
      (Agsi.ReadSFR              == NULL) ||
      (Agsi.WriteVTR             == NULL) ||
      (Agsi.ReadVTR              == NULL) ||
      (Agsi.SetSFRReadValue      == NULL) ||
      (Agsi.ReadMemory           == NULL) ||
      (Agsi.WriteMemory          == NULL) ||
      (Agsi.GetLastMemoryAddress == NULL) ||
      (Agsi.IsSimulatorAccess    == NULL) ||
      (Agsi.SetTimer             == NULL) ||
      (Agsi.GetStates            == NULL) ||
      (Agsi.GetProgramCounter    == NULL) ||
      (Agsi.IsInInterrupt        == NULL) ||
      (Agsi.IsSleeping           == NULL) ||
      (Agsi.StopSimulator        == NULL) ||
      (Agsi.TriggerReset         == NULL) ||
      (Agsi.UpdateWindows        == NULL) ||
      (Agsi.HandleFocus          == NULL) ||
      (Agsi.GetExternalClockRate == NULL) ||
      (Agsi.GetInternalClockRate == NULL) ||
      (Agsi.GetClockFactor       == NULL) ||
      (Agsi.Message              == NULL) ||
      (Agsi.GetTargetKey         == NULL) ||
      (Agsi.SetTargetKey         == NULL) ||
      (Agsi.GetSymbolByName      == NULL) ||
      (Agsi.ExecuteCommand       == NULL) ||
      (Agsi.GetSymbolByValue     == NULL)) {

    return(FALSE);
  }

  return(1);
}


DWORD DefineAllSFR(void) {           // declare all special function registers and their bits
  BOOL ret = TRUE;

	/*
  ret &= Agsi.DefineSFR("ADCCON1",  ADCCON1,  AGSIBYTE, 0);  // If more SFR's are defined, do it in a table
  ret &= Agsi.DefineSFR("ADCCON2",  ADCCON2,  AGSIBYTE, 0);
  ret &= Agsi.DefineSFR("ADCCON3",  ADCCON3,  AGSIBYTE, 0);
  ret &= Agsi.DefineSFR("ADCDATAL", ADCDATAL, AGSIBYTE, 0);
  ret &= Agsi.DefineSFR("ADCDATAH", ADCDATAH, AGSIBYTE, 0);
  ret &= Agsi.DefineSFR("DMAL",     DMAL,     AGSIBYTE, 0);
  ret &= Agsi.DefineSFR("DMAH",     DMAH,     AGSIBYTE, 0);
  ret &= Agsi.DefineSFR("DMAP",     DMAP,     AGSIBYTE, 0);

  // It is only allowed to define bits which are bitaddressable.
  ret &= Agsi.DefineSFR("CS0",      ADCCON2,  AGSIBIT,  0);
  ret &= Agsi.DefineSFR("CS1",      ADCCON2,  AGSIBIT,  1);
  ret &= Agsi.DefineSFR("CS2",      ADCCON2,  AGSIBIT,  2);
  ret &= Agsi.DefineSFR("CS3",      ADCCON2,  AGSIBIT,  3);
  ret &= Agsi.DefineSFR("SCONV",    ADCCON2,  AGSIBIT,  4);
  ret &= Agsi.DefineSFR("CCNOV",    ADCCON2,  AGSIBIT,  5);
  ret &= Agsi.DefineSFR("DMA",      ADCCON2,  AGSIBIT,  6);
  ret &= Agsi.DefineSFR("ADCI",     ADCCON2,  AGSIBIT,  7);	
	if(g_CpuType==80166)
	{
		ret &= Agsi.DefineSFR("ASC_RBUF", RX_REG,  AGSIWORD,  AGSIREAD);
		ret &= Agsi.DefineSFR("ASC_TBUF", TX_REG,  AGSIWORD,  AGSIWRITE);
	}
	else if(g_CpuType==8051)
	{
		ret &= Agsi.DefineSFR("ASC_TBUF", TX_REG,  AGSIBYTE,  AGSIWRITE);
	}
	 	*/
 // ret &= Agsi.DefineSFR("ASC1RIR",0xF18A,  AGSIBIT,  7);	
  return(ret);
}														


struct vtrlist VTREG[] = {           // VTR's definition: keep this table consistent with defines in SPeriDLL.h
  { "S0IN",   AGSIVTRCHAR, 0x00000000, NULL },
  { "S1IN",   AGSIVTRCHAR, 0x00000000, NULL },
  { "S0OUT",  AGSIVTRCHAR, 0x00000000, NULL },
  { "S1OUT",  AGSIVTRCHAR, 0x00000000, NULL },
  { "AIN4",   AGSIVTRFLOAT, 0x00000000, NULL },
  { "AIN5",   AGSIVTRFLOAT, 0x00000000, NULL },
  { "AIN6",   AGSIVTRFLOAT, 0x00000000, NULL },
  { "AIN7",   AGSIVTRFLOAT, 0x00000000, NULL },
  { "TEMP",   AGSIVTRFLOAT, 0x41C80000, NULL },  // 25 癈
  { "VREF",   AGSIVTRFLOAT, 0x40200000, NULL },  // 2.5 V
  { "XTAL",   AGSIVTRLONG,  0x00A8C000, NULL },  // 11.0592MHz oscillator frequency
  { "CONVST", AGSIVTRCHAR,  0x00000001, NULL },
};

DWORD DefineAllVTREG(void) {         // declare all virtual registers
  BOOL ret = TRUE;
  int i;

  for (i = 0; i < (sizeof(VTREG) / sizeof (VTREG[0])); i++) {
    VTREG[i].hVTR = Agsi.DefineVTR(VTREG[i].pName, VTREG[i].Type, VTREG[i].Value);
	if (!VTREG[i].hVTR) ret = FALSE;
  }

  return(ret);
}


AGSIINTERRUPT Interrupt = {     // Table of all Interrupts of this module
// vec    *mess           msfr mmask *mname  rsfr     rmask *rname  esfr  emask *ename  p0sfr p0mask *pname p1sfr p1mask pwl auto_reset
   0x33, "A/D Converter",  0,  0,     "",    ADCCON2, 0x80, "ADCI", IE,   0x40, "EADC", IP,   0x40,  "Pri", 0,    0x00,  7,  1   // ADCI
};


DWORD DefineAllInterrupts(void) {   // declare all interrupts

  if (!Agsi.DeclareInterrupt(&Interrupt)) return(FALSE);

  return(TRUE);
}

const DWORD flash_addr0=0x0aaa;  
const DWORD flash_addr1=0x0554;
const DWORD ManuIDAddr=0x0; 
const DWORD DevIDAddr=0x02;  


const WORD flash_comm0=0xaaaa; 	    
const WORD flash_comm1=0x5555;
const WORD flash_readID=0x9090;       
const WORD flash_write=0xA0A0;       
const WORD flash_ready=0x8080;        
const WORD flash_erasechip=0x1010;   
const WORD flash_erasesector=0x3030;  
const WORD flash_ManuID=0x4;
const WORD flash_DevID=0x2258;

int mstate=0;


void stateMachine(DWORD addr,WORD cmd)
{
	static WORD old0,old1,old2;
	WORD tmp;

	if(addr<g_FlashMemBase||addr>=g_FlashMemBase+g_flashMemSize)return;
	addr-=g_FlashMemBase;
	Agsi.Message("current State %i,Address:0x%08X,data:%i\n",mstate,addr,cmd);
	switch(mstate)
	{
	case 0:
		if(cmd==0xf0f0)
			mstate=1;
		break;
	case 1:
		if(cmd==flash_comm0)
			mstate=2;
		else if(cmd!=0xf0f0)
			mstate=0;
		break;
	case 2:
		if(cmd==flash_comm1)
			mstate=3;
		break;
	case 3:
		switch(cmd)
		{
		case 0x9090://flash_readID:
			Agsi.ReadMemory(g_FlashMemBase+ManuIDAddr,2,(BYTE *)&old0);	 
			Agsi.ReadMemory(g_FlashMemBase+DevIDAddr,2,(BYTE *)&old1);	
			Agsi.WriteMemory(g_FlashMemBase+ManuIDAddr,2,(BYTE *)&flash_ManuID);
			Agsi.WriteMemory(g_FlashMemBase+DevIDAddr,2,(BYTE *)&flash_DevID);
			mstate=20;
			break;
		case 0xA0a0://flash_write:
			mstate=21;
			break;
			//			case 0x1010://flash_erasechip:
			//			mstate=12;
			//				break;
			//				case 0x3030://flash_erasesector:
			//					mstate=20;
			//					break;
		case 0x8080://flash_ready:
			mstate=8;
			break;
		default:
			mstate=0;
			break;
		}
		break;
	case 8:
		if(cmd==flash_comm0)
			mstate=9;
		break;
	case 9:
		if(cmd==flash_comm1)
		{
			mstate=10;
	//		memset(FLASHBASE,memEnd-FLASHBASE+1,0xff);
		}
		break;
	case 10:
		if(cmd==0xf0f0)
		{
			mstate=1;
		}
		else
			mstate=0;
		break;
	case 13:
		break;
	case 14:
		break;
	case 20:
		if(cmd==0xf0f0)
		{
			Agsi.WriteMemory(g_FlashMemBase+ManuIDAddr,2,(BYTE *)&old0);	 
			Agsi.WriteMemory(g_FlashMemBase+DevIDAddr,2,(BYTE *)&old1);	
			mstate=1;
		}
		else
			mstate=0;
		break;
	case 21:
		break;
	default:
		mstate=0;
	}
}


 void FlashRead(DWORD adr, AGSICB_REASON r)
{
	 static DWORD order=0;
	 byte value[4]={2,3,4,5};
	// DWORD addr=Agsi.GetLastMemoryAddress();
	//Agsi.WriteMemory(adr,2,value);
	 Agsi.Message("%09u %Address:0x%08X,reason:%i\n",order++,adr,r);
}

void FlashWrite(DWORD adr, AGSICB_REASON r)
{
	stateMachine(adr,1);
}

byte txbuf[8192];
int txindex=0;

void asc1Tx(DWORD adr, AGSICB_REASON r)
{
  DWORD outChar,prev;
	Agsi.ReadSFR(0xfeb8,&outChar,&prev,0xff);
	comPort.Write(&outChar,1);
	listenPort.Write(&outChar,1);
}

void asc0Tx(DWORD adr, AGSICB_REASON r)
{

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品色综合| 久久久午夜精品| 国产在线精品免费| 樱花影视一区二区| 精品入口麻豆88视频| 91美女在线视频| 日本美女一区二区三区视频| 综合久久久久久| 26uuu精品一区二区三区四区在线| 99re视频这里只有精品| 韩国欧美国产1区| 日韩精品每日更新| 一区二区三区中文字幕| 2023国产精品自拍| 欧美一级夜夜爽| 欧美日韩精品综合在线| 成人性生交大片免费看中文 | 久久综合999| 在线观看亚洲专区| 懂色一区二区三区免费观看| 麻豆成人91精品二区三区| 亚洲精品五月天| 亚洲国产精品v| 国产视频一区在线观看| 欧美tk—视频vk| 欧美一区在线视频| 欧美日韩一区中文字幕| 色婷婷综合久久久久中文| 99视频国产精品| 色综合一区二区| 91久久精品国产91性色tv| 成人黄色小视频在线观看| 国产又黄又大久久| 国产一区免费电影| 国产成人在线电影| 国产乱对白刺激视频不卡| 国内成+人亚洲+欧美+综合在线| 男男gaygay亚洲| 日本vs亚洲vs韩国一区三区二区| 首页综合国产亚洲丝袜| 日韩黄色在线观看| 精品中文字幕一区二区| 国产中文字幕精品| 成人深夜在线观看| 91日韩精品一区| 欧美网站一区二区| 欧美男同性恋视频网站| 欧美电视剧免费全集观看| 久久蜜臀中文字幕| 国产精品国产三级国产有无不卡| 国产精品国产三级国产aⅴ中文 | 欧美在线999| 欧美视频一区二区| 欧美一级xxx| 国产色91在线| 亚洲精品国产无套在线观| 一区二区三区不卡在线观看| 亚洲妇女屁股眼交7| 老司机精品视频一区二区三区| 久久99精品久久久久婷婷| 成人晚上爱看视频| 欧美最猛黑人xxxxx猛交| 日韩欧美一区二区不卡| 国产精品丝袜91| 一区二区免费视频| 老鸭窝一区二区久久精品| 成人一级黄色片| 欧美性一二三区| 欧美mv和日韩mv国产网站| 欧美极品xxx| 亚洲mv大片欧洲mv大片精品| 久久爱www久久做| 91丨porny丨最新| 欧美精品久久久久久久多人混战 | 91欧美激情一区二区三区成人| 欧美在线免费播放| www激情久久| 亚洲精品高清视频在线观看| 日韩av高清在线观看| 成人一区二区三区视频 | 中文字幕一区不卡| 日韩电影一区二区三区| 国产xxx精品视频大全| 欧美午夜精品一区二区蜜桃| 欧美成人午夜电影| 一区二区三区四区高清精品免费观看 | 亚洲综合一二区| 国产综合久久久久久久久久久久| 色综合久久88色综合天天免费| 91精品久久久久久久99蜜桃| 国产精品久久久久影视| 蜜桃精品在线观看| 在线观看免费成人| 久久精品综合网| 日日摸夜夜添夜夜添国产精品| 成人免费毛片片v| 欧美一级欧美一级在线播放| 亚洲欧美一区二区三区孕妇| 久久精品国产精品青草| 欧美日韩一区二区三区视频| 国产精品美女一区二区三区| 看电影不卡的网站| 欧美午夜精品久久久| 亚洲丝袜精品丝袜在线| 国产成人精品免费在线| 欧美一级视频精品观看| 亚洲图片自拍偷拍| 99riav一区二区三区| 久久久久久久久免费| 老司机免费视频一区二区| 欧美日韩久久久久久| 亚洲乱码国产乱码精品精的特点| 国产精品视频免费| 夜夜嗨av一区二区三区| 99热99精品| 国产蜜臀97一区二区三区| 激情av综合网| 91麻豆精品国产无毒不卡在线观看| 亚洲精品va在线观看| 99久久精品免费精品国产| 国产欧美日韩亚州综合| 国产一区二区h| www亚洲一区| 国产一区二区福利| 久久久一区二区三区捆绑**| 精品一区二区国语对白| 日韩一区二区精品| 久久电影网电视剧免费观看| 在线播放国产精品二区一二区四区| 一区二区三区欧美久久| 在线中文字幕一区| 亚洲黄色尤物视频| 欧美综合色免费| 一二三四社区欧美黄| 在线观看国产91| 亚洲一线二线三线视频| 欧美日本国产视频| 日本色综合中文字幕| 日韩一区二区在线免费观看| 秋霞av亚洲一区二区三| 精品国产免费一区二区三区四区 | 日韩精品专区在线影院观看| 日本亚洲三级在线| 91精品国产乱| 国模无码大尺度一区二区三区| 久久精品一区蜜桃臀影院| 国产91露脸合集magnet| 国产精品久久久久久久久搜平片| 成人精品视频一区二区三区尤物| 中国av一区二区三区| 色婷婷av一区二区三区之一色屋| 亚洲一区二区三区爽爽爽爽爽| 欧美久久免费观看| 麻豆精品一区二区| 国产欧美综合在线| 色狠狠综合天天综合综合| 亚洲大片免费看| 欧美大片在线观看一区二区| 国产成人h网站| 亚洲国产综合人成综合网站| 欧美一区二区免费视频| 国产精品123| 亚洲一区二区四区蜜桃| 欧美xxxx在线观看| 成人三级在线视频| 亚洲午夜久久久久久久久电影网| 欧美一区二区三区视频免费播放| 黄页网站大全一区二区| 亚洲国产高清不卡| 日本韩国精品在线| 美女爽到高潮91| 国产精品乱人伦| 欧美日韩五月天| 国产一区二区看久久| 亚洲精品久久久久久国产精华液| 亚洲日本免费电影| 欧美精品丝袜中出| 成人国产精品免费| 亚洲成人精品在线观看| 国产亚洲美州欧州综合国| 在线精品视频免费播放| 国内精品写真在线观看| 91色porny| 另类小说色综合网站| 亚洲精品视频观看| 久久久99精品久久| 欧美日韩国产高清一区二区三区| 国产成人精品一区二区三区网站观看| 亚洲精品国产无套在线观| 久久久精品综合| 91麻豆精品91久久久久久清纯| 国产传媒日韩欧美成人| 日韩avvvv在线播放| 亚洲视频一区二区在线| 久久久久久久电影| 日韩一卡二卡三卡四卡| 欧美性猛片xxxx免费看久爱| 高清国产一区二区| 精品一区二区三区在线播放视频| 亚洲综合男人的天堂|