devmem 操作的是物理地址的数据,但实际上操作(读/写)的是:物理地址被mmap到虚拟地址里的值吗?
不是的。devmem操作的是物理地址上的数据,而不是被映射到虚拟地址空间中的值。通过/dev/mem设备文件可以访问物理内存,但需要特殊权限,因为这可能会破坏系统的稳定性和安全性。mmap()函数则可以将物理地址映射到虚拟地址空间中,从而实现对物理地址上数据的访问。
是的,devmem操作的是物理地址的数据,但是在使用时,物理地址会被映射到虚拟地址空间中。
因此,读写操作实际上是在虚拟地址空间中进行的。
可以在github下载devmem的源码进行分析!
你调用devmem输入的是实际物理地址的值,软件运行会将物理地址映射到虚拟地址空间传递给内核空间!因为linux下应用程序是不允许操作物理地址的,只能操作虚拟地址控制!