- 博客(27)
- 资源 (56)
- 收藏
- 关注
转载 理解printk函数
理解printk函数Printk函数是在开发驱动过程中经常用到的一个函数,作用就是在串口上输出内核的信息。这个常用的函数的执行过程未必大家都和清楚,下面的文章分析一下printk的执行过程,并说明printk函数的一些特点。 下面是printk的执行过程,重要的步骤有如下几个1. printk调用vprintk函数,首先是禁止抢占,并且关闭中断;2. 调用v
2013-11-29 16:17:43 2423
转载 linux clk模型
本模块是对平台(CPU 内部集成)的所有时钟源进行建模,提供对时钟源(clk)的操作接口。Clocking rate (Crystal/DPLL/ARM core): 26.0/332/500 MHz clk,clocksource, 锁相环(phase lock loops: pll.),多个时钟源,晶振,脉冲频率,时钟频率,晶振漂移,clk表示C
2013-11-28 17:33:12 3168
转载 Linux设备模型之tty驱动架构分析
Linux设备模型之tty驱动架构分析 一:前言Tty这个名称源于电传打字节的简称。在linux表示各种终端。终端通常都跟硬件相对应。比如对应于输入设备键盘鼠标。输出设备显示器的控制终端和串口终端.也有对应于不存在设备的pty驱动。在如此众多的终端模型之中,linux是怎么将它们统一建模的呢?这就是我们今天要讨论的问题.二:tty驱动概貌Tty架
2013-11-28 12:25:28 8396
转载 Linux中tty框架与uart框架之间的调用关系剖析
那就是来自用户空间的针对uart设备的操作意图是如何通过tty框架逐层调用到uart层的core驱动,进而又是如何调用到真实对应于设备的设备驱动的,本文中的对应设备驱动就是8250驱动,最近我想将这方面的内容搞清楚。在说明这一方面问题之前我们先要大致了解两个基本的框架结构,tty框架和uart框架。首先看看tty框架:在linux系统中,tty表示各种终端。终端通常都跟硬件
2013-11-27 19:09:02 1767
原创 printk打印到LCD
command_line="initrd=0x30800000,0x440000 root=/dev/ram init=/linuxrc console=tty0";这样就可以改变系统的控制台了. 还是在setup_arch函数中找到了以下代码,以后会用到的.#ifdef CONFIG_VT#if defined(CONFIG_VGA_CONSOLE) conswitchp = &
2013-11-27 18:46:22 3232 1
转载 Android之 BatteryService
电池的信息,电压,温度,充电状态等等,都是由BatteryService来提供的。BatteryService是跑在system_process当中,在系统初始化的时候启动,如下 在BatteryService.java中: Log.i(TAG, "Starting Battery Service."); BatteryService b
2013-11-22 10:59:51 1302
转载 ANDROID Porting系列十一、Power Management
介绍 wake_locksWake Locks类型探索Wake Lock例子PowerManager的类PM驱动注册驱动程序早期挂起 介绍Android支持其自己的电源(标准的Linux电源管理)设计的前提是的CPU不应该消耗功率,如果没有应用程序或服务需要电源。欲了解更多有关标准的Linux电源管理的信息,请参见Linux的电源管理支持http:/ / k
2013-11-21 16:44:32 1279
转载 Android linux的休眠和唤醒
1. Early suspend/ late resume 是android 添加的机制,用户关闭LCD, TS, Sensors等为了省电。可称之为浅度休眠2. Linux的Suspend/resume 仍然有效,可称之为深度休眠3. echo mem > sys/power/state 会触发early suspend, echo on > sys/power/s
2013-11-21 16:43:51 1402
转载 android电源管理
Android 的电源管理也是很重要的一部分。比如在待机的时候关掉不用的设备,timeout之后的屏幕和键盘背光的关闭,用户操作的时候该打开多少设备等等,这些都直接关系到产品的待机时间,以及用户体验。在网上可以找到一篇到处转载的关于power management的文章http://blog.csdn.net/hzdysymbol/archive/2009/03/19/4004791.aspx,不
2013-11-21 16:15:02 1343
转载 Android 电源管理——gotosleep和userActivity关注
一、Android power management应用层分析 Android提供了android.os.PowerManager类,该类用于控制设备的电源状态的切换. 该类对外有三个接口函数: 1、void goToSleep(long time); 强制设备进入Sleep状态 要注意权限问题。 2、
2013-11-21 15:50:50 8560
转载 android sensor
0. 总论本文希望分别从动态角度(应用程序进程)以及静态角度(框架体系架构)两方面来理解传感器系统。1. 上层应用从编写应用程序的角度来看,比较简单,大体分如下4步,便可得到一个传感器实时上报的数值并作处理,1) 得到传感器服务 getSystemService(SENSOR_SERVICE);得到一个SensorManager,用来管理分配调度处理Sen
2013-11-21 11:21:49 1457
转载 ALSA 驱动分析
目录1. Abstract2. Introduction3. 音频驱动框架介绍3.1 音频设备的注册3.2 音频驱动的注册3.2.1 Probe函数的调用3.2.2 Soc_probe函数4. 通常的使用流程的分析4.1.1 open过程介绍
2013-11-19 17:27:29 1842
转载 ALSA架构简介
ALSA (Advanced Linux Sound Architecture(高级Linux声音体系)的缩写)是为声卡提供驱动的Linux内核组件,以替代原先的OSS(开放声音系统)。ALSA除了像OSS那样提供一组内核驱动程序模块以外,还专门为简化应用程序的编写提供了相应的库函数,与OSS提供的基于ioctl的原始编程接口相比,ALSA函数库使用起来要更加方便一点。ALSA的主要特点如下:
2013-11-19 09:54:54 2057 1
转载 PCM data flow之一:概述
Linux kernel version:3.4.5SoC:Samsung exynosUserspace:tinyalsa音频驱动主要有三部分组成:1、 Platform:通常指某款SoC平台,如exynos、omap等等。Platform又可细分两部分:1.1、CPU DAI:在嵌入式系统里面通常指CPU的I2S、PCM总线接口,负责将音频数据从AIF FIFO搬运
2013-11-15 16:15:44 5540
转载 Linux ALSA声卡驱动之八:ASoC架构中的Platform
1. Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上,ASoC有把Platform驱动分为两个部分:snd_soc_plat
2013-11-15 15:13:39 1682
转载 Linux ALSA声卡驱动之七:ASoC架构中的Codec
1. Codec简介在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制,比如播放音乐,收听调频收音机,又或者接听电话时,音频信号在codec内的流通路线是不一样的对音频信号做出相应的
2013-11-15 15:12:41 1495
转载 Linux ALSA声卡驱动之六:ASoC架构中的Machine
前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的Platform和Codec驱动是不能工作的,它必须由Machine驱动把它们结
2013-11-15 15:12:01 1294
转载 Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性: Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复,例如,仅是wm8731的驱动,当时Lin
2013-11-15 15:11:28 1169
原创 Linux ALSA声卡驱动之四:Control设备的创建
Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的。 ALSA已经为AC97定义了完整的控制接口模型,如果你的Codec芯片只支持AC97
2013-11-15 15:10:35 1500
转载 Linux ALSA声卡驱动之三:PCM设备的创建
1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些脉冲的幅值按一定的精度进行量化,这些量化后的数值被连续地输出、传输、处理或
2013-11-15 15:07:31 1641
转载 Linux ALSA声卡驱动之二:声卡的创建
1. struct snd_card 1.1. snd_card是什么snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为如此,本节中,我们也从 struct cnd_card开始吧。 1.2. snd_c
2013-11-15 15:06:46 1371
转载 Linux ALSA声卡驱动之一:ALSA架构简介
一. 概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,
2013-11-15 15:06:05 1277
转载 应用层的poll 函数介绍
poll()函数:这个函数是某些Unix系统提供的用于执行与select()函数同等功能的函数,下面是这个函数的声明:#include int poll(struct pollfd fds[], nfds_t nfds, int timeout);参数说明:fds:一个struct pollfd结构类型的数组,用于存放需要检测其状态的Socket描述符;每当调用这个
2013-11-13 15:47:14 1204
转载 JellyBean的VSync与三级buffer的入门介绍(外文翻译)
天我们来探讨一些不同的,来研究一些对于所有人都很实用的一个话题:性能。大家可以看到JellyBean非常的快,在GalaxyNexus测试它可以感到它变成了一台全新的手机。滚动变得非常平滑和更快了,而且相应点击也变得高度敏感。另外,这些平滑的表现体现在了各个方面。 我不清楚你们是否都已经看到了这些改变,不过这些都很无趣呀,真正有趣的东西是——他们怎么做到这些的?这就是我们这里要探究的。因此
2013-11-05 18:00:07 1803
转载 Make menuconfig错误解决
Ubuntu 12.04下执行make menuconfig的时候报如下错误:www.linuxidc.com @www.linuxidc.com:~/work/linux_3.9.5/linux-3.9.5$ make menuconfigHOSTLD scripts/kconfig/mconfscripts/kconfig/mconf.o: In function `show_h
2013-11-04 17:09:24 1374
转载 GDB远程调试技术(应用层调试)
GDB调试器提供了两种不同的调试代理用于支持远程调试,即gdbserver方式和stub(插桩)方式。 这两种远程调试方式是有区别的。gdbserver本身的体积很小,能够在具有很少存储容量的目标系统上独立运行,因而非常适合于嵌入式环境;而stub方式则需要通过链接器把调试代理和要调试的程序链接成一个可执行的应用程序文件,如果程序运行在没有操作系统的机器上,那么stub需要提供异常和中断处
2013-11-04 15:17:46 2189
转载 Android kernel wakelock分析
1. Linux kernel wakelock 定义A wake_lock prevents the system from entering suspend or other low power states when active. If the type is set to WAKE_LOCK_SUSPEND, the wake_lock prevents a full system
2013-11-04 14:25:51 2312
Android核心分析
2011-12-25
佛山网通EPON的FTTH工程方案设计
2011-12-25
ARM---Cortex-A8处理器
2022-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人