free website counter

Mushsen's Blog


Git中基本操作

  前两天看王神面实习的简历,简历上面清晰地标出每个项目的tag似是一个很好的办法,既给面试官重点突出的感觉,也便于将面试中心集中,方便自己准备,而作为大型软件的开发,版本控制必不可少,将Git与SVN相关的东西做一个小总结。

Read More

Git操作中切换本地账户

  前段时间由于项目需要,一直往oschina上面的私有空间提交代码,懒得新建账户,就将本地的Git账户切换成了oschina上面团队的公共账号。今天在整Blog,才发现当时把本地的global设置给改了。而oschina和github,用的是一套机制。提交代码到github时,显示的不是自己账户提交,很不爽。翻了下资料,把本地的git设置给改了回来,留个备忘。

Read More

PCI Express基本概念

1. PCIe设备BAR空间的初始化:

   PCIe设备进行数据传输之前,系统软件使用DFS算法遍历并完成BAR0~BAR5寄存器初始化,即分配这些设备在PCI总线域的地址空间,之后,PCI设备可以使用PCI总线地址进行数据传递;BAR0~5寄存器保存的都是PCI设备的地址空间,x86处理器中,没有存储器域和PCI总线域地址空间的转换机制,两个域的地址相等,也是一种简单映射,地址隔离的概念仍然存在;假设在一个32位处理器中,其存储器域的0xF000-0000~0xF7FF-FFFF总共128M的物理地址空间与PCI总线的地址空间映射;当处理器访问这段存储器地址空间,HOST主桥认领这个存储器访问,并将其使用的物理地址空间转换为PCI总线地址空间,并与PCI总线地址空间0xF000-0000~0xF7FF-FFFF对应;

Read More

PCI基本概念

1. PCI体系结构:

  • PCI为局部总线,系统总线的延伸,用于连接外设;
  • PCI Express总线:PCIe总线;PCI-to-PCI桥:PCI桥;PCI Express-to-PCI桥:PCIe桥;Host-to-PCI主桥:HOST桥,也称为PCI主桥或者PCI总线控制器;
Read More

Linux Device Driver——PCI基础

1. PCI接口:

  • PCI总线通过使用比ISA更高的时钟频率,获得更好的性能;时钟设置运行在25或者33MHz、66MHz甚至133MHz;
  • PCI对接口板自动探测,没有跳线,并且在系统启动时自动配置;设备驱动必须能够存取设备中的配置信息以便完成初始化;
  • 每个PCI外设有一个总线号、一个设备号、一个功能号标识,PCI规范允许单个系统占用多达256根总线,每个总线占用32个设备,每个设备可以
  • 是一个最多具有8个功能的多功能卡,每个功能在硬件层次被一个16位地址标识;
  • 如果需要多个PCI总线,可以通过PCI桥实现,PCI系统的实现是树状分布;和PCI外设相关的16-位硬件地址,隐藏在struct pci_dev结构中;
  • PCI总线的I/O空间使用一个32位地址总线,而内存空间可以使用32位或者64位地址存取;系统启动时BIOS固件初始化PCI硬件,映射每个区到
  • 不同地址来避免冲突,被映射的地址可以从配置空间读出,因此Linux驱动不需要使用探测读取设备,根据配置寄存器信息安全存取相应硬件;
  • 每个设备的PCI(包括PCI Express设备)配置空间包含256Bytes,每个功能有4KB配置空间,配置空间排布标准化;配置空间的4个字节含有唯一
  • 功能ID,因此驱动可以识别设备;即通过物理寻址找到设备的配置寄存器,根据寄存器信息进行正常的I/O存取;
  • PCI接口标准相对ISA创新之处在于配置地址空间;
Read More
Load More…
分享按钮