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

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

?? lan91c96.c

?? Intel XScale PXA255 引導Linux的Redboot 版bootloader源代碼!
?? C
?? 第 1 頁 / 共 5 頁
字號:
    // Get the transmit status.    WriteWord(LAN91C96_PTR_READ, &ioRegsP[LAN91C96_POINTER]);    resultCode = ReadWord(&ioRegsP[LAN91C96_DATA_HIGH]);    // Select Bank 0.    WriteByte(BANK0, &ioRegsP[LAN91C96_BANK_SELECT]);    // Clear the statistics register.    ReadWord(&ioRegsP[LAN91C96_COUNTER]);    // Re-enable TXENA in the Transmit Control Register.    WriteWord(LAN91C96_TCR_TXENA, &ioRegsP[LAN91C96_TCR]);    // Select Bank 2    WriteByte(BANK2, &ioRegsP[LAN91C96_BANK_SELECT]);    // Release the memory in the buffer for the frame that failed.    WriteWord(LAN91C96_MMUCR_RELEASE_TX, &ioRegsP[LAN91C96_MMU]);    // Prepare for timeout by getting the initial time interval.    hal_clock_read(&start) ;//ostCtxP->getTimer_fnp(ostCtxP);    // Wait for the request to complete by monitoring the NO BUSY bit in    // the MMU Command Register.    while (!ReadWord(&ioRegsP[LAN91C96_MMU]) & LAN91C96_MMUCR_NO_BUSY)    {        // Get the current time interval.				hal_clock_read(&currTimerValue) ;        if(hal_elapsed_ticks((unsigned long *)&start) > timeout)        {          //printf("timeout during DeallocateTxPacket\n") ;					// Report timeout error.					return (-1);        }    }    // Get the Interrupt Status Register.    intStatus = ReadByte(&ioRegsP[LAN91C96_INT_STATS]);    // Enable transmit interrupt if set.    if (intStatus & LAN91C96_IST_TX_INT)    {        // Acknowledge the Transmit interrupt.        WriteByte(LAN91C96_ACK_TX_INT, &ioRegsP[LAN91C96_INT_ACK]);    }    return (0);}/********************************************************************************** FUNCTION:*    LAN91C96LoopBack** DESCRIPTION:*    Enable/Disable internal loopback.** INPUT PARAMETERS:*    LAN91C96_ContextT *ctxP - Pointer to the LAN91C96 Device Context Structure*    INT flag = 0 = disable loopback, 1 = enable loopback.** RETURNS:*    0 - Success*    non-zero - Error** GLOBAL EFFECTS:*    LAN91C96 left in desired state.** ASSUMPTIONS:*    None.** CALLS:*    WriteByte - To write a byte to either the attribute or I/O space.*    WriteWord - To write a word to either the attribute or I/O space.*    ReadWord - Read a word from either the attribute or I/O space.** CALLED BY:*    Test code.** PROTOTYPE:*    INT LAN91C96LoopBack(LAN91C96_ContextT *ctxP, INT flag);*********************************************************************************/INT LAN91C96LoopBack(LAN91C96_ContextT *ctxP, INT flag){    PVUINT32 ioRegsP = ctxP->LAN91C96IoP;     // Get pointer to I/O space    UINT16 TCR;    // Select Bank 0    WriteByte(BANK0, &ioRegsP[LAN91C96_BANK_SELECT]);    // Get the Transmit Control Register.    TCR = ReadWord(&ioRegsP[LAN91C96_TCR]);    // Non-zero flag indicate internal loopback desired.    if (flag)    {        // Set internal loopback.        TCR |= (LAN91C96_TCR_LOOP | LAN91C96_TCR_FDUPLX);    }    else    {        // Clear internal loopback.        TCR &= ~(LAN91C96_TCR_LOOP | LAN91C96_TCR_FDUPLX);        // Force a reset when coming out of internal loopback.        ctxP->setupFlag = FALSE;    }    // Update the Transmit Control Register.    WriteWord(TCR, &ioRegsP[LAN91C96_TCR]);    return (0);}/********************************************************************************** FUNCTION:*    LAN91C96DumpFrame** DESCRIPTION:*    Display the Ethernet frame.** INPUT PARAMETERS:*    LAN91C96_ContextT *ctxP - Pointer to the LAN91C96 Device Context Structure*    UINT PDUFlag = 0 - display header only, 1 - display header and PDU*    PUCHAR frame - Pointer to the Ethernet frame.*    UINT length - Number of bytes in frame.** RETURNS:*    None.** GLOBAL EFFECTS:*    None.** ASSUMPTIONS:*    None.** CALLS:*    DM_Printf** CALLED BY:*    Test code, LAN91C96TransmitPacket, LAN91C96ReceivePacket** PROTOTYPE:*    VOID LAN91C96DumpFrame(LAN91C96_ContextT *ctxP, INT PDUFlag,*                           PUCHAR frame, UINT16 length);*********************************************************************************/VOID LAN91C96DumpFrame(LAN91C96_ContextT *ctxP, INT PDUFlag,                       PUCHAR frame, UINT16 length){    UINT x;    if (PDUFlag)    {        printf("Frame Buffer Address: 0x%x", *frame);    }    /*DM_Printf("To: %02x:%02x:%02x:%02x:%02x:%02x",              frame[0], frame[1], frame[2],              frame[3], frame[4], frame[5]);    DM_Printf("From: %02x:%02x:%02x:%02x:%02x:%02x",              frame[6], frame[7], frame[8],              frame[9], frame[10], frame[11]);    DM_Printf("Type: 0x%x, Length: %u",              ntohs(*((PUINT16)(frame + 12))), length);*/    if (PDUFlag)    {        for (x = 14; x < length; x += 8)        {            /*DM_Printf("%02x %02x %02x %02x %02x %02x %02x %02x",                      frame[x],                      frame[x + 1],                      frame[x + 2],                      frame[x + 3],                      frame[x + 4],                      frame[x + 5],                      frame[x + 6],                      frame[x + 7]);*/        }    }}/********************************************************************************** FUNCTION:*    LAN91C96DumpRegisters** DESCRIPTION:*    This routine display internal information about the LAN91C96.** INPUT PARAMETERS:*    LAN91C96_ContextT *ctxP - Pointer to the LAN91C96 Device Context Structure** RETURNS:*    None.** GLOBAL EFFECTS:*    None.** ASSUMPTIONS:*    None.** CALLS:*    ReadWord - Read a word from either the attribute or I/O space.*    WriteWord - To write a word to either the attribute or I/O space.*    DM_Printf - Display text string.** CALLED BY:*    Application or test code.** PROTOTYPE:*    VOID LAN91C96DumpRegisters(LAN91C96_ContextT *ctxP);*********************************************************************************/VOID LAN91C96DumpRegisters(LAN91C96_ContextT *ctxP){    PVUINT32 ioRegsP = ctxP->LAN91C96IoP;     // Get pointer to I/O space    UINT16 bankSelect, bank0, bank1, bank2, bank3, bank4;    int x;    /*DM_Printf("LAN91C96 Bank Registers:");    DM_Printf("Offset Bank0 Bank1 Bank2 Bank3 Bank4");*/    // Read current bank select register.    bankSelect = ReadWord(&ioRegsP[LAN91C96_BANK_SELECT]);    for (x = 0; x < 16; x += 2)    {        // Select bank 0 register.        WriteWord(0, &ioRegsP[LAN91C96_BANK_SELECT]);        // Read register contains.        bank0 = ReadWord(&ioRegsP[x]);        // Select bank 1 register.        WriteWord(1, &ioRegsP[LAN91C96_BANK_SELECT]);        // Read register contains.        bank1 = ReadWord(&ioRegsP[x]);        // Select bank 2 register.        WriteWord(2, &ioRegsP[LAN91C96_BANK_SELECT]);        // Read register contains.        bank2 = ReadWord(&ioRegsP[x]);        // Select bank 3 register.        WriteWord(3, &ioRegsP[LAN91C96_BANK_SELECT]);        // Read register contains.        bank3 = ReadWord(&ioRegsP[x]);        // Select bank 4 register.        WriteWord(4, &ioRegsP[LAN91C96_BANK_SELECT]);        // Read register contains.        bank4 = ReadWord(&ioRegsP[x]);        /*DM_Printf("%02X     %04X  %04X  %04X  %04X  %04X",                  x, bank0, bank1, bank2, bank3, bank4);*/    }    // Restore bank select register.    WriteWord(bankSelect, &ioRegsP[LAN91C96_BANK_SELECT]);    /*DM_Printf("LAN91C96 Registers Complete\n");*/}/********************************************************************************** FUNCTION:*    LAN91C96GetInfo** DESCRIPTION:*    This routines returns MAC address.** INPUT PARAMETERS:*    LAN91C96_ContextT *ctxP - Pointer to the LAN91C96 Device Context Structure*    DM_NetworkInfo_T *info - Pointer to info structure.** RETURNS:*    The MAC address in DM_NetworkInfo_T.** GLOBAL EFFECTS:*    None.** ASSUMPTIONS:*    None.** CALLS:*    memcpy - copy one buffer to another.** CALLED BY:*    Application or test code.** PROTOTYPE:*   VOID LAN91C96GetInfo(LAN91C96_ContextT *ctxP, DM_NetworkInfo_T *info);*********************************************************************************/VOID LAN91C96GetInfo(LAN91C96_ContextT *ctxP, DM_NetworkInfo_T *info){    // Return the MAC address.    memcpy(info->mac, ctxP->MACAddress, 6);}/********************************************************************************** FUNCTION:*    LAN91C96TransmitPacket** DESCRIPTION:*    This routine transmits the specified packet.** INPUT PARAMETERS:*    LAN91C96_ContextT *ctxP - Pointer to the LAN91C96 Device Context Structure*    PUINT16 buffer - Pointer to the buffer to transmit.*    INT length - Size of the transmit buffer.** RETURNS:*    0 - Success*    non-zero - Error** GLOBAL EFFECTS:*    None.** ASSUMPTIONS:*    None.** CALLS:*    AllocateTxPacket - Get a transmit packet from the LAN91C96.*    DeallocateTxPacket - Return the transmit packet back to the LAN91C96.*    WriteByte - To write a byte to either the attribute or I/O space.*    WriteWord - To write a word to either the attribute or I/O space.*    ReadByte - Read a byte from either the attribute or I/O space.*    ReadWord - Read a word from either the attribute or I/O space.*    GetTimeStamp - Get a tick count.*    GetDeltaTimeStamp - Get the time delta.*    DM_Printf - Display text string.*    DM_ErrPrintf - Display error string.*    LAN91C96DumpFrame - Display packet.*    DisplayTxStatus - Display the transmit status register.*    LOGERROR - Logs errors encountered.** CALLED BY:*    Application or test code.** PROTOTYPE:*    INT LAN91C96TransmitPacket(LAN91C96_ContextT *ctxP,*                               PUINT16 buffer, INT length);*********************************************************************************/INT LAN91C96TransmitPacket(LAN91C96_ContextT *ctxP, PUINT16 buffer, INT length){    PVUINT32 ioRegsP = ctxP->LAN91C96IoP;     // Get pointer to I/O space    UINT start, currTimerValue ;    UINT timeout = (UINT)((LAN91C96_TO_TRANSMIT * 3686400) >> 20);    UCHAR intStatus;    UINT16 bufferSize, resultCode, x;    UINT16 frameHandle = 0;     PUINT16 dataP = buffer;    // Get a time reference.    GetTimeStamp(ctxP);    // Clear the error log.    ctxP->loggedError = 0;    // Check dump flag.    if (ctxP->dumpFlag)    {        // Display transmit frame.        //printf("Transmit Packet:");        LAN91C96DumpFrame(ctxP, 0, (PUCHAR)buffer, length);    }    // Allocate a transmit frame from the LAN91C96.    if (AllocateTxPacket(ctxP, length, &frameHandle))    {      //printf("AllocateTxPacket in LAN91C96TransmitPacket failed\n") ;      return (ctxP->loggedError);    }    // Calculate the memory needed. This includes the status word, byte count    // data and control rounded up.    bufferSize = sizeof(UINT16) + sizeof(UINT16) + length + 1;    if (bufferSize & 1)    {        // Round the size up.        bufferSize++;    }    // Write the allocated packet number into the Packet Number Register.    WriteWord(frameHandle, &ioRegsP[LAN91C96_PNR]);    // Set the Auto Increment bit in the Pointer Register to increment the    // internal address on access to the data register.    WriteWord(LAN91C96_PTR_AUTO_INCR, &ioRegsP[LAN91C96_POINTER]);    // Write the status word. See page 36 of the LAN91C96 specification.    WriteWord(0, &ioRegsP[LAN91C96_DATA_HIGH]);    // Write the byte count.    WriteWord(bufferSize, &ioRegsP[LAN91C96_DATA_HIGH]);    // Copy the data to the LAN91C96.    for (x = 0; x < (length >> 1); x++)    {        // Write the data.        WriteWord(*dataP++, &ioRegsP[LAN91C96_DATA_HIGH]);    }    // Now check for an odd number of bytes.    if (length & 1)    {        // Write the control byte and last data byte.        WriteWord((((LAN91C96_CONTROL_CRC | 										LAN91C96_CONTROL_ODD) << 8) |													(*(dataP) & 0xFF)), &ioRegsP[LAN91C96_DATA_HIGH]);    }    else    {        // Write just the control byte.        WriteWord((LAN91C96_CONTROL_CRC << 8), &ioRegsP[LAN91C96_DATA_HIGH]);    }    // Enqueue the frame number into the TX FIFO.    WriteWord(LAN91C96_MMUCR_ENQUEUE, &ioRegsP[LAN91C96_MMU]);    // Prepare for timeout by getting the initial time interval.    hal_clock_read(&start) ;    // Check the Interrupt Status Register for Transmit Empty.    while (!((intStatus = ReadByte(&ioRegsP[LAN91C96_INT_STATS])) &																							LAN91C96_IST_TX_EMPTY_INT))    {    				hal_clock_read(&currTimerValue) ;        if (hal_elapsed_ticks((unsigned long *)&start) > timeout)        {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区小说| 日韩电影一区二区三区四区| 亚洲影视资源网| 国产成人av一区二区三区在线| 99久久精品一区| 久久午夜羞羞影院免费观看| 亚洲国产裸拍裸体视频在线观看乱了 | 2021国产精品久久精品| 亚洲v中文字幕| 色av成人天堂桃色av| 国产日本一区二区| 狠狠色丁香婷综合久久| 在线电影一区二区三区| 亚洲精品乱码久久久久久 | 久久久亚洲欧洲日产国码αv| 亚洲综合色视频| 日本高清不卡在线观看| 中文在线资源观看网站视频免费不卡 | 北岛玲一区二区三区四区| 精品91自产拍在线观看一区| 日本欧美久久久久免费播放网| 欧美影院午夜播放| 亚洲黄色尤物视频| 99re热这里只有精品视频| 国产嫩草影院久久久久| 国产iv一区二区三区| 国产亚洲精品超碰| 处破女av一区二区| 中文字幕色av一区二区三区| 成人永久aaa| 最新日韩在线视频| 91香蕉视频mp4| 一区二区三区欧美在线观看| 色悠悠亚洲一区二区| 亚洲免费av高清| 欧美性受xxxx黑人xyx性爽| 亚洲亚洲人成综合网络| 欧美理论片在线| 美女性感视频久久| 久久婷婷色综合| 成人黄色777网| 亚洲精品精品亚洲| 欧美午夜寂寞影院| 另类小说色综合网站| 国产亚洲短视频| www.欧美.com| 亚洲成av人片一区二区三区| 91精品国产91久久久久久一区二区| 久久不见久久见中文字幕免费| 国产亚洲精品福利| 99久久婷婷国产综合精品| 亚洲成人精品在线观看| 日韩免费看的电影| 粉嫩嫩av羞羞动漫久久久| 国产精品视频一二三区| 欧美性大战久久久久久久蜜臀| 日韩国产欧美在线播放| 国产人伦精品一区二区| 欧洲一区在线观看| 激情图区综合网| 综合中文字幕亚洲| 日韩午夜小视频| www.日韩在线| 秋霞成人午夜伦在线观看| 久久一区二区视频| 欧美在线观看18| 国产一区二区日韩精品| 一区二区三区日本| 国产亚洲婷婷免费| 欧美精品亚洲二区| 成人午夜视频免费看| 天堂va蜜桃一区二区三区 | 亚洲一区在线观看免费观看电影高清| 欧美一区二区三区免费观看视频| 国产一区999| 亚洲电影你懂得| 国产欧美一区二区在线观看| 欧美日韩高清影院| 97se亚洲国产综合自在线观| 免费成人在线网站| 亚洲午夜精品久久久久久久久| 国产日韩精品视频一区| 91精品免费观看| 色哦色哦哦色天天综合| 国产91丝袜在线观看| 日本不卡123| 亚洲不卡在线观看| 亚洲精品欧美激情| 国产精品欧美一区喷水| 精品国产91久久久久久久妲己| 色婷婷av一区二区三区大白胸| 国产精品一级在线| 久久国产尿小便嘘嘘| 日韩国产欧美在线观看| 亚洲综合视频在线观看| 中文字幕在线观看不卡| 久久久久久久久久久久久女国产乱 | 91搞黄在线观看| 91玉足脚交白嫩脚丫在线播放| 国产精品资源在线观看| 国产在线国偷精品免费看| 日韩电影在线看| 天使萌一区二区三区免费观看| 亚洲人精品午夜| 亚洲日本va在线观看| 国产精品无圣光一区二区| 久久精品欧美一区二区三区不卡| 欧美不卡在线视频| 91精品国产91久久久久久一区二区| 欧美日本一道本| 欧美三级视频在线播放| 欧美中文字幕一区| 欧美色爱综合网| 欧美日韩成人综合在线一区二区| 在线视频亚洲一区| 欧美日本一区二区三区四区| 在线不卡的av| 日韩欧美久久久| 精品国产免费一区二区三区四区| 日韩欧美国产三级电影视频| 日韩午夜三级在线| 久久久久久久久久久电影| 久久久久久久久久久久久久久99 | 国产精品亚洲а∨天堂免在线| 国产在线播精品第三| 懂色av一区二区夜夜嗨| bt欧美亚洲午夜电影天堂| 色视频一区二区| 欧美理论片在线| 精品国产电影一区二区| 欧美极品aⅴ影院| 亚洲欧美在线观看| 亚洲专区一二三| 老司机免费视频一区二区三区| 国产综合一区二区| 91在线视频免费观看| 色婷婷精品大在线视频| 5858s免费视频成人| 久久综合色天天久久综合图片| 国产精品网曝门| 一区二区三区在线看| 婷婷综合另类小说色区| 麻豆一区二区在线| av不卡一区二区三区| 欧美精品久久99久久在免费线| 26uuu另类欧美| 亚洲理论在线观看| 麻豆国产欧美日韩综合精品二区| 国产高清成人在线| 欧美色图一区二区三区| 精品卡一卡二卡三卡四在线| 国产精品国产馆在线真实露脸| 亚洲国产视频在线| 国产黄人亚洲片| 欧美日韩国产另类一区| 亚洲国产精品成人久久综合一区 | 国产伦理精品不卡| 一本一本大道香蕉久在线精品| 欧美一区二区免费视频| 国产精品成人网| 久久99蜜桃精品| 91在线视频免费观看| 精品999久久久| 亚洲成av人片一区二区梦乃| 成人动漫视频在线| 日韩一区二区三区精品视频| 亚洲免费观看高清完整版在线观看| 激情综合网最新| 欧美日韩精品三区| 亚洲国产精品成人综合| 经典三级在线一区| 日韩亚洲欧美高清| 亚洲国产精品麻豆| 91麻豆国产香蕉久久精品| 久久蜜桃一区二区| 美女视频黄免费的久久| 欧美日韩中字一区| 亚洲柠檬福利资源导航| 成人午夜精品在线| 久久久久久久久久久99999| 图片区小说区区亚洲影院| 在线观看三级视频欧美| 中文字幕一区二区三区不卡在线 | 久久国产成人午夜av影院| 日本黄色一区二区| 中文字幕亚洲精品在线观看| 国产乱码精品一区二区三区av | 欧美日韩在线三级| 综合激情网...| 99精品久久99久久久久| 日本一区二区电影| 国产成人日日夜夜| 国产亚洲婷婷免费| 东方aⅴ免费观看久久av| 久久久久久一级片| 成人在线一区二区三区| 国产精品国产三级国产a| 成人免费av资源| 国产精品国产自产拍高清av王其 | 成人黄色av电影|