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

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

?? ether.c

?? S3C2443 WINCE6.0 BSP
?? C
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//

#include <windows.h>
#include <halether.h>
#define __OAL_ETHDRV_H	// Temporary: clean up build warning until EDBG prototypes are moved.
#include <bsp.h>
#include "loader.h"

#define FROM_BCD(n)    ((((n) >> 4) * 10) + ((n) & 0xf))
#define TO_BCD(n)      ((((n) / 10) << 4) | ((n) % 10))

// Function pointers to the support library functions of the currently installed debug ethernet controller.
//
PFN_EDBG_INIT             pfnEDbgInit;
PFN_EDBG_ENABLE_INTS      pfnEDbgEnableInts;
PFN_EDBG_DISABLE_INTS     pfnEDbgDisableInts;
PFN_EDBG_GET_PENDING_INTS pfnEDbgGetPendingInts;
PFN_EDBG_GET_FRAME        pfnEDbgGetFrame;
PFN_EDBG_SEND_FRAME       pfnEDbgSendFrame;
PFN_EDBG_READ_EEPROM      pfnEDbgReadEEPROM;
PFN_EDBG_WRITE_EEPROM     pfnEDbgWriteEEPROM;
PFN_EDBG_SET_OPTIONS      pfnEDbgSetOptions;

// Function prototypes.
//
BOOL    CS8900DBG_Init(PBYTE iobase, DWORD membase, USHORT MacAddr[3]);
UINT16  CS8900DBG_GetFrame(PBYTE pbData, UINT16 *pwLength);
UINT16  CS8900DBG_SendFrame(PBYTE pbData, DWORD dwLength);


/*
    @func   BOOL | InitEthDevice | Initializes the Ethernet device to be used for download.
    @rdesc  TRUE = Success, FALSE = Failure.
    @comm    
    @xref   
*/
BOOL InitEthDevice(PBOOT_CFG pBootCfg)
{
	volatile S3C2443_SSMC_REG *s2443SSMC = (S3C2443_SSMC_REG *)OALPAtoVA(S3C2443_BASE_REG_PA_SSMC, FALSE);
    PBYTE  pBaseIOAddress = NULL;
    UINT32 MemoryBase = 0;  
    BOOL bResult = FALSE;

    OALMSG(OAL_FUNC, (TEXT("+InitEthDevice.\r\n")));


/*
	s2443SSMC->SMBIDCYR4 = 0;
	s2443SSMC->SMBWSTWRR4 = 14;
	s2443SSMC->SMBWSTOENR4 = 2;
	s2443SSMC->SMBWSTWENR4 = 2;
	s2443SSMC->SMBWSTRDR4 = 14;  //14clk
	
	
	s2443SSMC->SMBCR4 |= ((1<<2)|(1<<0));
	s2443SSMC->SMBCR4 &= ~((3<<20)|(3<<20)|(3<<12));
	s2443SSMC->SMBCR4 &= ~(3<<4);
	s2443SSMC->SMBCR4 |= (1<<4);   	
	
*/

	s2443SSMC->SMBIDCYR1 = 0;
	s2443SSMC->SMBWSTWRR1 = 14;
	s2443SSMC->SMBWSTOENR1 = 2;
	s2443SSMC->SMBWSTWENR1 = 2;
	s2443SSMC->SMBWSTRDR1 = 14;  //14clk
	
	
	s2443SSMC->SMBCR1 |= ((1<<2)|(1<<0));
	s2443SSMC->SMBCR1 &= ~((3<<20)|(3<<20)|(3<<12));
	s2443SSMC->SMBCR1 &= ~(3<<4);
	s2443SSMC->SMBCR1 |= (1<<4) | (1<<7) | (1<<15);   	
    // Use the MAC address programmed into flash by the user.
    //
    memcpy(pBSPArgs->kitl.mac, pBootCfg->EdbgAddr.wMAC, 6);

    // Use the CS8900A Ethernet controller for download.
    //
    pfnEDbgInit      = CS8900DBG_Init;
    pfnEDbgGetFrame  = CS8900DBG_GetFrame;
    pfnEDbgSendFrame = CS8900DBG_SendFrame;

    pBaseIOAddress   = (PBYTE)OALPAtoVA(pBSPArgs->kitl.devLoc.LogicalLoc, FALSE);
    MemoryBase       = (UINT32)OALPAtoVA(BSP_BASE_REG_PA_CS8900A_MEMBASE, FALSE);
    
    //RETAILMSG(1,(TEXT("0x%X 0x%X\n"),pBaseIOAddress,MemoryBase));
    // Initialize the Ethernet controller.
    //
    if (!pfnEDbgInit((PBYTE)pBaseIOAddress, MemoryBase, pBSPArgs->kitl.mac))
    {
        OALMSG(OAL_ERROR, (TEXT("ERROR: InitEthDevice: Failed to initialize Ethernet controller.\r\n")));
        goto CleanUp;
    }

    // Make sure MAC address has been programmed.
    //
    if (!pBSPArgs->kitl.mac[0] && !pBSPArgs->kitl.mac[1] && !pBSPArgs->kitl.mac[2])
    {
        OALMSG(OAL_ERROR, (TEXT("ERROR: InitEthDevice: Invalid MAC address.\r\n")));
        goto CleanUp;
    }

    bResult = TRUE;

CleanUp:

    OALMSG(OAL_FUNC, (TEXT("-InitEthDevice.\r\n")));
    return(bResult);
}


