当前位置: 首页 > 2017年4月发布的所有日志
  • 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, 驱动程序
  • Linux 驱动程序 /PROC 调试

    Linux 驱动程序 /PROC 调试

      内核调试的几种方法   内核自带的调试开关   CONFIG_DEBUG_KERNEL:      打开基本内核调试功能。 CONFIG_DEBUG_SLAB  :      内核进行自动检测内存空间泄露,方法极其暴力。 CONFIG_DEBUG_SPINLOCK:   内核将捕获对未初始化的自选锁的操作。 CONFIG_DEBUG_INFO :      构造包含GDB 调试信息的完整数 ...

    阅读全文
    作者:root | 分类:Linux kernrl, 驱动程序
  • Linux 驱动程序 简单字符驱动设备

    Linux 驱动程序 简单字符驱动设备

    scull 字符设备驱动程序的设备描述 字符设备驱动程序是分配一段内存,然后提供对这个设备的管理方式,我们通过它提供的操作来操纵字符驱动设备,本质上是一个我们分配的模拟内存来模拟驱动设备。   结构如下:   几个重要方法,我们最初只提供几个简单的接口函数。   read : 拷贝数据到应用程序空间。 ...

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