🗒️linux源码解析05–ioremap原理
2024-7-30
| 2024-11-4
字数 495阅读时长 2 分钟
type
status
date
slug
summary
tags
category
icon
password
URL

linux源码解析05–ioremap原理

补充点背景知识:

(1)根据不同架构处理器,对内存的访问分为两种方式;a.x86架构,将外设和普通内存分开,通过专门的I/O指令(IN/OUT)来访问外设的寄存器,称为“I/O地址空间”或“I/O端口空间”;
b.RISC的CPU,比如ARM/PowerPC等,采用统一编制,即将所有I/O外设的内存空间看作普通内存的一部分;
(2)一般外设I/O的物理地址是已知的,但是开启MMU后,只能通过虚拟地址访问,因此需要将外设地址映射到虚拟地址;

ioremap映射函数

常用映射函数有
核心实现如下

ioremap_page_range函数

这部分跟之前普通页面映射差不多,就略过了;
建立好映射之后,应用程序可以通过虚拟地址,访问寄存器地址;
 
 
  • linux kernel
  • 必看精选
  • linux内核源码解析03–启动代码分析之主内核页表创建linux源码解析06–常用内存分配函数kmalloc、vmalloc、malloc和mmap实现原理
    Loading...