moo*_*234 9 c c++ pointers
C中的指针非常强大,效率很高.但是如何使用指针可以访问硬件?
我对此的想法是将指针的值设置为等于硬件的关联对象,而不是通过指针操纵它.但是,如果你已经有足够的访问硬件的对象和属性来使用指针,指针在哪里发挥作用?也许我想象一些错误的东西?
我在Windows 7上运行.
一个基本的例子以及解释为什么指针需要操纵该硬件属性将是很好的.
rub*_*020 7
指针保存一个内存地址.并非所有内存寻址范围都指向RAM区域.内存地址有范围,有些范围映射到硬件寄存器.通过写入这些寄存器,我们可以访问硬件.当然,这还取决于哪个操作系统和哪个硬件.这是一个例子.
Log*_*cG8 7
在独立环境(如微控制器)中,没有内存管理单元(某些ARM微处理器)的硬件平台,或者不支持硬件保护(如DOS)指针的操作系统,可以通过硬盘实现对硬件的原始访问内存映射I/O的神奇之处.在Windows或Linux(或几乎任何现代操作系统)等操作系统上运行的程序中的指针是虚拟地址空间中的指针.这些指针不允许您直接访问硬件.
内存映射I/O的工作方式是保留某些物理内存地址,以便与系统中的设备进行通信.当访问属于设备的地址时,数据被路由到设备的适当寄存器.在x86平台上,这个翻译由北桥完成.
归档时间:
12 年,6 月 前
查看次数:
2109 次
最近记录: