Linux 内核不能直接访问物理地址,必须通过虚拟地址访问。

芯片寄存器是物理地址,为什么要映射成虚拟地址

Linux 启动时开启了 MMU(内存管理单元),所有地址访问都是虚拟地址。

虽然底层是物理内存/寄存器,但内核访问时都是通过虚拟地址间接访问的。

bash 复制代码
项目				内容
谁定义寄存器地址?	硬件设计人员
软件能改吗?			不能,只能遵循手册使用
软件怎么用这些地址?	通过 ioremap 等方式映射后访问
为什么不能直接访问?	需要通过 MMU 映射进虚拟地址空间
相关推荐
HXQ_晴天17 分钟前
Linux 系统的交互式进程监控工具htop
linux·服务器·网络
song85834 分钟前
韦东山开发手册阅读笔记(五)
linux
LIZhang201639 分钟前
linux写一个脚本实时保存内存占用情况
linux·运维·服务器
IDC02-阿杰1 小时前
Windows WSL2安装Ubuntu24.04全攻略
linux·windows
FS_Marking1 小时前
ZTP(零接触配置):实现自动化与高效的网络部署
运维·网络·自动化
s09071361 小时前
ZYNQ7000 AXI DMA 接收中断(S2MM_introut)全解析:从硬件原理到Linux驱动开发
linux·驱动开发·dma·zynq
IT23101 小时前
抖音作品自动化监控工具
运维·自动化
camellias_1 小时前
ubuntu(二)ubuntu18.04安装mysql8
linux·ubuntu·adb
藤谷性能1 小时前
Ubuntu 22.04:安装串口调试助手CoolTerm
linux·运维·ubuntu·串口·coolterm