Compartilhar via


Implementing the Ethernet Controller-Related Functions

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

A biblioteca BLCOMMON e a biblioteca suporte Eboot.lib, que auxilia com serviços DHCP, UDP e TFTP, chamar Controlador Ethernet-relacionado funções. Essas funções são geralmente invólucros para as rotinas primitivo acessar expostos nas bibliotecas depuração Ethernet. Para obter mais informações, consulte Biblioteca de códigos BLCOMMON e Biblioteca de códigos Eboot.

A seguinte tabela mostra o controlador Ethernet-relacionado funções que você precisa implementar.

Função Descrição

OEMReadData

Chamado pelo BLCOMMON estrutura e dados leituras a partir de transporte durante o processo baixar. Essa função geralmente ativa ao redor e chamadas EbootEtherReadData Em Eboot.lib, que por sua vez chama OEMEthGetFrame.

Esta função pode ser copiada de uma plataforma hardware existente.

OEMEthGetFrame

Lê dados diretamente de uma NIC através de pfnEDbgGetFrame ponteiro.

Esta função pode ser copiada de uma plataforma hardware existente.

OEMEthSendFrame

Grava dados diretamente para o NIC através de pfnEDbgSendFrame ponteiro.

Esta função pode ser copiada de uma plataforma hardware existente.

OEMEthGetSecs

Retorna o número de segundos que passaram desde que um determinado tempo fixo. O valor absoluto não é importante, mas relativo contagem deve ser por segundo precisas.

Para implementar Controlador Ethernet-relacionado funções

  • Para editar o arquivo Main.c, adicionando a codificar necessário para implementar totalmente o controlador Ethernet-relacionado funções.

    O seguinte exemplo de código mostra a implementação do controlador Ethernet-relacionado funções para a plataforma hardware usada nesse exemplo carregador inicializar.

    BOOL OEMReadData(DWORD dwData, PUCHAR pData)
    {
        return(EbootEtherReadData(dwData, pData));
    }
    
    BOOL OEMEthGetFrame(PUCHAR pData, PUSHORT pwLength)
    {
        return pfnEDbgGetFrame(pData, pwLength);
    }
    
    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);
    }
    
    DWORD OEMEthGetSecs(void)
    {
        return( (*(volatile DWORD *)RTC_RDCR) & RTC_SECONDS_MASK );
    }
    

See Also

Tasks

How to Develop a Boot Loader