Linux会将物理地址映射为虚拟地址,所以要在内核中操作寄存器或者外部设备,就必须找到其相应的虚拟地址。
一般来说,io映射相关定义会放在include/arch-xxx/io.h中。而内存相关定义会在memory.h中
而实际的映射操作,一般由iotable_map和memtable_map函数来完成,每种架构实际操作的位置都不尽相同,需要查询。
还有一种动态映射的方法,用的是ioremap函数。
通过以上概念,我们就能方便的找到linux映射相应的定义和代码了
Linux会将物理地址映射为虚拟地址,所以要在内核中操作寄存器或者外部设备,就必须找到其相应的虚拟地址。
一般来说,io映射相关定义会放在include/arch-xxx/io.h中。而内存相关定义会在memory.h中
而实际的映射操作,一般由iotable_map和memtable_map函数来完成,每种架构实际操作的位置都不尽相同,需要查询。
还有一种动态映射的方法,用的是ioremap函数。
通过以上概念,我们就能方便的找到linux映射相应的定义和代码了
内容版权声明:除非注明,否则皆为本站原创文章。