2

我了解到 C++ 对硬件有很多低级访问,所以我们用 C++ 编写驱动程序。但是当我们用c++写一个普通的桌面应用程序时,是不是可以直接访问硬件呢?我问这个是因为桌面应用程序在应用程序层上运行。OS 层和 OEM 层位于 App 层和硬件之间。那么我们用 c++ 编写的应用程序如何直接访问硬件呢?请有人解释一下 C++ 桌面应用程序的工作原理。

谢谢。

4

1 回答 1

7

一般来说,桌面应用程序必须通过操作系统才能访问任何资源,从额外的内存到硬盘和声音芯片。

在嵌入式系统中,可以直接访问硬件,通常是通过指针。因此,要写入 UART 寄存器,可以将寄存器的地址分配给指针并取消对指针的引用。

许多编译器库为各种平台和嵌入式系统提供支持。我正在为 ARM 嵌入式系统使用 IAR 编译器并使用 C++ 进行编程。我们不使用流,因为我们没有终端 I/O。

编辑1: cout 示例
例如,要打印到控制台,通过coutor printf,编译器提供了一个调用操作系统函数来显示文本的库。

操作系统功能可以将文本直接发送到控制台,也可以弹出一个“控制台窗口”并将文本发送到该控制台。

控制台函数将文本转换为位图并将位图发送到图形控制器。

图形控制器在屏幕上显示位图。

于 2013-07-31T01:19:57.507 回答