GPIB 我们研究的第一个总线是IEEE 488总线,较为熟悉的称谓是GPIB(通用接口总线).GPIB是一种在业界已经得到证明的专为仪器控制应用设计的总线.GPIB在过去30年来一直是鲁棒的.可靠的通信总线,由于其低时延和可接受的带宽的特点,GPIB目前仍然是仪器控制中最常见的选择.GPIB的优势在于为业界广泛采纳,并有超过10,000种仪器模型带有GPIB接口. 由于其最大带宽为1.8 MB/s,GPIB最为适合与分立仪器通信,并对分立仪器进行控制.最新的高速版HS488将带宽提高到8 MB…
PCI总线作为处理器系统的局部总线,主要目的是为了连接外部设备,而不是作为处理器的系统总线连接Cache和主存储器.但是PCI总线.系统总线和处理器体系结构之间依然存在着紧密的联系. PCI总线作为系统总线的延伸,其设计考虑了许多与处理器相关的内容,如处理器的Cache共享一致性和数据完整性,以及如何与处理器进行数据交换等一系列内容.其中Cache共享一致性和数据完整性是现代处理器局部总线的设计的重点和难点,也是本书将重点讲述的主题之一. 独立地研究PCI总线并不可取,因为PCI总线仅是处理器系…
机器采样: [root@ht24 hwdata]# cat /etc/redhat-release ; uname -r CentOS Linux release 7.9.2009 (Core) 3.10.0-1160.42.2.el7.x86_64 lspci 查询pci设备信息,这些PCI设备名…
一个简短的引论 它给这一章总线架构的高级概述 集中访问讨论Peripheral Component Interconnect(PCI,外围组件互连)外设内核函数 PCI公交车是最好的支持的内核总线 本章主要介绍PCI驱动程序假设寻找其硬件和获得对它的訪问 本章也会介绍ISA总线 PCI接口 PCI是一组完整的规范,定义了计算机的各个不同部分之间应该怎样交互 PCI规范涵盖了与计算机接口相关的大部分问题 PCI架构被设计为ISA标准的替代品,有三个主要目标 获得在计算机和外设之间数据传输时更好的性…
学习应该是一个先把问题简单化,在把问题复杂化的过程.一开始就着手处理复杂的问题,难免让人有心惊胆颤,捉襟见肘的感觉.读Linux网卡驱动也是一 样.那长长的源码夹杂着那些我们陌生的变量和符号,望而生畏便是理所当然的了.不要担心,事情总有解决的办法,先把一些我们管不着的代码切割出去,留下必 须的部分,把框架掌握了,哪其他的事情自然就水到渠成了,这是笔者的心得. 一般在使用的Linux网卡驱动代码动辄3000行左右,这个代码量以及它所表达出来的知识量无疑是庞大的,我们有没有办法缩短一下这个代码量,使…
我们已经设计了一个基于qemu的watchdog了.下一步工作就是创建一个含有我们的watchdog的虚拟计算机器了. 准备工作: 1. 使用virt-manager或者virsh创建一个虚拟机器. 2. 并安装一个操作系统.我选择了ubuntu12.04 3. 保存这个虚拟机的镜像. 为虚拟机器创建一个网络 比较流行的网络可以是bridge网络,macvtap网络,和NAT网络.当然还有一些高级的,open-vswitch等等. 为了将问题简单化,我们将利用libvirt的default ne…
由Kconfig这张地图的分布来看,PCI这块儿的代码应该分布在两个地方,drivers/pci和arch/i386/pci,两岸三地都属于一个中国,不管是drivers/pci那儿的,还是arch/i386/pci那儿的,也都只属于一个PCI子系统,本着一个中国的原则,咱们要统筹的全面的考察分析位于两个地方的代码,于是,这些远远突破了五位数的代码左看右看横看竖看都显得那么的阴森恐怖,不过人家咋说也是整个一PCI子系统,就像走在T台上的芙蓉姐姐和杨二车那姆一样,看起来恐怖但也是很有内涵的,岂能够…
一.PCI PCI接口分为32bit和64bit两种,32bit就是一般台式机使用的普通的pci接口(图一.图三),64bit接口比32bit接口长一些一般只出现在服务器上(图四.图五).32bit和64bit都有5v和3.3v电压两种,5v电压的是PCI2.1标准的时钟频率为33MHz,3.3v电压的是PCI2.2标准以后出现的可以工作在66MHz的时钟频率上.不过现在一般来说,卡和插槽都做成可以同时兼容两种电压的版本,也都有防插错设计,只要能插上都是可以工作,不过工作在哪种时钟频率上就要分析…
一.PCI PCI接口分为32bit和64bit两种,32bit就是一般台式机使用的普通的pci接口(图一.图三),64bit接口比32bit接口长一些一般只出现在服务器上(图四.图五).32bit和64bit都有5v和3.3v电压两种,5v电压的是PCI2.1标准的时钟频率为33MHz,3.3v电压的是PCI2.2标准以后出现的可以工作在66MHz的时钟频率上.不过现在一般来说,卡和插槽都做成可以同时兼容两种电压的版本,也都有防插错设计,只要能插上都是可以工作,不过工作在哪种时钟频率上就要分析…
linux PCI设备初始化过程 start_kernel->rest_init 这个函数会启动一个核心线程0, 核心线程然后调用init -> do_basic_setup. 然后我们开始看下面的过程 void __init driver_init(void) { devices_init(); buses_init(); classes_init(); ...... platform_bus_init(); system_bus_init(); ...... } //在drivers/ba…