/ proc / iomem的内容

1)是否可以访问/ proc / iomem中未定义的物理地址?

2)如果设备的物理地址范围没有出现在/ proc / iomem中,是否表示设备尚未被使用/初始化?

Solutions Collecting From Web of "/ proc / iomem的内容"

1)是否可以访问/ proc / iomem中未定义的物理地址?

是。
假设一个ARM处理器的内存映射了所有直接连接的periperal,驱动程序可以执行ioremap()操作将物理内存映射到虚拟内存进行访问。
但是一个正确编写的驱动程序会首先调用request_mem_region()来确保它可以使用(并声称)该物理地址空间。
/proc/iomem的信息来自调用request_mem_region()驱动程序。

2)如果设备的物理地址范围没有出现在/ proc / iomem中,是否意味着设备尚未被使用/初始化?

您将不得不检查驱动程序代码以确定驱动程序写得多好。
ioremap()之前是否有request_mem_region() ioremap()
使用dmesg命令检查系统日志; 也许驱动初始化失败。

假设这是一个静态链接的驱动程序,而不是一个可加载模块,那么因为每个内核设备驱动程序都调用了其init()例程,所以可以通过在内核命令行中添加选项“initcall_debug”来获得跟踪输出。 如果你使用的是U-Boot,那么这个选项应该被添加到“bootargs”变量(用于内核命令行)。