DroidPhone的专栏

欢迎各位大虾交流,本人联系方式:droid.phx@gmail.com

已知二叉树的前序遍历和中序遍历,如何得到它的后序遍历?

对一颗二叉树进行遍历,我们可以采取3中顺序进行遍历,分别是前序遍历、中序遍历合后序遍历。这三种方式是以访问父节点的顺序来进行命名的。假设父节点是N,左节点是L,右节点是R,那么对应的访问遍历顺序如下:

2014-07-23 17:28:26

阅读数 7119

评论数 4

Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化

我们知道,SPI数据传输可以有两种方式:同步方式和异步方式。所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回。而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码...

2014-04-28 21:00:55

阅读数 21741

评论数 8

Linux SPI总线和设备驱动架构之三:SPI控制器驱动

通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动、通用接口层和控制器驱动三大部分。其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能: 1.    申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等; 2.    配置S...

2014-04-23 23:03:48

阅读数 17844

评论数 3

Linux SPI总线和设备驱动架构之二:SPI通用接口层

通过上一篇文章的介绍,我们知道,SPI通用jie k

2014-04-18 17:02:38

阅读数 20698

评论数 5

Linux SPI总线和设备驱动架构之一:系统概述

/*****************************************************************************************************/ 声明:本博内容均由http://blog.csdn.net/droidphone原创,转...

2014-04-12 08:36:45

阅读数 26766

评论数 5

ALSA声卡驱动中的DAPM详解之七:dapm事件机制(dapm event)

前面的六篇文章,我们已经讨论了dapm关于动态电源管理的有关知识,包括widget的创建和初始化,widget之间的连接以及widget的上下电顺序等等。本章我们准备讨论dapm框架中的另一个机制:事件机制。通过dapm事件机制,widget可以对它所关心的dapm事件做出反应,这种机制对于扩充w...

2013-11-09 01:05:58

阅读数 18669

评论数 10

ALSA声卡驱动中的DAPM详解之六:精髓所在,牵一发而动全身

设计dapm的主要目的之一,就是希望声卡上的各种部件的电源按需分配,需要的就上电,不需要的就下电,使得整个音频系统总是处于最小的耗电状态,最主要的就是,这一切对用户空间的应用程序是透明的,也就是说,用户空间的应用程序无需关心那个部件何时需要电源,它只要按需要设定好音频路径,播放音频数据,暂停或停止...

2013-11-04 23:20:41

阅读数 20069

评论数 10

ALSA声卡驱动中的DAPM详解之五:建立widget之间的连接关系

前面我们主要着重于codec、platform、machine驱动程序中如何使用和建立dapm所需要的widget,route,这些是音频驱动开发人员必须要了解的内容,经过前几章的介绍,我们应该知道如何在alsa音频驱动的3大部分(codec、platform、machine)中,按照所使用的音频...

2013-11-04 21:25:32

阅读数 24964

评论数 6

ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route

前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path。之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开始,我们要从代码入手,分析dapm的详细工作原理: 如何注册widget如何连接两个widge...

2013-11-01 22:41:41

阅读数 20703

评论数 3

ALSA声卡驱动中的DAPM详解之三:如何定义各种widget

/*****************************************************************************************************/ 声明:本博内容均由http://blog.csdn.net/droidphone原创,转载...

2013-10-24 21:01:12

阅读数 23584

评论数 11

ALSA声卡驱动中的DAPM详解之二:widget-具备路径和电源管理信息的kcontrol

上一篇文章中,我们介绍了音频驱动中对基本控制单元的封装:kcontrol。利用kcontrol,我们可以完成对音频系统中的mixer,mux,音量控制,音效控制,以及各种开关量的控制,通过对各种kcontrol的控制,使得音频硬件能够按照我们预想的结果进行工作。同时我们可以看到,kcontrol还...

2013-10-23 20:31:07

阅读数 23721

评论数 8

ALSA声卡驱动中的DAPM详解之一:kcontrol

DAPM是Dynamic Audio Power Management的缩写,直译过来就是动态音频电源管理的意思,DAPM是为了使基于linux的移动设备上的音频子系统,在任何时候都工作在最小功耗状态下。DAPM对用户空间的应用程序来说是透明的,所有与电源相关的开关都在ASoc core中完成。用...

2013-10-18 15:19:50

阅读数 37985

评论数 17

Linux动态频率调节系统CPUFreq之三:governor

在上一篇文章中,介绍了cpufreq的core层,core提供了cpufreq系统的初始化,公共数据结构的建立以及对cpufreq中其它子部件提供注册功能。core的最核心功能是对policy的管理,一个policy通过cpufreq_policy结构中的governor字段,和某个governo...

2013-07-30 12:48:02

阅读数 18701

评论数 8

Linux动态频率调节系统CPUFreq之二:核心(core)架构与API

上一节中,我们大致地讲解了一下CPUFreq在用户空间的sysfs接口和它的几个重要的数据结构,同时也提到,CPUFreq子系统把一些公共的代码逻辑组织在一起,构成了CPUFreq的核心部分,这些公共逻辑向CPUFreq和其它内核模块提供了必要的API,像cpufreq_governor、cpuf...

2013-07-20 19:00:59

阅读数 19521

评论数 6

Linux动态频率调节系统CPUFreq之一:概述

随着技术的发展,我们对CPU的处理能力提出了越来越高的需求,芯片厂家也对制造工艺不断地提升。现在的主流PC处理器的主频已经在3GHz左右,就算是智能手机的处理器也已经可以工作在1.5GHz以上,可是我们并不是时时刻刻都需要让CPU工作在最高的主频上,尤其是移动设备和笔记本电脑,大部分时间里,CPU...

2013-07-17 21:43:50

阅读数 33731

评论数 10

Linux输入子系统:多点触控协议 -- multi-touch-protocol.txt

Multi-touch (MT) Protocol -------------------------          Copyright(C) 2009-2010 Henrik Rydberg  简介 ------------     为了发挥新近的多点触摸和多用户设备的强大功能,为...

2012-12-25 19:30:04

阅读数 25276

评论数 6

Linux输入子系统:输入设备编程指南 -- input-programming.txt

输入设备编程指南(Programming input drivers) ~~~~~~~~~~~~~~~~~~~~~~~~~ 1. 新建一个输入设备驱动程序 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.0 一个最简单的例子 ~~~~~~~~~~~~~~...

2012-12-25 10:14:13

阅读数 9057

评论数 2

Linux输入子系统:事件的编码 -- event-codes.txt

输入系统协议用类型types和编码codecs来表示输入设备的值并用此来通知用户空间的应用程序。这篇文档对这些类型和编码进行了说明并且指出什么时候和如何使用这些类型和编码。  一个单一的硬件事件可以产生多个输入事件,每个输入事件包含一个单一数据项的新的数据值。EV_SYN是一个特别的事件类型,它...

2012-12-25 09:57:39

阅读数 23065

评论数 2

Linux输入子系统:input.txt

Linux Input drivers v1.0                 (c) 1999-2001 Vojtech Pavlik                                  Sponsored by SuSE -------------------------...

2012-12-25 09:37:12

阅读数 10050

评论数 1

Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)

在前面章节的讨论中,我们一直基于一个假设:Linux中的时钟事件都是由一个周期时钟提供,不管系统中的clock_event_device是工作于周期触发模式,还是工作于单触发模式,也不管定时器系统是工作于低分辨率模式,还是高精度模式,内核都竭尽所能,用不同的方式提供周期时钟,以产生定期的tick事...

2012-10-27 16:01:44

阅读数 23496

评论数 10

提示
确定要删除当前文章?
取消 删除
关闭
关闭