芯片寄存器是物理地址,为什么要映射成虚拟地址
Linux 启动时开启了 MMU(内存管理单元),所有地址访问都是虚拟地址。
虽然底层是物理内存/寄存器,但内核访问时都是通过虚拟地址间接访问的。
bash
项目 内容
谁定义寄存器地址? 硬件设计人员
软件能改吗? 不能,只能遵循手册使用
软件怎么用这些地址? 通过 ioremap 等方式映射后访问
为什么不能直接访问? 需要通过 MMU 映射进虚拟地址空间