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

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

?? coffloader.cpp

?? dsp2808控制的代碼
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
	InitEvent();

    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

	do
	{
		isEvt = CheckEvents();
		if( isEvt )
		{
			if( m_Evt.System )
				break;

			if( m_Evt.Type != EVT_NONE )
				break;
			isEvt = FALSE;
		}
        else {
			Sleep(10);
        }

        TimeOutInMs -= 10;

	}while( TimeOutInMs > 0 );

	return( isEvt );
}
/*F***************************************************************************
* NAME: RunTarget( void )   
*
* DESCRIPTION:  Start the target running from it's current program counter.
*               If processor had stopped on a breakpoint then it will be
*               stepped over by low level code.
*
*
*F***************************************************************************/
BOOL CoffLoader::RunTarget( void )
{
    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }
	return( m_pSdti_Intf->pExe->Continue( m_Sdti_Hndl ));
}

/*F***************************************************************************
* NAME: StepTarget( void )   
*
* DESCRIPTION:  Step the target
*
*F***************************************************************************/
BOOL CoffLoader::StepTarget( DWORD Count )
{
    BOOL Success;
    BOOL isEvt;
    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }
	Success = m_pSdti_Intf->pExe->Step( m_Sdti_Hndl, (unsigned long)Count );
    if( Success == FALSE )
        return( FALSE );

	isEvt = WaitForHaltEvent();

	// Timed out or some oher event but may not be halted
	if( isEvt == FALSE )
		return( FALSE );

	// Target has not halted return error
	if( m_pSdti_Intf->pExe->IsRunning( m_Sdti_Hndl ) == TRUE )
		return( FALSE );
	
	return( TRUE );}

/*F***************************************************************************
* NAME:  RunTargetTillDone( )  
*
* DESCRIPTION:  Run processor and wait for a "halting" event.  Then verify
*               the processor has stopped.
*
*
*F***************************************************************************/
BOOL CoffLoader::RunTargetTillDone( )
{
	BOOL isEvt;

    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

	if( RunTarget() == FALSE )
		return( FALSE );

	isEvt = WaitForHaltEvent();

	// Timed out or some other event but may not be halted
	if( isEvt == FALSE )
		return( FALSE );

	if( m_pSdti_Intf->pExe->IsRunning( m_Sdti_Hndl ) == TRUE )
		return( FALSE );
	
	return( TRUE );
}

/*F***************************************************************************
* NAME:  GoMain( void ) 
*
* DESCRIPTION: Sets breakpoint at main and runs to it then deletes the
*              breakpoint.
*
*
*F***************************************************************************/
BOOL CoffLoader::GoMain( void )
{

    BOOL  BpSuccess, RunSuccess;
    
    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

    BpSuccess = AddSwbp( "_main" );
    if( BpSuccess == FALSE )
        return( FALSE );
    
    RunSuccess = RunTargetTillDone();
    if( RunSuccess == FALSE ) {
        ErrMsg("Target did not hit breakpoint" );
    }

    // DeleteSwbp will check for valid run condition before deleting
    BpSuccess = DeleteSwbp("_main");

    return( RunSuccess & BpSuccess );
}

