![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux 内核
文章平均质量分 72
jkren08
这个作者很懒,什么都没留下…
展开
-
linux内核分析笔记----定时器和时间管理
首先要明白两个概念:系统定时器和动态定时器。周期性产生的事件都是有系统定时器驱动的,这里的系统定时器是一种可编程硬件芯片,它能以固定频率产生中断。该中断就是定时器中断,它所对应的中断处理程序负责更新系统时间,也负责执行需要周期行运行的任务。系统定时器和时钟中断处理程序是Linux系统内核管理机制中的中枢。动态定时器是用来推迟执行程序的工具。内核可以动态创建或销毁动态定时器。 内核必转载 2012-03-25 22:34:40 · 413 阅读 · 0 评论 -
如何在Android平台上使用USB Audio设备 .
需求:USB Headset插上去后,声音要从本地CODEC切换到USB Headset输出/输入。 上网搜了有关USB Audio Hotplug的东西,比较适用的资源如下: 1、Hotplugging USB audio devices (Howto) 题目看起来很吻合我们的问题,事实上并没有多少参考价值。其中脚本/etc/hotplug/usb/extigy或许可以捕捉到USB转载 2012-09-10 11:09:29 · 856 阅读 · 0 评论 -
Linux USB 鼠标驱动程序解析
USB 总线引出两个重要的链表! 一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)。 USB 设备驱动程序(usb device driver)和 USB 驱动程序(u转载 2012-06-21 11:28:38 · 515 阅读 · 0 评论 -
关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
disable_irq关闭中断并等待中断处理完后返回, 而disable_irq_nosync立即返回. 那么在中断处理程序中应该使用哪一个函数来关闭中断呢? 在中的按键驱动中, 使用disable_irq来关闭中断, 但是我在测试时进入中断后系统会死在中断处理程序, 而改为disable_irq_nosync则能正常退出中断处理程序.下面从内核代码来找一下原因: 先看一下disable_ir转载 2012-05-10 14:09:46 · 539 阅读 · 0 评论 -
Linux内核启动过程分析
1、Linux内核启动协议 阅读文档\linux-2.6.35\Documentation\x86\boot.txt 传统支持Image和zImage内核的启动装载内存布局(2.4以前的内核装载就是这样的布局): | | 0A0000 +------------------------+ | Reserved for BIO转载 2012-05-04 15:18:21 · 1343 阅读 · 0 评论 -
LINUX 输入子系统分析
Android sensor subsystem overview · Application Framework o Sensor Applications uses the Sensor application framework to get the sensor data. It communicates with C++ layer through sensor Java转载 2012-04-19 23:25:41 · 843 阅读 · 0 评论 -
Linux下spi驱动开发(2)
Linux下spi驱动开发之m25p10驱动测试 目标:在华清远见的FS_S5PC100平台上编写一个简单的spi驱动模块,在probe阶段实现对m25p10的ID号探测、flash擦除、flash状态读取、flash写入、flash读取等操作。代码已经经过测试,运行于2.6.35内核。理解下面代码需要参照m25p10的芯片手册。其实下面的代码和处理器没有太大关系,这也是spi子系统的分层特转载 2012-04-17 08:38:47 · 486 阅读 · 0 评论 -
Linux下spi驱动开发(1)
一、概述 基于子系统去开发驱动程序已经是linux内核中普遍的做法了。前面写过基于I2C子系统的驱动开发。本文介绍另外一种常用总线SPI的开发方法。SPI子系统的开发和I2C有很多的相似性,大家可以对比学习。本主题分为两个部分叙述,第一部分介绍基于SPI子系统开发的理论框架;第二部分以华清远见教学平台FS_S5PC100上的M25P10芯片为例(内核版本2.6.29),编写一个SPI驱动程序实例转载 2012-04-17 08:36:57 · 380 阅读 · 0 评论 -
Kobject overview
sysfs是kobject的表达,所以这里翻译了Documention下的kobjct.txt,并加上了一些自己的注释,这样基本就对kobject和sysfs有了一个比较深刻的理解,我们可以简单的将sysfs看成最bottom的操作,然后kobject的想关操作是架构在sysfs之上,再然后kobject和attribute所嵌入的结构体再构成上一层结构来操作kobject,最后就实现了kerne转载 2012-04-10 22:34:36 · 387 阅读 · 0 评论 -
linux2.6.32内核Suspend流程
Suspend流程 参考linux2.6.32 Suspend锁流程 Suspend&resume流程 具体看main.c(kernel/power);上层通过属性节点写命令,最终会调到此文件中的state_store函数。 state_store() { request_suspend_state(); } request_suspen转载 2012-04-09 21:31:34 · 438 阅读 · 0 评论 -
工作队列实现机制(一)
walle project android 2.2 and linux 2.6.32 一、工作项、工作队列和工作者线程 把推后执行的任务叫做工作(work),描述它的数据结构为work_struct,这些工作以队列结构组织成工作队列(workqueue),其数据结构为workqueue_struct,而工作线程就是负责执行工作队列中的工作。系统默认的工作者线程为events。转载 2012-03-25 22:37:09 · 458 阅读 · 0 评论 -
工作队列实现机制(二)
三、默认工作队列和工作者线程创建过程 系统默认的工作队列名称是:keventd_wq, 默认的工作者线程叫:events/n, 这里的n是处理器的编号, 每个处理器对应一个线程。比如,单处理器的系统只有events/0这样一个线程。而双处理器的系统就会多一个events/1线程。 默认的工作者线程会从多个地方得到被推后的工作。许多内核驱动程序都把它们的下半部交给默认的工作者线程去做。除转载 2012-03-25 22:37:59 · 681 阅读 · 0 评论 -
SDIO DRIVER
SDIO卡 SDIO卡是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备,目前根据SDIO协议的SPEC,SDIO接口支持的设备总类有蓝牙,网卡,电视卡等。 SDIO协议是由SD卡的协议演化升级而来的,很多地方保留了SD卡的读写协议,同时SDIO协议又在SD卡协议之上添加了CMD52和CMD53命令。由于这转载 2013-05-14 20:30:19 · 624 阅读 · 0 评论