- 博客(6)
- 收藏
- 关注
原创 Linux 驱动程序 USB控制
## USB 驱动程序### USB的一般化定义(概念来源于互联网资料)从1994年11月11日发表了USB V0.7版本以后,USB版本经历了多年的发展,已经发展为3.1版本,成为二十一世纪电脑中的标准扩展接口。当前(2016年)主板中主要是采用USB2.0和USB3.0接口,各USB版本间能很好的兼容。USB用一个4针(USB3.0标准为9针)插头作为标准插头,采用菊...
2017-05-10 09:14:50 1040
原创 linux 驱动程序 PCI控制
7.6.9 PCI程序 PCI驱动程序 一.理论 PCI总线的特点: (1)速度上快,时钟频率提高到33M,而且还为进一步把时钟频率提高到66MHZ、总线带宽提高到64位留下了余地。(2)对于地址的分配和设置,系统软件课自动设置,每块外设通过某种途径告诉系统该外设有几个存储区间和I/O地址区间,每个区间的大小以及本地地址。系统软件知道了总共有多少外设以及各种...
2017-05-10 09:13:07 685
原创 Linux 驱动程序 中断管理
7.6.8 内核中断## 中断处理首先,关于中断和异常的概念,可以参考我的博客,或者等后边的同学进行补充,我们不再这里赘述。我们尽可能的讨论一些进阶的东西。 ### /proc 接口 如图:我们可以在/proc/interrupts 中看到我们系统中安装的中断。 可以看到,我的电脑是有4个CPU ,其实是双核4线程,看来
2017-05-10 09:10:41 490
原创 linux 驱动程序 内核数据类型
## 内核的数据类型### 基本数据类型我们写了两个小的模块来测试实际数据类型和内存对齐的长度。内核基本数据类型C语言类型(int)char、short、int、long long在不同的平台上大小不变。long、ptr(指针)平台不同其大小不同,但二者的大小始终相同。char的符号问题:大多数平台上ch...
2017-05-10 09:05:08 1283
原创 linux 驱动程序 端口通信
IO 通信每种外设都能通过读写寄存器进行控制。大部分外设都有几个寄存器。不管在内存地址还是IO地址空间都是连续的。 ISA设备 IO端口方案 PCI设备 将寄存器映射到内存区段 IO寄存器和传统内存对比 尽管硬件寄存器和内存之间有很强的相似性, 程序员在存取 I/O 寄存器的时候还是要格外小心,避免被CPU(或者编译器)优化所迷惑, 因为它可能修改你期待的 I/O ...
2017-05-10 08:58:13 490
原创 linux 驱动程序 内存管理
内存分配这里不再讨论具体架构的内存管理问题,内存的具体结构可以参考我对内存关系分析的博客。我们主要来讨论下,一致的内存分配接口问题。kmalloc“include/linux/slab.h”```static __always_inline void *kmalloc(size_t size, gfp_t flags){if (__builtin_constan...
2017-05-10 08:56:20 464
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人