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