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

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

?? ethernet.c

?? 網(wǎng)口收發(fā)程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
   /* Issue Init RX & TX Parameters Command for SCC1. This command to */
   /* the CP lets it know to reinitialize SCC1 with the new parameter */
   /* RAM values. When the ENT/ENR bits are set below Hunt Mode will  */
   /* begin automatically.                                            */
   /*-----------------------------------------------------------------*/

   while ((IMM->cpm_cpcr & CPCR_FLG) != READY_TO_RX_CMD); 

	IMM->cpm_cpcr = CPCR_INIT_TX_RX_PARAMS |
		   SCC1_PAGE_SUBBLOCK | 
		   CPCR_FLG;              /* ISSUE COMMAND */

   while ((IMM->cpm_cpcr & CPCR_FLG) != READY_TO_RX_CMD); 

   /*-------------------------------------------------------------*/
   /* Set the ENT/ENR bits in the GSMR -- Enable Transmit/Receive */
   /*-------------------------------------------------------------*/

   IMM->scc_regs[SCC1].gsmr_l |= GSMR_L1_ENT | GSMR_L1_ENR;

} /* end SCC1EtherInit() */


/*--------------------------------------------------------------------------
*
* FUNCTION NAME: InterruptInit
*
*
* DESCRIPTION:
*
*     Copy Interrupt Handler code from its current address to the 
*     specified PowerPC Interrupt Vector.
*
* EXTERNAL EFFECTS:
*
* PARAMETERS:  
*
*     interrupt_vector -- address to which interrupt code should be copied
*     interrupt_code   -- current address of interrupt code
*
* RETURNS: NONE
*
*--------------------------------------------------------------------------*/

void InterruptInit(UWORD *interrupt_vector,
		   UWORD interrupt_code[])

{

   UHWORD index;
   UWORD *instruction;
   UWORD *next_vector;
   
   /*-------------------*/
   /* next vector entry */
   /*-------------------*/
   
   next_vector = (interrupt_vector + VECTOR_BLOCK_LEN); 

   for(instruction = interrupt_vector, index = 0; instruction < next_vector;
       instruction++, index++)
      
      *instruction = interrupt_code[index];

} /* end InterruptInit */


/*--------------------------------------------------------------------------
*
* FUNCTION NAME: BDRxError
*
* DESCRIPTION:
*
*     Return TRUE if Buffer Descriptor Status bd_cstatus indicates Receive 
*     Error; Return FALSE otherwise note Receive Errors are as follows:
*
*     0x80: DPLL Error (DE)
*     0x20: Length Violation (LG)
*     0x10: Non-Octet Aligned (NO)
*     0x8: Rx Abort Sequence (AB)
*     0x4: Rx CRC Error (CR)
*     0x2: Overrun (OV)
*     0x1: Carrier Detect Lost (CD)
*
* EXTERNAL EFFECTS: None
*
* PARAMETERS:  
*
*     bd_cstatus
*
* RETURNS: TRUE if there was an error and FALSE if there wasn't
*
*-------------------------------------------------------------------------*/

UHWORD BDRxError(UHWORD bd_cstatus)

{
   
   if (bd_cstatus & BD_RX_ERROR)
      
      return TRUE;

   else

      return FALSE;

} /* end BDRxError */

/*--------------------------------------------------------------------------
*
* FUNCTION NAME: LastBD
*
* DESCRIPTION:   Return TRUE if Buffer Descriptor with status and 
*                control register bd_cstatus is last in frame; Return 
*                FALSE otherwise.
*
* EXTERNAL EFFECTS: None
*
* PARAMETERS:  
*
*     bd_cstatus -
*
* RETURNS:
*
*-------------------------------------------------------------------------*/

UHWORD LastBD(UHWORD bd_cstatus)

{
   
   if (bd_cstatus & 0x0800)
      
      return TRUE;

   else
      
      return FALSE;

} /* end LastBD */

/*--------------------------------------------------------------------------
*
* FUNCTION NAME: BDEmpty
*
* DESCRIPTION:
*
*     Return TRUE if Buffer Descriptor Status bd_cstatus is empty. Return 
*     FALSE otherwise.
*
* EXTERNAL EFFECTS: None
*
* PARAMETERS:  
*
*     bd_cstatus 
*
* RETURNS: TRUE if empty and FALSE if it isn't
*
*-------------------------------------------------------------------------*/

UHWORD BDEmpty(UHWORD bd_cstatus)

