我有一个运行在cortexA8上的嵌入式linux系统。我理解内核符号PHYS_OFFSET代表RAM的物理起始地址http://www.kernelport.org/defines.html 。我需要用户空间中此符号的值,以便在内核启动后运行的某些 shell 脚本中进行验证。/proc 文件系统没有此信息。请告诉我是否可以通过某种方式获取该值。
最佳答案
您可以尝试通过读取/proc/iomem
来利用I/O内存映射,它应该告诉我们系统RAM
- iomem
中的所有地址> 是真实/物理地址。
这是来 self 的 Android 手机,它有 1GB RAM (0xbffffffff - 0x80000000)。
$cat /proc/iomem
...
80200000-88cfffff : System RAM
80300000-80c708cf : Kernel text
80d00000-80fb1dcb : Kernel data
88d00000-88d00fff : ramdumpinfo
88d01000-88d04fff : amsslog
88de0000-88dfffff : ram_console
90000000-ab4fffff : System RAM
b9a02000-bfffffff : System RAM
您需要将系统 RAM 中指定的范围转换为您需要的范围。
关于linux - 获取 ARM Linux 用户空间中 PHYS_OFFSET 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13606969/