/*F***************************************************************************
* NAME: HaltTarget( void )   
*
* DESCRIPTION:  Halt/Suspend target execution and verify the halt condition.
*
*
*F***************************************************************************/
BOOL CoffLoader::HaltTarget( void )
{
	BOOL isEvt;

    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

	// Ignore the the return value
	m_pSdti_Intf->pExe->Suspend( m_Sdti_Hndl );
    
	isEvt = WaitForHaltEvent();

	// Timed out or some oher event but may not be halted
	if( isEvt == FALSE )
		return( FALSE );

	// Target has not halted
	if( m_pSdti_Intf->pExe->IsRunning( m_Sdti_Hndl ) == TRUE )
		return( FALSE );
	
	return( TRUE );

}
/*F***************************************************************************
* NAME: DoReset( void )
*
* DESCRIPTION:  Reset the target. Beware, this is a soft reset not a hardware
*               reset.  So may want to add in some extra post-reset operations.
*
*
*F***************************************************************************/
BOOL CoffLoader::DoReset( void )
{
	BOOL isReset = FALSE;

    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

	// Reset the processor and check/clear events
	while( CheckEvents() ){}

    isReset = m_pSdti_Intf->pExe->Reset( m_Sdti_Hndl );
    if( isReset == TRUE )
	{
		// Clear events and make sure we are not running
		while( CheckEvents() ){}

		if( m_pSdti_Intf->pExe->IsRunning( m_Sdti_Hndl ) == TRUE ) {
			isReset = FALSE;
		}
		else 
		{
			TREG_16   Data[8];
			int       i;
            TREG_16 Wd = 0x0068;
            // Disable the watchdog
            WriteMemory( (MEM_TADDR)0x7029,M_DATA,&Wd,1 );

			/* Read the password locations */
			//XAR0 = *0x3F7FF8;
			//XAR0 = *0x3F7FF9;
			//XAR0 = *0x3F7FFA;
			//XAR0 = *0x3F7FFB;
			//XAR0 = *0x3F7FFC;
			//XAR0 = *0x3F7FFD;
			//XAR0 = *0x3F7FFE;
			//XAR0 = *0x3F7FFF;

			//ReadMemory( (MEM_TADDR)0x3F7FF8, M_DATA, Data, 8 );

			/* Assumes flash is erased */
			//*0xAE0 = 0xFFFF;
			//*0xAE1 = 0xFFFF;
			//*0xAE2 = 0xFFFF;
			//*0xAE3 = 0xFFFF;
			//*0xAE4 = 0xFFFF;
			//*0xAE5 = 0xFFFF;
			//*0xAE6 = 0xFFFF;
			//*0xAE7 = 0xFFFF;

			//for(i=0; i<8; i++ )
			//	Data[i] = 0xFFFF;
			//WriteMemory(  0xAE0, M_DATA, Data, 8 );
        }
	}
    // Reset can take us out of realtime mode to force reevaluation
    m_isRealTimeAllowed = 0;
	return( isReset );
}

/*F***************************************************************************
* NAME:  EnterRealtimeMode( BOOL Polite ) 
*
* DESCRIPTION:  Enter realtime mode.
*
*F***************************************************************************/
BOOL CoffLoader::EnableRealtimeMode()
{
    DWORD Mode;
    DWORD St1 = (DWORD)-1;

    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

    // Requires revision 2 of the execution code to get support for
    // realtime mdoe.
    if( m_pSdti_Intf->pExe->Revision < 2 )
        return( FALSE );

    // DBGM bit in ST1 must be 0 to enter realtime mode
    if( ReadRegister( "ST1", &St1) == FALSE ){
        return( FALSE );
    }
    if( (St1 & 2 ) == 2 )
    {
        St1 &= ~2;
        if( WriteRegister( "ST1", &St1) == FALSE ) 
            return( FALSE );

        if( ReadRegister( "ST1", &St1) == FALSE ) 
            return( FALSE );
        if( (St1 & 2 ) == 2 )
            return( FALSE );
        m_isRealTimeAllowed = TRUE;
    }

    if( m_pSdti_Intf->pExe->EnterRealtimeMode(m_Sdti_Hndl, 0 ) == FALSE )
        return( FALSE );

    Mode = 7;
    if( m_isRealTimeAllowed == TRUE )
    {
        // Set the realtime polite/rude mode
        if( WriteRegister( "DBGM", &Mode) == FALSE ){
            while( CheckEvents()){}
            return( FALSE );
        }
        if( WriteRegister( "PREEMPT", &Mode) == FALSE ) {
            while( CheckEvents()){}
            return( FALSE );
        }
        m_isRealTimeAllowed = FALSE;
    }
	return( TRUE );
}
/*F***************************************************************************
* NAME:  ExitRealtimeMode( BOOL Polite ) 
*
* DESCRIPTION:  Exit realtime mode.
*
*F***************************************************************************/
BOOL CoffLoader::DisableRealtimeMode()
{
    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

    if( m_pSdti_Intf->pExe->Revision < 2 )
        return( FALSE );

    if( m_pSdti_Intf->pExe->ExitRealtimeMode(m_Sdti_Hndl ) == FALSE )
        return( FALSE );

	return( TRUE );
}

