PCI-e驱动

PCI-e

1.     I2C总线:一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息baidu

2.     PCI-e(peripheral componentinterconnet express)(外围组件互联):是一种高速串行计算机扩展总线标准。(baidu)

PCI-e比以前的标准有许多改进,包括更高的最大系统总线吞吐量,更低的I/O引脚数量和更小的物理尺寸,更好的总线性能缩放,更详细的错误检测和报告机制(高级错误报告,AER)和本机热插拔功能。

 

为什么需要驱动?驱动做的工作有哪些?

无论是复杂的大型服务器系统还是一个简单的流水灯单片机系统,都离不开驱动程序的身影,没有硬件的软件是空中楼阁,没有软件的硬件是一堆废铁,硬件是底层的基础,是所有软件得以运行的平台,代码最终会落实到硬件上的逻辑组合。

软件工程师需要一个没有硬件的纯软件的世界,硬件必须透明的提供给它,谁来完成这一任务?答案是驱动程序,驱动程序从字面解释就是驱动硬件设备行动。驱动直接与硬件打交道,按照硬件设备的具体形式,驱动设备的寄存器,完成设备的轮询、中断处理、DMA通信,最终让通信设备可以收发数据,让显示设备能够显示文字和画面,让音频设备可以完成声音的存储和播放。

可见,设备驱动程序充当了硬件与软件之间的枢纽,因此驱动程序的表现形式可能就是一些标准的、事先协定好的API函数,驱动工程师只需要去完成相应函数的填充,应用工程师只需要调用相应的接口完成相应的功能。

3.     驱动程序与应用程序的区别:

a.     应用程序以main开始,驱动程序没有main,它以一个模块初始化函数作为入口

b.     应用程序从头到尾执行一个任务,驱动程序完成初始化之后不再运行,等待系统调用。

c.      应用程序可是使用glibc等标准C函数库,驱动程序不能使用标准C库。

d.     驱动程序是内核的一部分,工作在内核态,应用程序工作在用户态。

4.     Linux驱动程序的功能

a.     对设备初始化和释放资源

b.     把数据从内核传送到硬件和从硬件读取数据

c.      读取应用程序传动给设备文件的数据和回送应用程序请求的数据

d.     检测和处理设备出现的错误(底层协议)

 

FPGA: (FieldProgrammable Gates Array) 现场可编程门系列,可编程的逻辑器件。

JTAG:(Joint Test Action Group)联合测试工作组:处理器常使用JTAG来实现调试/仿真功能,而且所有的FPGACPLD都利用JTAG来实现下载程序功能。


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页