嵌入式Linux中文站

谈谈 Linux 内核驱动的编码风格

阅读(122)

最近在向Linux内核提交一些驱动程序,在提交的过程中,发现自己的代码离Linux内核的coding style要求还是差很多。当初自己对内核文档里的CodingStyle一文只是粗略的浏览,真正写代码的时候在很多细节上会照顾不周。不过, 在不遵守规则的 程序员 队 伍里,我并不是孤独的。如果去看drivers/staging下的代码,就会发现很多驱动程序都没有严格遵守内核的coding style,而且在很多驱动程序的TODO文件里,都会把checkpatch.pl fixes作为自己的目标之一(che

机制分析:基于简易的时间片轮转多道程序的 linux 内核

阅读(187)

内容说明 本次的内容,是一次 MOOC 课程的作业。具体的,是对一版 简易的时间片轮转多道程序的 linux 内核 进行分析,进而了解计算机、CPU 的工作机制。 作业声明 qianyizhou17 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC 课程 http://mooc.study.163.com/course/USTC-1000029000 致谢 感谢孟宇老师提供的 MOOC 课程:Linux 内核分析! 实验准备 环境 使用的是本次 MOOC 提供的实验楼的环境,可以直接访问 L

linux device tree源代码解析

阅读(187)

/ / Based on Linux v3 . 14 source code Linux设备树机制 ( Device Tree ) 一、描述 ARM Device Tree起源于OpenFirmware ( OF ) ,在过去的Linux中,arch / arm / plat - xxx和arch / arm / mach - xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info

Linux设备驱动模型-Device

阅读(152)

前言 Linux将所有的设备统一抽象为struct device结构, 同时将所有的驱动统一抽象为struct device_driver结构。这样设计之后就方便驱动开发工程师编写驱动,只需要将具体的设备包含struct device结构,具体的驱动包含struct device_driver结构。最终会调用device_register和driver_register将驱动和设备注册到系统,表现出来就是在sys目录的device和driver目录下。本小节先分析device结构,以及相关API,以及如何

从misc子系统到3+2+1设备识别驱动框架

阅读(208)

misc子系统在Linux中是一个非常简单的子系统,但是其清晰的框架结构非常适合用来研究设备识别模型。本文从misc子系统的使用出发,通过了解其机制来总结一套的设备识别的驱动框架,即使用 使用同一个驱动,向上提供多个设备文件接口,向下控制多个(相应的)设备 ,这就需要该驱动可以根据不同的设备文件来控制与之相应的设备。misc本身并不是一个针对某种具体设备的驱动框架, 而是一个管理设备的模型, 帮助我们设计出更通用的驱动 misc的使用 Linux 中有三大类设备:字符,网络,块设备,每一种设备又细分为很多

Linux驱动技术(三) _DMA编程

阅读(249)

DMA即Direct Memory Access,是一种允许外设直接存取内存数据而没有CPU参与的技术,当外设对于该块内存的读写完成之后,DMAC通过中断通知CPU,这种技术多用于对数据量和数据传输速度都有很高要求的外设控制,比如显示设备等。 DMA和Cache一致性 我们知道,为了提高系统

Linux Kernel suspend/resume 过程

阅读(184)

休眠/唤醒在嵌入式Linux中是非常重要的部分,嵌入式设备尽可能的进入休眠状 态来延长电池的续航时间.这篇文章就详细介绍一下Linux中休眠/唤醒是如何工作 的 参考文章:作者: zhangjiejing kzjeef#gmail.com Date: 2010-04-07, http://www.thinksrc.com 我的linux内核版本:3.0.31 对于休眠(suspend)的简单介绍 在Linux中,休眠主要分三个主要的步骤: 1、冻结用户态进程和内核态任务 2、调用注册的设备的suspend

Linux驱动技术(四) _异步通知技术

阅读(277)

异步通知的全称是信号驱动的异步IO,通过信号的方式,放期望获取的资源可用时,驱动会主动通知指定的应用程序,和应用层的信号相对应,这里使用的是信号 SIGIO 。操作步骤是 应用层程序将自己注册为接收来自设备文件的SIGIO信号的进程 驱动实现相应的接口,以期具有向所