/*F***************************************************************************
* NAME:  EnterRealtimeMode( BOOL Polite ) 
*
* DESCRIPTION:  Enter realtime mode.
*
*F***************************************************************************/
BOOL CoffLoader::SwitchRealtimeMode( BOOL Polite )
{
    DWORD Mode;

    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

    // Requires revision 2 of the execution code to get support for
    // realtime mdoe.
    if( m_pSdti_Intf->pExe->Revision < 2 )
        return( FALSE );

    if( Polite == TRUE ) { 
        Mode = 0;
    }else{
        Mode = 7;
    }

   // Set the realtime mode polite/rude mode
    if( WriteRegister( "DBGM", &Mode) == FALSE ) 
        return( FALSE );
    if( WriteRegister( "PREEMPT", &Mode) == FALSE ) 
        return( FALSE );

	return( TRUE );
}

/*F***************************************************************************
* NAME: ReadFromSymbol( char *pSymbol, DWORD *pVal )
*
* DESCRIPTION:  Read either 16 or 32 bit data from given symbol name.  Size 
*               is taken from the symbol type.
*
*F***************************************************************************/
BOOL CoffLoader::ReadFromSymbol( char *pSymbol, DWORD *pVal )
{
	struct SYMBOL * s;
	TMEM_DESC  Tmem;
	int        DataSizeBytes;
	TREG_16    Data[2];

    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

	s = FindSymbol(pSymbol);
	if (s == (struct SYMBOL *)NULL )
	   return( FALSE );    

	DataSizeBytes = BytesPerDataSize( s );
	if( DataSizeBytes == 0 )
		return( FALSE );

	Tmem.Taddr    = s->symaddr;
	Tmem.Space    = (s->sympage == 0) ? M_PROGRAM : M_DATA;
	Tmem.Asize    = M_SIZE16;
	Tmem.Bsize    = M_SIZE16;
	Tmem.Length   = DataSizeBytes/2;
	Tmem.pData    = Data;
	if( m_pSdti_Intf->pMem->Read( m_Sdti_Hndl, &Tmem ) == FALSE )
		return( FALSE );

    *pVal = (DWORD)Data[0] & 0x0000FFFFL;
    if( DataSizeBytes == 4 ) {
        *pVal |= ((DWORD)Data[1] & 0x0000FFFFL)<<16;
    }
	return( TRUE );
}

/*F***************************************************************************
* NAME: WriteToSymbol( char *pSymbol, DWORD *pVal )
*
* DESCRIPTION:  Write either 16 or 32 bit data to a given symbol name.  Size 
*               is taken from the symbol type.
*
*F***************************************************************************/
BOOL CoffLoader::WriteToSymbol( char *pSymbol, DWORD *pVal )
{
	struct SYMBOL * s;
	TMEM_DESC  Tmem;
	int        DataSizeBytes;
	TREG_16    Data[2];

    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

	s = FindSymbol(pSymbol);
	if (s == (struct SYMBOL *)NULL )
	   return( FALSE );    

	DataSizeBytes = BytesPerDataSize( s );
	if( DataSizeBytes == 0 )
		return( FALSE );

    Data[0] = (TREG_16)*pVal;
    Data[1] = (TREG_16)(*pVal>>16);

	Tmem.Taddr    = s->symaddr;
	Tmem.Space    = (s->sympage == 0) ? M_PROGRAM : M_DATA;
	Tmem.Asize    = M_SIZE16;
	Tmem.Bsize    = M_SIZE16;
	Tmem.Length   = DataSizeBytes/2;
	Tmem.pData    = Data;
	if( m_pSdti_Intf->pMem->Write( m_Sdti_Hndl, &Tmem ) == FALSE )
		return( FALSE );

	return( TRUE );
}