{
   if (bd_cstatus & 0x8000)
      
      return TRUE;

   else
      
      return FALSE;

} /* end BDEmpty */


/*--------------------------------------------------------------------------
*
* FUNCTION NAME: ExtIntHandler
*
* DESCRIPTION:
*
*     Process External Interrupt (assumes only interrupts from SCC1)
*
*
* EXTERNAL EFFECTS:  interrupt related registers
*
* PARAMETERS:
*
*     vector - interrupt vector (address)
*
* RETURNS: NONE
*
*-------------------------------------------------------------------------*/

void ExtIntHandler(UWORD vector)

{

   UWORD    sivec_ic;
   UWORD    scce;
   UHWORD  ethernet_bd_status;

   /*------------------------------------*/
   /* Shift the byte wide interrupt code */
   /* down to the least significant byte */
   /*------------------------------------*/

   sivec_ic = IMM->ic_sivec >> 26;   /* sivec interrupt code */


   /*-----------------------------*/
   /* Grab the SCC event register */
   /*-----------------------------*/

   scce = IMM->scc_regs[SCC1].scce; /* Save off scce */


   /*------------------------------------*/
   /* Match input vector against Exteral */
   /* Interrupt Vector -- 0x500 on PPC   */
   /*------------------------------------*/

   if (vector != EXT_INT_VECTOR) 

   {
   
      while (1) 
      
		FlashLed();   /* spin here if error is flagged */
	 
   };
   
   /*-----------------------------------------------*/
   /* Test CPM Interrupt Vector against SCC1 Vector */
   /* Flash red GP1 LED is not vector for SCC1      */
   /*-----------------------------------------------*/

   if (sivec_ic !=  SCC1_VECTOR) 
   
    {
       while (1)

	 	FlashLed();

    };
    
    
   /*-----------------------------*/
   /* Process SIU Interrupt Event */
   /*-----------------------------*/
    
   if (IMM->ic_sipnr_l != 0x00800000)
   
   {
      while (1)

		FlashLed();
	
   }


   /*-------------------------------------------*/
   /* Clear SCC1 Event Register (by writing 1s) */
   /*-------------------------------------------*/

   IMM->scc_regs[SCC1].scce = 0xFFFF;

   /*-------------------------------------------------------------*/
   /* Process SCC Ethernet Event if the event flag for RXF is set */
   /*-------------------------------------------------------------*/

   if (scce & ENET_SCCM_RXF) 
   
   {
      
	/*-------------------------------------------------------------------*/
	/* Traverse from last processed Rx buffer descriptor and process all */
	/* all subsequent buffers that have the empty bit cleared.           */
	/*-------------------------------------------------------------------*/
     
	for (;(RxProcIndex < NUM_RXBDS)&&
	      (!BDEmpty(RxTxBD->RxBD[RxProcIndex].bd_cstatus));
	      RxProcIndex++)
       
	     
	{
	     /*--------------------------------------*/
	     /* Copy Status of Rx Buffer Descriptors */
	     /*--------------------------------------*/

	     ethernet_bd_status = RxTxBD->RxBD[RxProcIndex].bd_cstatus;

	    /*-------------------------------------*/
	    /* Compare the receive buffer with its */                  
	    /* corresponding transmit buffer.      */
	    /* (exclude the 4 CRC bytes for this)  */                                               
	    /*-------------------------------------*/

	    if (memcmp(&RxBufferPool[RxProcIndex],
		       &TxBufferPool[RxProcIndex],
		       (TX_BUFFER_SIZE-4)))
	    {
	       RxGood=FALSE; /* they didn't compare */
	    }

	    else

	       RxGood=TRUE;  /* they did compare */

	    /*-------------------------------------*/
	    /* checking all status bits for errors */
	    /*-------------------------------------*/

	    if (BDRxError(ethernet_bd_status)) 
	    
		RxGood = FALSE;
	     
	
       }                                

   }    

   else 
	
	
      RxGood = FALSE; /* Expected to see RXF event in SCCE */

   /*-------------------------------------*/
   /* Here's our error loop. Spin here    */
   /* indefinitely if there was an error. */
   /*-------------------------------------*/

   if (RxGood == FALSE) 
   
   {
      while (1) 
      
		Led(GREEN);  /* spin here if error is flagged */
   } 


   /*--------------------------------------------------------------------*/
   /* If we've processed all 8 frames, enter into the next while loop in */
   /* main() to light General Purpose Signalling LED #0 green. We also   */
   /* need to clear the event register again which will also clear the   */
   /* SIU Interrupt Pending Register High (SIPNR_H) so that another      */
   /* interrupt doesn't occur when we just finished processing the last  */
   /* one.                                                               */
   /*--------------------------------------------------------------------*/

   if (RxProcIndex == 8)  

   {
      NotDone=FALSE;
      IMM->scc_regs[SCC1].scce = 0xFFFF;
   }

 
} /* end ExtIntHandler */



