驱动访问Linux IO内存流程

什么是io内存
i/o内存也称为memory-mapped i/o(mmio),  它是指一种编址方式,不同cpu平台使用的编址方式不同,一种是“io内存”方式,也叫统一编址方式,是指内存和外设的地址是在同一个地址空间上的,比如我们常见的arm、mips等平台;还有另外一种叫独立编址方式,是指内存的地址空间和外设的地址空间是分开的,比如x86平台。
linux i/o内存 api
(1) io内存申请
要使用某个外设前,要申请其所对应的io内存,表明驱动要访问这块区域。
(2)io内存访问
在内核中访问io内存(通常是芯片内部的各个i2c,spi, usb等控制器的寄存器或者外部内存总线上的设备)之前,需首先使用ioremap()函数将设备所处的物理地址映射到虚拟地址上。
驱动访问io内存流程
1)调用request_mem_region()申请i/o内存资源。
2)将设备寄存器的物理地址通过ioremap()映射到内核空间的虚拟地址。
3)通过readb/writeb等接口访问设备的寄存器。
4)访问完成后,调用iounmap()函数对ioremap()映射的虚拟地址解除映射,并调用release_mem_region()函数释放申请的i/o内存资源。


今日传感财经:计量概念报跌;计量概念报跌;MEMS传感器概念报跌
Qualcomm和TDK成立合资企业为移动终端提供业界领先的射频前端解决方案
常见的脉冲电路到底有何用途和特点?
早间新闻:深圳商报推出首个纸媒AR广告 三星推出防纱窗效应AMOLED显示屏
选购二维码识读设备需要注意哪些方面?
驱动访问Linux IO内存流程
分享一个高性能的实时分析型数据库Apache Durid
苹果iOS10.3 Beta6怎么升级?哪些设备可以升级
超再生接收模块与超外差接收模块
总授信额度银行怎么控制
工业互联网平台引领了进新理念 技术实践为客户创造工业互联网风向
现在是更换成5G手机的合适时机吗
探讨数字、高清与智能大势: IP视频监控启动之慢
电阻电容并联阻抗计算
BOSE qc30主动式降噪耳机的工作原理拆解分析
NSA手机要被淘汰了?
十一出游:夜景用三星S8、美食用一加5、人像用华为P10、自拍就用vivo X20准没错
多位诺奖得主齐聚西湖,马云竟听了半天的座谈会?
爬行机器人和爬壁机器人的区别
驴迹科技公布2021年中期业绩:实现扭亏为盈,业务稳步恢复