ChinaUnix.net
相关文章推荐:

2440 IO内存 按键

第九章“与硬件通信”中提到io端口和io内存,书中讲得比较笼统,找了篇详细点文章,从内核实现的角度分析Linux 2.4.0内核io子系统中对io端口资源的管理的实现原理。 http://zhanglinbao.bokee.com/5408080.html 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/85048/showart_1711152.html

by wthsunny - Linux文档专区 - 2008-12-09 23:00:05 阅读(610) 回复(0)

相关讨论

在驱动程序编写过程中,很少会注意到io Port和io Mem的区别。虽然使用一些不符合规范的代码可以达到最终目的,这是极其不推荐使用的。 结合下图,我们彻底讲述io端口和io内存以及内存之间的关系。主存16M字节的SDRAM,外设是个视频采集卡,上面有16M字节的SDRAM作为缓冲区。 1. CPU是i386架构的情况在i386系列的处理中,内存和外部io是独立编址,也是独立寻址的。MEM的内存空间是32位可以寻址到4G,io空间是16位可以寻址到...

by embededgood - Linux文档专区 - 2009-08-18 10:08:45 阅读(765) 回复(0)

io端口和io内存以及内存之间的关系:主存16M字节的SDRAM,外设是个视频采集卡,上面有16M字节的SDRAM作为缓冲区。如下图: 还有两个概念我决很容易混起来: CPU对外设端口物理地址的编址方式有两种: 一种是io映射方式,另一种是内存映射方式。 io映射方式:CPU是i386架构的情况在i386系列的处理中,内存和外部io是独立编址,也是独立寻址的。MEM的内存空间是32位可以寻址到4G,io空间是16位可以寻址到64K。 内存映射方式:a...

by eelb123 - Linux文档专区 - 2010-01-03 11:24:45 阅读(1070) 回复(0)

转载:http://armembed.5d6d.com/archiver/tid-781.html
S3C2440 io操作S3C2440io口操作
                                                                  ...

by yuweixian4230 - 移动操作系统 - 2011-12-20 09:44:14 阅读(519) 回复(0)

I/O端口是驱动程序与许多设备之间的通信方式,Linux的内核为我们提供了I/O端口分配的操作接口,但对PCI设备来讲,它的配置地址空间已经为其指定了I/O端口范围,不需要额外的分配操作。Linux内核 提供了如下一些访问I/O端口的内联函数: unsigned inb(unsigned port); void outb(unsigned char byte, unsigned port); unsigned inw(unsigned port); void outw(unsigned short word, unsigned port); unsign...

by ali_tong - Linux文档专区 - 2008-06-18 21:40:19 阅读(1049) 回复(0)

最近学习pci驱动开发,问题很多,主要有如下: 问题1:通过lspci -x找到我要的pci设备信息: 03:0a.0 Signal processing controller: Adlink Technology Device 9221 (rev 02) 00: 4a 14 21 92 07 00 00 04 02 00 80 11 00 20 00 00 10: 00 f0 bf fd 01 de 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 4a 14 21 92 30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 00 00 也就是说基地址寄存器0为0xfdb...

by wucongdonglai - 驱动开发 - 2011-01-21 09:30:44 阅读(3425) 回复(2)

io端口,io内存, 物理地址, 虚拟地址 几乎每一种外设都是通过读写设备上的寄存器来进行的。外设寄存器也称为“I/O端口”, 通常包括:控制寄存器、状态寄存器和数据寄存器三大类, 而且一个外设的寄存器通常被连续地编址。CPU对外设io端口物理地址的编址方式有两种: 一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采用哪一种则取决于CPU的体系结构。   有些体系结构的CPU(如,PowerPC、...

by embededgood - Linux文档专区 - 2009-08-18 10:10:00 阅读(680) 回复(0)

CPU对外设端口物理地址的编址方式有两种:一种是io映射方式,另一种是内存映射方式。  Linux将基于io映射方式的和内存映射方式的io端口统称为io区域(io region)。   io region仍然是一种io资源,因此它仍然可以用resource结构类型来描述。   Linux管理io region:   1) request_region()   把一个给定区间的io端口分配给一个io设备。   2) check_region()   检查一个给定区间的io端口是否空闲,或者其中一些是否...

by newcch - Linux文档专区 - 2009-03-10 11:07:28 阅读(506) 回复(0)

[color="#000066"]io port memory io端口和io内存 使用I/O端口 I/O端口有点类似内存位置:可以用和访问内存芯片相同的电信号对它进行读写 。但这两者实际上并不一样;端口操作是直接对外设进行的,和内存相比更不灵活。而 且,有8位的端口,也有16位的端口和32位的端口,不能相互混淆。 因此,C语言程序必须调用不同的函数来访问大小不同的端口。Linux内核头文件 中(就在与体系结构相关的头文件中)定义了如下一些内联函...

by 沈阳冬天 - Linux文档专区 - 2008-12-11 16:39:05 阅读(1186) 回复(0)

内存映射分3个层次:
  • 开发板的层次(如:声卡,网卡和开发板相关的部分)
  • 最小系统的层次(系统必需的几个,如GPio,IRQ,MEMCTRL,UART)
  • 其他系统的层次(不影响开机的部分,如:usb,lcd,adc)

  开发板的mapio的初始化: 
  smdk2440_map_io函数中会调用:

  s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_...

by apple_guet - 移动操作系统 - 2011-12-20 09:44:10 阅读(441) 回复(0)

s3c2440io静态映射的分析 s3c2440io静态映射的分析 作者:creator [email=sz111@126.com]sz111@126.com[/email] 昨天移植uda1341声卡到2440,出现io错误,最后发现IIS没有做内存映射,但是当时奇怪为何GPio也没有做内存映射怎么就可以了呢?今天上午仔细分析了内核,发现内存的静态映射分几个部分在做,GPio部分已经做了。下面就是内存映射的部分的分析。 内存映射分3个层次,1.开发板的层次(如:声卡,网卡和...

by yuchuan2008 - Linux文档专区 - 2008-12-23 11:02:43 阅读(875) 回复(0)