c – 语言如何与硬件对话?

前端之家收集整理的这篇文章主要介绍了c – 语言如何与硬件对话?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > How does Software/Code actually communicate with Hardware?11个
好的,我很困惑一块硬件如何理解代码.
我在某处看到它与电压有关,但这块硬件究竟知道软件中的指令是什么意思?我知道驱动程序是软件和硬件之间的桥梁,但驱动程序仍然是软件:S.

例如,在C中我们有指针,它们可以指向内存中的某个地址.我们可以有一个指向某个硬件地址的指针,然后写入该地址,它会影响硬件吗?或硬件没有地址?

我想我真正想问的是操作系统或BIOS如何知道硬件的位置以及如何与之通信?

解决方法

For example,in C++ we have pointers and they can point to some
address in memory.. Can we have a pointer that points to some hardware
address and then write to that address and it would affect the
hardware? Or does hardware not have addresses?

有些硬件有像指针这样的地址,有些则没有(在这种情况下,它最有可能使用称为I / O端口的东西,这需要特殊的IN和OUT指令而不是常规的内存操作).但是现代硬件中的大部分都有一个内存地址,如果你将正确的值写入正确的地址,硬件就会按照你的要求去做.这与真正简单的方法不同 – 例如,您将字节写入“输出寄存器”的串行端口,字节沿串行线发送,另一个地址保存在串行端口上接收的输入数据到图形具有自己的机器语言并且可以运行数百或数千个线程的卡.

通常,操作系统负责通过驱动程序访问硬件.

这是非常简化的,编程,操作系统和硬件的整个主题足以写一本相当厚的书(而且就一般而言,如果你想真正了解特定的硬件,它很容易就是几十页串行端口,以及图形芯片的数百或数千页.

猜你在找的C&C++相关文章