马鞍山汽车站:IO端口 IO内存 IO映射方式 内存映射方式2
来源:百度文库 编辑:九乡新闻网 时间:2024/05/10 08:41:08
IO端口和IO内存以及内存之间的关系:主存16M字节的SDRAM,外设是个视频采集卡,上面有16M字节的SDRAM作为缓冲区。如下图:
还有两个概念我决很容易混起来:
IO映射方式:CPU是i386架构的情况在i386系列的处理中,内存和外部IO是独立编址,也是独立寻址的。MEM的内存空间是32位可以寻址到4G ,IO空间是16位可以寻址到64K。
内存映射方式:arm,powerpc在这一类的嵌入式处理器中,IO Port的寻址方式是采用内存映射,也就是IO bus就是Mem bus。系统的寻址能力如果是32位,IO Port+Mem(包括IO Mem)可以达到4G 。
Linux将基于IO映射方式的和内存映射方式的IO端口统称为IO区域(IO region)。
所以至此我觉得我们应该分清楚,io端口,io内存,io映射方式,内存映射方式。
参考下面文章:
http://blog.chinaunix.net/u3/94284/showart_2030412.html
http://blog.chinaunix.net/u3/94284/showart_2030419.html
linux管理io口是通过下面一组函数来的:
1) request_region()
linux管理io内存是通过下面一组函数来的
1) request_mem_region()
访问io映射方式的io函数组如下:
访问内存映射方式的io函数组如下:
和访问io内存是一样的
最后可以通过ioport_map吧io映射方式变成内存映射方式,可以和内存映射一样使用,这些只是给软件设计带来方便,底层还是io映射方式。
还有两个概念我决很容易混起来:
CPU对外设端口物理地址的编址方式有两种:
IO映射方式:CPU是i386架构的情况在i386系列的处理中,内存和外部IO是独立编址,也是独立寻址的。MEM的内存空间是32位可以寻址到
内存映射方式:arm,powerpc在这一类的嵌入式处理器中,IO Port的寻址方式是采用内存映射,也就是IO bus就是Mem bus。系统的寻址能力如果是32位,IO Port+Mem(包括IO Mem)可以达到
Linux将基于IO映射方式的和内存映射方式的IO端口统称为IO区域(IO region)。
所以至此我觉得我们应该分清楚,io端口,io内存,io映射方式,内存映射方式。
参考下面文章:
http://blog.chinaunix.net/u3/94284/showart_2030412.html
http://blog.chinaunix.net/u3/94284/showart_2030419.html
linux管理io口是通过下面一组函数来的:
1) request_region()
把一个给定区间的IO端口分配给一个IO设备。
2) check_region()
3) release_region()
释放以前分配给一个IO设备的给定区间的IO端口。
Linux中可以通过以下辅助函数来访问IO端口:
inb(),inw(),inl(),outb(),outw(),outl()
linux管理io内存是通过下面一组函数来的
1) request_mem_region()
请求分配指定的IO内存资源。
2) check_mem_region()
检查指定的IO内存资源是否已被占用。
3) release_mem_region()
释放指定的IO内存资源。
其中传给函数的start address参数是内存区的物理地址(以上函数参数表已省略)。
驱动开发人员可以将内存映射方式的IO端口和外设内存统一看作是IO内存资源。
ioremap()用来将IO资源的物理地址映射到内核虚地址空间(3GB - 4GB)中,参数addr是指向内核虚地址的指针。
Linux中可以通过以下辅助函数来访问IO内存资源:
readb(),readw(),readl(),writeb(),writew(),writel()。
访问io映射方式的io函数组如下:
unsigned inb(unsigned port);
void outb(unsigned char byte, unsigned port);
unsigned inw(unsigned port);
void outw(unsigned short word, unsigned port);
unsigned inl(unsigned port);
void outl(unsigned longword, unsigned port);
访问内存映射方式的io函数组如下:
和访问io内存是一样的
最后可以通过ioport_map吧io映射方式变成内存映射方式,可以和内存映射一样使用,这些只是给软件设计带来方便,底层还是io映射方式。
IO端口 IO内存 IO映射方式 内存映射方式2
IO端口和 IO内存
引用 IO端口和IO内存 - Galaxy的日志 - 网易博客
X86 IO端口和MMIO11
vc 内存映射文件
经IO
Mongodb源码分析--内存文件映射(MMAP)
create_mapping如何创建内存映射表
管理是什么?io
内家武学大揭秘io
内存封装方式介绍
c++标准IO库简介
卤汁配制三秘诀io
内存映射文件(专门读写大文件)
虚拟内存与内存映射文件区别与联系
java IO(2)字节流和字符流.wps
内存/硬盘造假方式曝光
决定孩子命运八大关键问题io
Ec/Io、Eb/Nt Eb/No
50张神图 好不容易才找到完整版io
很好听的爱情歌IO
火锅底料制作大全io
Articles - Disk IO Tutorial Part 1
AIX上如何配置异步IO