LDD读书笔记第十二章-PCI驱动程序

PCI接口

PCI的设计目标:

  • 更好的传输性能
  • 平台无关性
  • 简化往系统中添加删除外设的工作

更多关于PCI的内容查看PCI规范

PCI寻址

Linux支持PCI域(16位),每个PCI域可以有256个总线(8位)每个总线上32个设备(5位)每个设备8种功能(3位)。
在硬件级每个功能由16位地址来表示(没有域),在linux中因为添加了域每个功能应该用32位来表示。
PCI总线中I/O空间使用32位地址总线,而内存空间可通过32位或64位来访问。

点击查看大图
[阅读全文] »

LDD读书笔记第二章-构造和运行模块

模块的编译

编译模块时使用GNU make的扩展语法。

关于GNU make 扩展语法请看:http://lsec.cc.ac.cn/~xmwu/myfile/gnu_make.htm

obj-m  := <模块名>.o           假如要生成mymod.ko则命令为

1
obj-m := mymod.o

mymod.o 默认从mymod.c生成

<模块名>-objs := file1.o file2.o

如果要生成 mymod2.ko 并且 需要 f1.c和f2.c两个源文件。
则命令为

[阅读全文] »