/*
    @func   BOOL | OEMGetRealTime | Returns the current wall-clock time from the RTC.
    @rdesc  TRUE = Success, FALSE = Failure.
    @comm    
    @xref   
*/
static BOOL OEMGetRealTime(LPSYSTEMTIME lpst) 
{
    volatile S3C2443_RTC_REG *s2443RTC = (S3C2443_RTC_REG *)OALPAtoVA(S3C2443_BASE_REG_PA_RTC, FALSE);

    do
    {
        lpst->wYear         = FROM_BCD(s2443RTC->BCDYEAR) + 2000 ;
        lpst->wMonth        = FROM_BCD(s2443RTC->BCDMON   & 0x1f);
        lpst->wDay          = FROM_BCD(s2443RTC->BCDDAY   & 0x3f);

        lpst->wDayOfWeek    = (s2443RTC->BCDDATE - 1);

        lpst->wHour         = FROM_BCD(s2443RTC->BCDHOUR  & 0x3f);
        lpst->wMinute       = FROM_BCD(s2443RTC->BCDMIN   & 0x7f);
        lpst->wSecond       = FROM_BCD(s2443RTC->BCDSEC   & 0x7f);
        lpst->wMilliseconds = 0;
    }
    while (!(lpst->wSecond));

    return(TRUE);
}


/*
    @func   DWORD | OEMEthGetSecs | Returns a free-running seconds count.
    @rdesc  Number of elapsed seconds since last roll-over.
    @comm    
    @xref   
*/
DWORD OEMEthGetSecs(void)
{
    SYSTEMTIME sTime;

    OEMGetRealTime(&sTime);
    return((60UL * (60UL * (24UL * (31UL * sTime.wMonth + sTime.wDay) + sTime.wHour) + sTime.wMinute)) + sTime.wSecond);
}


/*
    @func   BOOL | OEMEthGetFrame | Reads data from the Ethernet device.
    @rdesc  TRUE = Success, FALSE = Failure.
    @comm    
    @xref   
*/
BOOL OEMEthGetFrame(PUCHAR pData, PUSHORT pwLength)
{
    return(pfnEDbgGetFrame(pData, pwLength));
}