/*F***************************************************************************
* NAME: WriteMemory( MEM_TADDR Addr, MEM_SPACE Space, TREG_16 *pData, 
*                    DWORD Count  )
*
* DESCRIPTION:  Write 16 bit data to memory
*
*F***************************************************************************/
BOOL CoffLoader::WriteMemory( MEM_TADDR Addr, 
							  MEM_SPACE Space, 
							  TREG_16 * pData, 
							  DWORD     Count  )
{
    TMEM_DESC Tmem;

    // Always test for connection to prevent user calling in disconnected
    // state or with NULL handles.
    if( CheckConnection() == FALSE ) {
        return( FALSE );
    }

	Tmem.Taddr    = Addr;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产自产高清不卡| 国产老女人精品毛片久久| 精品少妇一区二区| 成人精品视频一区| 男男视频亚洲欧美| 一区二区三区**美女毛片| 久久久一区二区三区| 欧美日韩一级二级三级| 国产麻豆午夜三级精品| 日韩综合在线视频| 国产精品久久久久一区| 91精品国产色综合久久不卡蜜臀| 99国产精品久久久久久久久久久| 久久久91精品国产一区二区精品| 久久国产乱子精品免费女| 日韩欧美久久久| 精品视频一区三区九区| 一本色道久久综合狠狠躁的推荐 | 美腿丝袜在线亚洲一区| 亚洲一区二区精品视频| 中文字幕亚洲不卡| 国产精品无人区| 国产欧美一区二区精品婷婷| 久久久久青草大香线综合精品| 日韩欧美国产综合一区 | www欧美成人18+| 精品福利在线导航| 久久综合久久久久88| 国产亚洲一区字幕| 国产精品美女久久久久久久久| 国产日韩欧美精品电影三级在线| 国产精品无圣光一区二区| 国产精品久线在线观看| 一区二区三区在线视频免费观看| 亚洲天堂免费看| 午夜久久久影院| 九九九久久久精品| 成人伦理片在线| 欧美中文字幕久久| 日韩欧美亚洲国产另类 | 国产一区二区h| 成人激情文学综合网| 欧洲一区二区av| 日韩欧美www| 亚洲天堂免费看| 另类中文字幕网| 色婷婷一区二区| 久久亚洲一区二区三区明星换脸 | 视频一区视频二区中文字幕| 韩国三级中文字幕hd久久精品| 国产91精品在线观看| 88在线观看91蜜桃国自产| 久久精品欧美日韩精品| 五月天欧美精品| 成人精品一区二区三区中文字幕| 在线电影欧美成精品| 中文字幕一区二区日韩精品绯色| 日韩国产欧美在线视频| 色婷婷一区二区三区四区| 久久欧美中文字幕| 午夜精品一区二区三区三上悠亚| 懂色av一区二区三区蜜臀| 欧美一级高清片| 午夜在线成人av| 欧亚洲嫩模精品一区三区| 国产精品久久久久久久久免费桃花| 蜜桃av噜噜一区| 欧美哺乳videos| 日本成人在线视频网站| 欧美日韩久久久| 婷婷中文字幕一区三区| 在线亚洲一区观看| 亚洲情趣在线观看| 亚洲成a人v欧美综合天堂| 日韩高清不卡在线| 欧美精品在欧美一区二区少妇| 亚洲人123区| 欧美亚洲一区二区三区四区| 亚洲最大成人综合| 欧美日本在线视频| 久久国产人妖系列| 国产欧美日韩不卡| 91免费在线播放| 三级影片在线观看欧美日韩一区二区 | 色视频欧美一区二区三区| 亚洲免费av高清| 欧美区一区二区三区| 麻豆久久久久久| 国产日韩精品久久久| 色婷婷综合在线| 美女一区二区三区| 国产精品成人一区二区三区夜夜夜| 99麻豆久久久国产精品免费优播| 亚洲国产欧美一区二区三区丁香婷| 欧美吻胸吃奶大尺度电影| 韩国在线一区二区| 一区二区国产盗摄色噜噜| 欧美精品久久99| 不卡一区中文字幕| 久久国产生活片100| 亚洲天天做日日做天天谢日日欢| 欧美日韩国产首页| 成人中文字幕合集| 日韩成人伦理电影在线观看| 中文字幕免费不卡| 日韩欧美二区三区| 欧美日韩激情一区二区三区| 高清成人在线观看| 国产中文一区二区三区| 一区二区三区美女视频| 日本一二三四高清不卡| 日韩你懂的在线观看| 欧美在线视频全部完| 99久久免费精品高清特色大片| 色哟哟一区二区三区| 精品午夜久久福利影院| 亚洲国产美女搞黄色| 国产成人综合在线| 国产一区二三区好的| 日本亚洲电影天堂| 日韩国产欧美在线播放| 丝袜美腿一区二区三区| 亚洲国产乱码最新视频| 亚洲黄色av一区| 成人欧美一区二区三区小说| 欧美国产激情二区三区| 国产精品国产三级国产aⅴ原创| 久久亚洲免费视频| 国产日韩欧美精品电影三级在线 | 18欧美亚洲精品| 一区二区三区中文在线观看| 日韩毛片高清在线播放| 一个色妞综合视频在线观看| 亚洲一区二区成人在线观看| 亚洲国产精品精华液网站| 日本美女一区二区三区视频| 久草精品在线观看| 波多野结衣中文字幕一区| 色噜噜狠狠成人中文综合| 欧美日韩国产美女| 久久综合中文字幕| 亚洲人一二三区| 久久精品噜噜噜成人88aⅴ| 国产精品原创巨作av| av一区二区不卡| 精品一区二区在线播放| 日本免费新一区视频| 国产盗摄一区二区| 欧美在线视频日韩| 久久蜜桃av一区二区天堂| 亚洲欧美日本韩国| 久久精品国产亚洲5555| 91麻豆福利精品推荐| 欧美r级在线观看| 亚洲免费高清视频在线| 国产精品一区二区视频| 欧美久久久一区| 国产精品国产三级国产aⅴ中文| 日日夜夜一区二区| 欧美伊人久久久久久久久影院| 精品国产一区二区三区久久影院| 午夜一区二区三区在线观看| 成人99免费视频| 国产午夜亚洲精品午夜鲁丝片| 亚洲柠檬福利资源导航| av综合在线播放| 久久精品夜夜夜夜久久| 精东粉嫩av免费一区二区三区| 欧美色综合网站| 亚洲国产日韩在线一区模特| www.视频一区| 国产精品二三区| 97国产精品videossex| 国产欧美日韩亚州综合 | 日本亚洲三级在线| 欧美亚洲高清一区二区三区不卡| 亚洲视频一二区| 色欧美片视频在线观看| 亚洲精品视频在线观看网站| 91麻豆国产精品久久| 亚洲人妖av一区二区| 91久久精品一区二区三| 亚洲日本成人在线观看| 欧美视频一区在线| 亚洲午夜免费电影| 日韩一级高清毛片| 精品影院一区二区久久久| 国产亚洲一二三区| 成人午夜视频福利| 亚洲综合丁香婷婷六月香| 欧美日韩国产区一| 国产精品一区久久久久| 久久看人人爽人人| 色国产综合视频| 激情成人午夜视频| 日韩毛片一二三区| 欧美一区二区三区免费| www.成人在线| 欧美a级理论片| 亚洲与欧洲av电影|