• 软件测试实验报告

    软件测试实验报告

    软件测试实验报告: 实验一:内存泄露测试 /************************************************************************* > File Name: 1.cpp > Author: > Mail: > Created Time: 2017年05月19日 星期五 14时39分38秒 *************************************** ...

    阅读全文
    作者:root | 分类:C/C++, cpp
  • Linux 驱动程序 USB控制

    Linux 驱动程序  USB控制

    ## USB 驱动程序   ### USB的一般化定义 (概念来源于互联网资料)   从1994年11月11日发表了USB V0.7版本以后,USB版本经历了多年的发展,已经发展为3.1版本,成为二十一世纪电脑中的标准扩展接口。当前(2016年)主板中主要是采用USB2.0和USB3.0接口,各USB版本间能很好的兼容。USB用一个4针(USB3.0标准为 ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序
  • linux 驱动程序 PCI控制

    linux  驱动程序  PCI控制

    7.6.9 PCI程序   PCI驱动程序   一.理论        PCI总线的特点:   (1)速度上快,时钟频率提高到33M,而且还为进一步把时钟频率提高到66MHZ、总线带宽提高到64位留下了余地。(2)对于地址的分配和设置,系统软件课自动设置,每块外设通过某种途径告诉系统该外设有几个存储区间和I/O地址区间 ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序
  • Linux 驱动程序 中断管理

    Linux 驱动程序  中断管理

    中断处理 首先,关于中断和异常的概念,可以参考我的博客,或者等后边的同学进行补充,我们不再这里赘述。我们尽可能的讨论一些进阶的东西。   /proc 接口   如图:我们可以在/proc/interrupts 中看到我们系统中安装的中断。     可以看到,我的电脑是有4个CPU ,其实是双核4线程,看来内核是以 ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序
  • linux 驱动程序 内核数据类型

    linux 驱动程序 内核数据类型

    ## 内核的数据类型   ### 基本数据类型   我们写了两个小的模块来测试实际数据类型和内存对齐的长度。   内核基本数据类型       C语言类型(int)   char、short、int、long long在不同的平台上大小不变。   long、ptr(指针)平台不同其大小不同,但二者的大小始终相同。 &nbs ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序
  • linux 驱动程序 端口通信

    linux 驱动程序 端口通信

     IO 通信 每种外设都能通过读写寄存器进行控制。大部分外设都有几个寄存器。不管在内存地址还是IO地址空间都是连续的。 ISA设备    IO端口方案 PCI设备    将寄存器映射到内存区段   IO寄存器和传统内存对比 尽管硬件寄存器和内存之间有很强的相似性, 程序员在存取 I/O 寄存器的时候还是要格外小心,避免被CPU(或 ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序
  • linux 驱动程序 内存管理

    linux 驱动程序 内存管理

    内存分配   这里不再讨论具体架构的内存管理问题,内存的具体结构可以参考我对内存关系分析的博客。我们主要来讨论下,一致的内存分配接口问题。 kmalloc “include/linux/slab.h” static __always_inline void *kmalloc(size_t size, gfp_t flags) { if (__builtin_constant_p(size)) { if (size > KMALLOC_MA ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序
  • Linux 驱动程序 时间与延时

    Linux 驱动程序 时间与延时

    内核时间,延时与缓存   时间 内核通过定时器中断来跟踪时间流,记录每次时钟周期的滴答数,现代大多数默认时1000HZ ,每次开机后内核会初始化时间变量,然后每过一个时钟周期,变量加一,我们应当充分的信任内核不要随便去改动,除非有特殊的理由。 jiffies 变量用来存储时钟中断次数,是一个64位的无符号长整形 ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序
  • Linux 驱动程序 高级IO操作

    Linux 驱动程序 高级IO操作

    关于IO的高级话题   阻塞型IO –休眠   让一个进程进入休眠状态是很容易的,但是我们必须考虑如何不让他“一睡不醒”。其中有几个重要的规则我们必须遵守。   1.永远不要在原子的上下文中进入睡眠。尤其驱动程序不能在拥有自旋锁,seqlock或者RCU锁时休眠。如果我们已经禁止中断也不能使休眠。所以休 ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序
  • Linux 驱动程序 竞态与并发

    Linux 驱动程序 竞态与并发

    Concurrency and competition   并发与竞态 竞态 竞态条件(race condition),从多进程间通信的角度来讲,是指两个或多个进程对共享的数据进行读或写的操作时,最终的结果取决于这些进程的执行顺序。 并发 在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一 ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序