Pergunta

Alguém sabe como obter acesso a dispositivos como uma porta Ethernet em uma placa-mãe ou em um cartão de pci?

Existem registros especiais? Opcodes? Eu tenho que fazer uma chamada para o sistema operacional? Se sim, como?

Agradecemos antecipadamente.

Foi útil?

Solução

Depende do chip especial Ethernet MAC você está tentando falar. fritas até mesmo na mesma família, muitas vezes, têm pequenas diferenças na forma como eles operam. É por isso que sistemas operacionais modernos têm o conceito "driver":. O fabricante do hardware normalmente escreve o motorista porque sabem que o hardware e o driver fornece tradução entre o hardware e o que o OS quer ver

Você pode muitas vezes obter a documentação do fabricante do chip MAC para escrever seu próprio driver. Novamente, você tem que saber exatamente qual chip que você está tentando falar com a fim de obter as especificações corretas. Alguns chips não têm nenhuma documentação pública, mas isso geralmente não é um problema com chips Ethernet.

Outras dicas

A resposta mais simples, embora provavelmente não o que você está procurando, seria escrever o código C para acessar o cartão, compilá-lo e ver o código gerado pelo compilador.

O código C é provável que vá através do driver NIC directamente, ou utilizar uma biblioteca como winpcap . Built-in suporte para soquetes brutos no Windows, por exemplo, foi desativada por motivos de segurança.

Mas esta não é a melhor maneira de aprender como NICs trabalhar. Para isso, escolha uma folha de dados de uma NIC incorporado populares como LAN91C111 leia como acessá-lo. Isso vai te ensinar muito sobre a interface Eterthet na forma crua.

Este ainda não é uma boa caixa de areia suficiente para linguagem assembly estudo, IMHO. Para isso, basta implementar alguns pequenos programas algorítmicos na montagem -. Como a busca árvore binária

Você pode usar chamadas para o próprio cartão, usando instruções inupt e saída ou algo similar. Cada placa ethernet é diferente, então você vai precisar de documentação do fabricante.

O próximo nível é as chamadas de função DOS, supondo que você está usuing do Windows. Estes permitem que você acessar os recursos limitados de uma placa ethernet usando MSDOS padrão chamadas. Você pode encontrá-los na documentação antiga MSDOS. A maioria deles ainda o trabalho em versões posteriores do Windows, se não me engano.

Você vai precisar de gravação para endereços de portas específicas. Esta página Wiki pode começar.
MemoryMappedIO

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top