/*
    @func   BOOL | OEMEthSendFrame | Writes data to an Ethernet device.
    @rdesc  TRUE = Success, FALSE = Failure.
    @comm    
    @xref   
*/
BOOL OEMEthSendFrame(PUCHAR pData, DWORD dwLength)
{
    BYTE Retries = 0;

    while (Retries++ < 4)
    {
        if (!pfnEDbgSendFrame(pData, dwLength))
            return(TRUE);

        EdbgOutputDebugString("INFO: OEMEthSendFrame: retrying send (%u)\r\n", Retries);
    }

    return(FALSE);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久香蕉麻豆| 成人h动漫精品一区二区| 国产欧美一区二区精品性色| 91福利视频在线| 精品中文字幕一区二区| 亚洲精品写真福利| 国产欧美一区二区精品久导航| 欧美日本国产视频| 99久久婷婷国产综合精品电影 | 91丝袜高跟美女视频| 捆绑调教美女网站视频一区| 亚洲美女视频在线| 国产精品久久久久久久岛一牛影视 | 亚洲色图一区二区三区| 欧美精品一区二区三区久久久| 91精品1区2区| eeuss鲁片一区二区三区在线观看| 麻豆视频观看网址久久| 亚洲6080在线| 亚洲精品久久7777| 亚洲天堂成人网| 中文字幕 久热精品 视频在线 | 91精品婷婷国产综合久久| 99精品热视频| 成人一区在线观看| 国产乱子轮精品视频| 青青草国产精品亚洲专区无| 亚洲综合在线视频| 亚洲精品写真福利| 亚洲精品成人a在线观看| 中文字幕亚洲一区二区av在线| 国产视频在线观看一区二区三区| 精品成人a区在线观看| 91精品国产91久久综合桃花| 欧美日本视频在线| 欧美日韩国产免费一区二区 | 国产成人超碰人人澡人人澡| 激情亚洲综合在线| 国产在线精品免费av| 精品综合免费视频观看| 激情另类小说区图片区视频区| 久草精品在线观看| 国产一区二区三区在线观看免费视频| 久久精品国产澳门| 国产精品综合一区二区三区| 丁香六月久久综合狠狠色| 国产盗摄一区二区| 91精品中文字幕一区二区三区| 欧美一区二区三区四区视频| 日韩欧美成人激情| 国产女人18毛片水真多成人如厕| 中文无字幕一区二区三区| 中文字幕一区二区三区四区不卡| 亚洲人成网站色在线观看| 亚洲专区一二三| 男女男精品视频网| 国产不卡视频在线观看| 色综合久久天天综合网| 欧美日韩免费电影| 日韩精品中文字幕一区| 久久精品亚洲一区二区三区浴池 | 久久亚洲精品小早川怜子| 久久精品无码一区二区三区| 亚洲欧洲av色图| 亚洲国产精品久久人人爱蜜臀| 欧美aaaaa成人免费观看视频| 国产精品影视天天线| 91在线视频播放| 欧美一区日韩一区| 日本一区二区视频在线观看| 亚洲一区二区精品3399| 免费成人在线观看| 成人精品国产免费网站| 欧美日韩精品一区二区在线播放 | 亚洲精品一二三| 免费看日韩精品| 99视频精品在线| 日韩欧美亚洲国产精品字幕久久久 | 欧美午夜精品久久久久久超碰| 51久久夜色精品国产麻豆| 国产日产欧美一区二区三区| 一区二区不卡在线播放| 韩国v欧美v亚洲v日本v| 91麻豆精品在线观看| 日韩一区和二区| 国产精品成人一区二区艾草 | 国产成人精品免费看| 日本大香伊一区二区三区| 精品av久久707| 亚洲午夜精品一区二区三区他趣| 国精产品一区一区三区mba桃花| 色综合婷婷久久| 日本不卡在线视频| 成人av高清在线| 欧美不卡一区二区三区| 亚洲一区二区精品久久av| 国产成人在线视频网站| 在线成人免费观看| 中文字幕视频一区二区三区久| 久久成人麻豆午夜电影| 欧美日韩精品一区二区| 国产精品久久久久天堂| 国产一区二区电影| 91.麻豆视频| 亚洲欧洲三级电影| 国产成人精品一区二区三区网站观看| 56国语精品自产拍在线观看| 亚洲图片欧美激情| 成人av网址在线| 久久精品视频网| 黑人巨大精品欧美一区| 欧美一级二级三级乱码| 亚洲va韩国va欧美va| 色婷婷av一区二区三区之一色屋| 国产精品私人自拍| 国产精品综合一区二区三区| 欧美一区二区不卡视频| 午夜精品久久久久久久| 欧洲视频一区二区| 亚洲美女一区二区三区| 91在线观看视频| 亚洲精品乱码久久久久久日本蜜臀| 成人手机在线视频| 国产精品婷婷午夜在线观看| 国产成人高清在线| 国产欧美一区二区精品性色| 国产一区二区三区免费在线观看 | 欧美日韩性生活| 亚洲一区二区三区四区五区中文| 99re热这里只有精品免费视频| 亚洲国产精品二十页| 风间由美性色一区二区三区| 国产亚洲精品资源在线26u| 国产精品一色哟哟哟| 久久久久久久久蜜桃| 国产不卡视频一区二区三区| 欧美韩日一区二区三区| 国产+成+人+亚洲欧洲自线| 中文乱码免费一区二区| 91网站在线观看视频| 1024亚洲合集| 中文字幕成人av| caoporn国产精品| 一区二区三区日本| 欧美巨大另类极品videosbest| 日产国产欧美视频一区精品| 欧美一级生活片| 久久国产福利国产秒拍| 久久久噜噜噜久噜久久综合| 不卡大黄网站免费看| 伊人一区二区三区| 欧美日韩三级在线| 免费看欧美女人艹b| 久久精品亚洲精品国产欧美kt∨| 成av人片一区二区| 亚洲123区在线观看| 日韩精品一区在线观看| 国产馆精品极品| 亚洲欧美色图小说| 制服丝袜中文字幕亚洲| 国产一区二区毛片| 亚洲欧美国产毛片在线| 欧美日韩中文字幕一区二区| 激情欧美一区二区三区在线观看| 国产精品久久久久一区二区三区| 色94色欧美sute亚洲13| 裸体健美xxxx欧美裸体表演| 日本一区二区三区免费乱视频 | 久草这里只有精品视频| 国产精品电影院| 欧美美女激情18p| 国产成人精品aa毛片| 亚洲尤物视频在线| 精品国产乱码久久久久久1区2区| 粉嫩av亚洲一区二区图片| 一区二区三区四区高清精品免费观看| 91精品黄色片免费大全| www.日韩精品| 欧美aaaaa成人免费观看视频| 国产精品成人网| 日韩手机在线导航| 91小视频在线免费看| 老色鬼精品视频在线观看播放| 亚洲色图丝袜美腿| 精品国产乱码久久久久久图片| 91久久一区二区| 国产1区2区3区精品美女| 日本三级亚洲精品| 亚洲日本丝袜连裤袜办公室| 日韩精品一区二区三区视频播放| 91原创在线视频| 国产成人一区在线| 欧美在线观看视频一区二区 | 樱花影视一区二区| 久久青草国产手机看片福利盒子 | 欧美精品乱码久久久久久| 成人伦理片在线| 久久91精品国产91久久小草| 亚洲成av人片在线| 中文字幕永久在线不卡|