/*--------------------------------------------------------------------------
*
* FUNCTION NAME: Led
*
* DESCRIPTION:
*
*     Turn On/Off either the Green or Red LED on ADS board.
*
* EXTERNAL EFFECTS:
*
* PARAMETERS: 
*     
*     setting - 0 turns off LED; otherwise turn on LED.
*
* RETURNS: NONE
*
*--------------------------------------------------------------------------*/

void Led(UHWORD setting)
{
   switch(setting)
     {
        /* Turn red and green LEDs off */
        case OFF:
             CSR->bcsr0 |= (GP_LED1 | GP_LED2); 
             break;

        /* Turn green LED on */
        case GREEN:
             CSR->bcsr0 &= ~GP_LED1;
             break;

        /* Turn red LED on */
        case RED:
             CSR->bcsr0 &= ~GP_LED2;
             break;

        /* Turn red LED on to indicate an error */
        default:
             CSR->bcsr0 &= ~GP_LED2;        
     }

} /* end Led */

/*--------------------------------------------------------------------------
*
* FUNCTION NAME:  FlashLed
*
* DESCRIPTION:  This function flashes the Red LED on the ADS Board.
*
* EXTERNAL EFFECTS: None
*
* PARAMETERS: none
*
* RETURNS: None
*
*--------------------------------------------------------------------------*/

void FlashLed()

{

UBYTE  ii;
UWORD jj;

   for (ii = 0; ii<20; ii++)
      
   {
      Led(ii%2);  /* Turn on every other time through the loop */
      
      for (jj=0; jj < 100000; jj++);   /* Wait */

   }
   
   Led(OFF);  /* LED off */

} /* end FlashLed */





