Linux内核外设IO寄存器与IO mem读写函数总结
来源:互联网 发布:全民枪战刷炎龙软件 编辑:程序博客网 时间:2024/06/06 05:34
学习时间:2014/5/21
外设IO寄存器地址独立编址的CPU,这时外设IO寄存器应该称为IO端口,访问IO寄存器可以ioport_map()将其映射到虚拟地址空间,但是实际上这只是给开发人员造成一个“假象”,并没有映射到内核虚拟地址,仅仅是为了使用和IO内存一样的接口访问IO寄存器;当然,也可以直接使用in/out指令访问IO寄存器。如:X86架构处理器。这一类的访问有两种方式;
(1)针对没有使用ioport_map()处理的IO端口的访问:
直接使用汇编指令in、out、ins、outs 访问或者内核封装的辅助函数inb、inw、inl、outb、outw、outl(以及它们对应的变种函数指令inb_p、insb等)(b、w、l分别代表一个字节(8位),一个字(16位),一个长整型(32位))来访问。
(2)针对使用ioport_map()处理的IO端口的访问:
unsigned int ioread8(void *addr);
unsigned int ioread16(void *addr);
unsigned int ioread32(void *addr);
写函数类似iowrite*()。
外设IO寄存器与内存统一编址的CPU,这时外设IO寄存器应该称为IO内存,访问IO寄存器可以通过ioremap()将其映射到虚拟地址空间,然后使用read/write接口访问。如:MIPS架构处理器。
注意:上面说的都是基于不同架构的外设IO寄存器,其实外设IO除了寄存器还有IOmem。不管是基于X86架构还是基于MIPS架构的处理器,IO mem的访问都是通过内存映射的方式访问的。
- Linux内核外设IO寄存器与IO mem读写函数总结
- Linux内核与驱动开发学习总结:内核访问外设IO.map_desc和ioremap(七)
- io读写寄存器
- Linux内核访问外设IO资源的方式
- Linux 内核访问外设IO资源的方式
- Linux内核访问外设io--动态映射和静态映射
- linux mem cpu io性能查看
- linux性能优化cpu 磁盘IO MEM
- 读写寄存器函数总结
- 外设io映射
- 外设IO概述
- Linux系统监控的CPU、Mem、IO的OID
- Linux文件IO函数与标准IO库函数
- Linux用户态程序读写IO端口方法总结
- Linux用户态程序读写IO端口方法总结
- vmstat介绍(IO、CPU、MEM)
- Linux文件操作与IO函数
- Linux 异步IO 读写编程
- excel数据透视表--整理汇总杂乱的原始数据
- 海量数据处理策略之一—Hash映射 + Hash_map统计 + 堆/快速/归并排序
- javascript刷新页面,javascript常用函数
- verilog心得
- IOS之禁用UIWebView的默认交互行为
- Linux内核外设IO寄存器与IO mem读写函数总结
- c和c++的复杂类型声明深入理解
- 【Cocos2d-x】源码分析之 2d/ui/UILayout
- 11岁女孩因抄作业被父亲发现吊打身亡
- ArcGIS 连接 Sql Server 2008 R2
- hdu 1241
- 2G03-view-radio-group
- 韦德爆发詹姆斯半场苏醒 热火力克步行者扳成1-1
- What can I learn right now in just 10 minutes that could be useful for the rest of my life?