没有人知道如何来访问设备,例如在主板的以太网端口或PCI卡上?

是否有特殊寄存器?操作码?我必须要对操作系统的调用?如果是的话,如何?

预先感谢。

有帮助吗?

解决方案

这取决于你想聊到特定的以太网MAC芯片上。在同一个家庭即使芯片将经常在他们是如何运作的细微差别。这就是为什么现代的操作系统具有“驱动程序”的概念:硬件制造商通常是因为他们知道硬件写驱动程序,该驱动程序提供了硬件和OS不愿意看到的之间的转换

您可以经常得到来自MAC芯片的制造商文档编写自己的驱动程序。同样,你必须确切地知道你想谈谈,以便得到正确的规格使用的芯片。有些芯片不公开文件,但是这通常与以太网芯片有问题。

其他提示

最简单的答案,虽然可能不是你要找的,是写C代码访问卡,编译它,并查看编译器生成的代码。

在C代码是可能直接经过NIC驱动程序,或使用如的winpcap 库。内置的原始套接字在Windows 的,例如,是出于安全原因关闭。

但是,这不是学习如何网卡最好的工作方式。为此,选择一个流行的嵌入式网卡的数据表如 LAN91C111 和阅读如何访问它。 将教你在原始的方式接口Eterthet很多。

这还不是一个足够好的沙箱学习汇编语言,恕我直言。对于这一点,只是实现装配了几个小的算法程序 - 就像二叉树搜索

您可以使用使用inupt和输出指令或类似的卡本身的调用。每个以太网卡是不同的,所以你会从制造商需要的文档。

下一级是DOS功能调用,假设你usuing的Windows。这将允许你使用标准的MSDOS电话访问以太网卡的功能有限。您可以老MSDOS文档中找到这些。他们中的大多数仍然在更高版本的Windows的工作,如果我没有记错的话。

您将需要编写特定的端口地址。本Wiki页面可能让你开始。结果 MemoryMappedIO

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top