?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲无码一区二区三区| 国产最新精品精品你懂的| 石原莉奈在线亚洲三区| 国产乱码精品一区二区三区忘忧草 | 欧美一级高清片在线观看| 中文字幕欧美日韩一区| 毛片av中文字幕一区二区| 91在线视频播放| 国产欧美一区二区精品性色超碰| 亚洲国产精品久久人人爱| 国产**成人网毛片九色| 日韩精品一区二区三区三区免费 | 国产亚洲一二三区| 91美女精品福利| 久久丝袜美腿综合| 亚洲高清视频在线| 91国偷自产一区二区开放时间| 欧美极品少妇xxxxⅹ高跟鞋 | 91碰在线视频| 欧美极品xxx| 国产精品中文字幕日韩精品| 欧美一区欧美二区| 性欧美大战久久久久久久久| 在线观看av一区二区| 亚洲欧美乱综合| 91小视频免费观看| 国产精品久久久久久福利一牛影视| 国产成人一区二区精品非洲| 精品动漫一区二区三区在线观看| 久久99久久精品| 日韩精品一区二| 激情欧美日韩一区二区| 欧美大片免费久久精品三p| 日日夜夜精品免费视频| 欧美精品乱码久久久久久| 日韩二区三区四区| 日韩女优视频免费观看| 蜜桃一区二区三区在线观看| 日韩一区二区视频| 精品一区二区久久| 国产日韩欧美精品综合| 99麻豆久久久国产精品免费 | 欧美日韩一卡二卡| 日韩av电影免费观看高清完整版| 欧美一区二区三区色| 久草这里只有精品视频| 久久久久久电影| 97精品国产露脸对白| 亚洲人成7777| 欧美日韩aaa| 久久99精品国产.久久久久久| 久久综合色一综合色88| 成熟亚洲日本毛茸茸凸凹| 一区二区三区免费| 日韩一区二区三区免费看 | 日日夜夜免费精品视频| 亚洲精品一区二区三区蜜桃下载| 国产精品资源网| 一区二区三区免费| 日韩欧美的一区| a亚洲天堂av| 五月婷婷综合激情| 国产女主播一区| 欧美日韩二区三区| 国产69精品一区二区亚洲孕妇| 亚洲三级在线观看| 日韩一区二区高清| 国产成人精品影视| 午夜欧美大尺度福利影院在线看| 26uuu国产在线精品一区二区| 欧美岛国在线观看| 97精品国产露脸对白| 日本不卡免费在线视频| 国产精品国产馆在线真实露脸| 91国模大尺度私拍在线视频| 国内精品国产三级国产a久久| 综合婷婷亚洲小说| 久久亚洲一区二区三区明星换脸| 91成人看片片| 成人中文字幕合集| 蜜桃在线一区二区三区| 夜夜嗨av一区二区三区中文字幕 | 亚洲视频电影在线| 久久综合av免费| 欧美日韩国产精品成人| 成人av在线播放网站| 久久丁香综合五月国产三级网站| 亚洲乱码中文字幕综合| 久久亚洲免费视频| 91精品国产欧美日韩| 91色在线porny| 风间由美中文字幕在线看视频国产欧美| 亚洲成年人网站在线观看| 国产精品麻豆一区二区| 久久综合九色综合久久久精品综合| 在线观看亚洲a| 91一区二区三区在线播放| 国产一区二区精品久久| 免费在线成人网| 亚洲国产精品嫩草影院| 亚洲免费在线看| 中文字幕久久午夜不卡| 精品久久久久久综合日本欧美| 欧美色老头old∨ideo| 91香蕉视频mp4| 国产999精品久久| 国产精品小仙女| 国产精品影视在线| 国产伦精品一区二区三区免费迷| 蜜桃视频在线观看一区| 日日夜夜免费精品| 日本vs亚洲vs韩国一区三区| 日韩成人一区二区三区在线观看| 五月婷婷欧美视频| 天天色 色综合| 奇米影视一区二区三区| 日本视频中文字幕一区二区三区| 日日噜噜夜夜狠狠视频欧美人| 亚洲国产日韩av| 亚洲高清三级视频| 日本在线播放一区二区三区| 日本不卡123| 国内精品视频一区二区三区八戒| 国产精品资源在线看| 国产精品亚洲成人| av亚洲精华国产精华| 色婷婷av一区二区三区软件| 欧洲另类一二三四区| 欧美肥大bbwbbw高潮| 日韩一区二区三区免费观看| www久久精品| 国产精品久久二区二区| 亚洲欧美电影一区二区| 午夜精品福利在线| 久国产精品韩国三级视频| 国产精品996| 日本韩国欧美三级| 日韩一区二区不卡| 中文字幕不卡一区| 一区二区三国产精华液| 日本不卡视频一二三区| 国产精品123| 国产亚洲一本大道中文在线| 中文无字幕一区二区三区| 亚洲三级免费电影| 日韩国产欧美在线视频| 国产xxx精品视频大全| 91福利国产成人精品照片| 91麻豆精品国产91久久久久久| 久久久久99精品国产片| 亚洲精品精品亚洲| 蜜桃av一区二区| 97精品超碰一区二区三区| 91精品国产欧美一区二区| 国产蜜臀97一区二区三区| 亚洲第一电影网| 国产一区二区在线观看视频| 在线免费观看日本一区| 久久人人97超碰com| 亚洲一区二区三区三| 国产一区二区调教| 5月丁香婷婷综合| 亚洲同性同志一二三专区| 看片网站欧美日韩| 在线观看一区日韩| 国产精品网站导航| 另类小说图片综合网| 欧美做爰猛烈大尺度电影无法无天| 精品日韩一区二区| 亚瑟在线精品视频| 91色乱码一区二区三区| 久久久精品免费观看| 免费观看久久久4p| 精品视频全国免费看| 国产精品久久久久天堂| 久久se精品一区二区| 欧美性视频一区二区三区| 中文字幕精品综合| 国产精品一区二区久久精品爱涩 | 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产成人午夜精品影院观看视频 | 欧美国产在线观看| 久久99精品国产.久久久久| 欧美日韩大陆一区二区| 一区二区三区毛片| 日本福利一区二区| 亚洲免费看黄网站| 成人丝袜视频网| 久久精品一区二区三区不卡 | 国产午夜三级一区二区三| 蜜臀a∨国产成人精品| 7777精品伊人久久久大香线蕉的| 亚洲激情自拍偷拍| 色乱码一区二区三区88| 国产精品国产自产拍在线| caoporm超碰国产精品| 中文字幕在线不卡一区| av电影天堂一区二区在线观看| 国产精品成人网| 9i在线看片成人免费|