驱动程序module的工作流程主要分为四个部分:
1、 insmod module
2、 驱动module的初始化(初始化结束后即进入“潜伏”状态,直到有系统调用)
3、 当操作设备时,即有系统调用时,调用驱动module提供的各个服务函数
4、 rmmod module
一、 驱动程序的加载
Linux驱动程序分为两种形式:一种是直接编译进内核,另一种是编译成module...
分类:
其他好文 时间:
2014-09-05 16:11:51
阅读次数:
202
本文通过TQ2440开发板上可外接的GPIO口GPG14连接蜂鸣器,通过控制GPG14引脚的高低电平的输出和高低电平输出之间的时间间隔来使蜂鸣器发出不同的声音。1.打开S3C2440的底板原理图找到GPIO,如下图所示:使用万用表先找到VDD5V那个引脚,然后对照图找到GPG14,将蜂鸣器的正极连上..
分类:
其他好文 时间:
2014-08-31 10:37:21
阅读次数:
320
本篇文章的驱动程序实现的要点:一是实现了设备文件的自动创建,不用每次运行驱动都要使用mknod指令自动创建设备文件,本文通过udev(mdev)来实现设备文件的自动创建。二是对LED灯的控制是通过直接设置相关GPIO的二进制位来实现,本文使用linux系统中提供的对S3C2410GPIO的操..
分类:
其他好文 时间:
2014-08-31 10:37:01
阅读次数:
264
最近由于要做TQ2440(ARM9)开发板上的驱动实验,所以要在主机(ubuntu13.10)上针对前面的目标板上的系统内核进行交叉编译。一,内核的交叉编译:1.准备2.6.30.4版本的内核源码包,这个我使用的是天嵌公司提供的内核源码包linux-2.6.30.4_20121214.tar.bz2。2.打开终端输入指..
分类:
系统相关 时间:
2014-08-31 10:36:51
阅读次数:
335
在Linux中,休眠主要分三个主要的步骤:(1)冻结用户态进程和内核态任务;(2)调用注册的设备的suspend的回调函数;(3)按照注册顺序休眠核心设备和使CPU进入休眠态。 冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文。当这些进程被解冻的时候,他们是不知道自...
分类:
系统相关 时间:
2014-08-25 22:41:14
阅读次数:
443
1. Based on linux2.6.32, only for mem(SDR)2. 有兴趣请先参考阅读: 电源管理方案APM和ACPI比较.docLinux系统的休眠与唤醒简介.doc3. 本文先研究标准linux的休眠与唤醒,android对这部分的增改在另一篇文章中讨论4. 基于手上的一个...
分类:
系统相关 时间:
2014-08-25 22:40:55
阅读次数:
403
设备电源管理Copyright (c) 2010 Rafael J. Wysocki, Novell Inc.Copyright (c) 2010 Alan Sternstern@rowland.harvard.edu*****************************************...
分类:
系统相关 时间:
2014-08-25 22:39:34
阅读次数:
290
Run-time PM.每个device或者bus都会向run-time PM core注册3个callbackstruct dev_pm_ops {...int (*runtime_suspend)(struct device *dev);int (*runtime_resume)(struct ...
分类:
系统相关 时间:
2014-08-25 22:37:35
阅读次数:
425
三、pm_test属性文件读写int pm_test_level = TEST_NONE;static const char * const pm_tests[__TEST_AFTER_LAST] = { [TEST_NONE] = "none", [TEST_CORE] = "core", [TE...
分类:
系统相关 时间:
2014-08-25 22:35:05
阅读次数:
334
新版linux系统设备架构中关于电源管理方式的变更 based on linux-2.6.32一、设备模型各数据结构中电源管理的部分linux的设备模型通过诸多结构体来联合描述,如struct device,struct device_type,struct class, struct device...
分类:
系统相关 时间:
2014-08-25 22:34:14
阅读次数:
392