linux
OLillian
这个作者很懒,什么都没留下…
展开
-
linux 内核定时器
内核定时器(2.6.23)一、定义:/include/linux/timer.hstruct timer_list {struct list_head entry;unsigned long expires;void (*function)(unsigned long);unsigned long data;struct tvec_t_base_s *base;#ifdef CONFIG_TIMER_STATSvoid *start_site;char start_comm[16];int start_pi转载 2010-09-27 15:18:00 · 1483 阅读 · 0 评论 -
HOWTO: Unpack, Edit, and Re-Pack Boot Images
HOWTO: Unpack, Edit, and Re-Pack Boot ImagesSeveral people have already figured out the details on their own, but I have gotten requests to do a more comprehensive tutorial on how the boot and recov转载 2012-04-10 10:32:47 · 654 阅读 · 0 评论 -
Linux SCSI 子系统剖析
GNU/Linux 和 SCSI 是很好的一个组合,因为二者在各自的环境中具有类似的特征。GNU/Linux 是一种安全可靠的操作系统,可以不间断地运行。SCSI 适合于可靠和高性能存储。二者都是开源的。您可以下载和查阅 International Committee on Information Technology Standards (INCITS) T10 Technical Commit转载 2012-04-24 13:27:56 · 592 阅读 · 0 评论 -
鸟哥私房菜 VI/VIM 学习
http://linux.vbird.org/linux_basic/0310vi.php原创 2012-04-28 14:37:34 · 702 阅读 · 0 评论 -
Linux ALSA声卡驱动之三:PCM设备的创建
1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些脉冲的幅值按一定的精度进行量化,这些量化后的数值被连续地输出、传输、处理或转载 2012-07-16 15:45:07 · 1019 阅读 · 0 评论 -
Linux ALSA声卡驱动之一:ALSA架构简介
一. 概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,转载 2012-07-16 15:42:12 · 791 阅读 · 0 评论 -
Linux ALSA声卡驱动之二:声卡的创建
1. struct snd_card 1.1. snd_card是什么snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为如此,本节中,我们也从 struct cnd_card开始吧。 1.2. snd_c转载 2012-07-16 15:43:39 · 930 阅读 · 0 评论 -
Linux ALSA声卡驱动之四:Control设备的创建
Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的。 ALSA已经为AC97定义了完整的控制接口模型,如果你的Codec芯片只支持AC97转载 2012-07-16 15:46:43 · 1098 阅读 · 1 评论 -
Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性: Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复,例如,仅是wm8731的驱动,当时Lin转载 2012-07-17 11:05:47 · 756 阅读 · 0 评论 -
linux USB架构
意为"通用串行总线"。是由Compaq(康柏)、DEC、IBM、Intel、NEC、微软以及Northern Telecom(北方电讯)等公司于1994年11月共同提出的,主要目的就是为了解决接口标准太多的弊端。USB使用一个4针插头作为标准插头,并通过这个标准接头,采用菊花瓣形式把所有外设连接起来,它采用串行方式传输数据,目前最大数据传输率为12Mbps, 支持多数据流和多个设备并行操作,允许外转载 2012-09-29 09:52:43 · 1203 阅读 · 0 评论 -
Linux下spi驱动开发
作者:刘洪涛,华清远见嵌入式学院讲师。一、概述基于子系统去开发驱动程序已经是linux内核中普遍的做法了。前面写过基于I2C子系统的驱动开发。本文介绍另外一种常用总线SPI的开发方法。SPI子系统的开发和I2C有很多的相似性,大家可以对比学习。本主题分为两个部分叙述,第一部分介绍基于SPI子系统开发的理论框架;第二部分以华清远见教学平台FS_S5PC100上的M25P10芯片为例(内核版本转载 2012-09-14 11:25:43 · 909 阅读 · 0 评论 -
android休眠与唤醒驱动流程分析
在pm_suspend()函数中,enter_state()函数被调用,从而进入标准linux休眠过程。int pm_suspend(suspend_state_t state){if (state > PM_SUSPEND_ON && state return enter_state(state);return -EINVAL;} 在enter_state()函数转载 2012-10-30 11:36:31 · 1308 阅读 · 0 评论 -
linux power management
http://www.linuxjournal.com/article/6699?page=0,0linux power management转载 2012-10-26 13:33:05 · 766 阅读 · 0 评论 -
Linux内存管理 一
轉載地址:http://www.kerneltravel.net/journal/v/mem.htm摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的转载 2012-11-13 11:41:19 · 979 阅读 · 0 评论 -
Linux:HDMI驅動之HPD
HPD(Hot Plug Detection),在HDMI的一对联接中,为热插拔的实现而设计的。简单地说,当发送端接入接受端时,接受端会回应HPD信号给发送端,进而发送端会启动DDC通道,而读取接受端EDID的信息,然后进行HDCP的交互,如果双方认证成功,则视频、音频正常工作,否则联接失败,不同系统会有不同的处理。 例如,如果EDID信息不支持HDMI,则发送端只发送视频信息,而没有音转载 2013-03-19 15:41:25 · 3733 阅读 · 0 评论 -
Linux:HDMI驅動之EDID
HDMI(HighDefinitionMultimediaInterface),作为新一代数字多媒体接口,能够传输高速率无压缩的数字音频、视频数据,HDMl1.2像素时钟可达165MHz,数据速率达到4.95Gbps,而HDMl1.3像素时钟则高达340MHz,数据速率达到10.2Gbps。目前高清1080p的数据带宽是2.2Gbps,HDMI完全可以用在高清图像传输中。事实上,目前高清图像传输也转载 2013-03-19 15:43:08 · 4325 阅读 · 0 评论 -
探本溯源——深入领略Linux内核绝美风光之系统启动篇(一)
从拿到Linux3.1.1版内核源码并搭建好阅读环境开始,到现在大约已经徘徊了两个多月的时间,期间google了大大小小的文章,才刚刚理清了些许思路并找到了阅读的切入口。对于内核初学者来说一个好的指导比什么都重要,有关Linux内核学习的方法论可以参考fudan_abc写的Linux内核修炼之道,作者以其深厚的内核功底加上诙谐幽默的文字对读者娓娓道来,这样的感染力使得我几乎是一口气不断的看完了整个转载 2012-03-21 16:52:05 · 1056 阅读 · 0 评论 -
linux USB
轉:http://blog.csdn.net/fudan_abc/article/details/1787611转载 2012-04-06 09:30:53 · 560 阅读 · 0 评论 -
Linux 内核启动中的驱动初始化顺序
Linux内核为不同驱动的加载顺序定义不同的优先级,见下面的宏: include/linux/init.h #define pure_initcall(fn) __define_initcall("0",fn,1)#define core_initcall(fn) __define_initcall("1",fn,1)#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)#define postcore_initcall(fn)转载 2010-09-29 10:04:00 · 1081 阅读 · 0 评论 -
linux- main.c中的初始化
main.c中的初始化 head.s在最后部分调用main.c中的start_kernel()函数,从而把控制权交给了它。所以启动程序从start_kernel()函数继续执行。这个函数是main.c乃至整个操作系统初始化的最重要的函数,一旦它执行完了,整个操作系统的初始化也就完成了。如前所述,计算机在执行start_kernel()前处已经进入了386的保护模式,设立了中断向量表并部分初始化了其中的几项,建立了段和页机制,设立了九个段,把线性空间中用于存放系统数据和代码的地址映射到了物理空间的头4MB,转载 2010-09-28 10:54:00 · 2585 阅读 · 0 评论 -
linux -- _setup宏介绍
内核组件用__setup宏来注册关键字及相关联的处理函数,__setup宏在include/linux/init.h中定义,其原型如下:__setup(string, function_handler)其中:string是关键字,function_handler是关联处理函数。__setup只是告诉内核在启动时输入串中含有string时,内核要去执行function_handler。String必须以“=”符结束以使parse_args更方便解析。紧随“=”后的任何文本都会作为输入传给 function_转载 2010-09-28 14:33:00 · 1322 阅读 · 0 评论 -
linux 输入子系统 input_dev
<br />Linux 系统提供了input子系统,按键、触摸屏、键盘、鼠标等输入都可以利用input接口函数来实现设备驱动,因此,12.1~12.2节的按键和触摸屏设备驱动都可以作为input设备驱动而实现。<br />在Linux 内核中,input设备用input_dev 结构 体描述,使用input子系统实现输入设备驱动的时候,驱动的核心工作是向系统报告按键、触摸屏、键盘、鼠标等输入事件(event,通过input_event结构 体描述),不再需要关心文件操作接口,因为input子系统已经完成了文转载 2010-09-28 16:41:00 · 956 阅读 · 0 评论 -
输入子系统 - event层分析
#####################################################################################################早前曾研究了一下输入子系统的原理,给人的感觉是输入子系统很复杂.但其实内核开发者在这方面已经做得很完善了,输入子系统虽然错综复杂,但是只要我们领会了输入子系统的一些设计思想后,我们要使用它并非难事.以下以内核自带的gpio_keys驱动为例,介绍输入子系统的使用.主要的原因是gpio_keys驱动比较简单易懂转载 2010-09-28 17:19:00 · 661 阅读 · 0 评论 -
內核調用__init函數的順序
參見include/linux/init.h和vmlinux.lds 1) 所有標識為__init的函數在鏈接的時候都放在.init.text這個區段內, 在這個區段中,函數的擺放順序是和鏈接的順序有關的,是不確定的。 2) 所有的__init函數在區段.initcall.init中還保存了一份函數指針, 在初始化時內核會通過這些函數指針調用這些__init函數指針, 並在整個初始化完成後,釋放整個init區段(包括.init.text,.initcall.init等), 注意,這些函數在內核初始化過程中的转载 2010-09-28 09:35:00 · 737 阅读 · 0 评论 -
理解linux内核
http://blog.csdn.net/unbutun/archive/2010/07/30/5777584.aspxhttp://blog.csdn.net/unbutun/archive/2010/07/30/5777584.aspx转载 2010-12-13 14:13:00 · 505 阅读 · 0 评论 -
linux内核怎样启动android
<br /> 对Android感兴趣的朋友都知道,Android系统是建立在Linux内核之上的。那么Linux内核和Android什么关系?Linux内核是怎样引导起Android呢?本文进行简单的描述。<br /> Android虽然建立在Linux内核之上,但是他对内核进行了一些扩展,增加了一些驱动。比如Binder,loger等等驱动。可以拿Android内核代码和其Baseline版本进行对比。可以看到Android对Linux内核的所有扩展。<br /> 熟悉Linux启动的朋友转载 2011-02-08 10:50:00 · 1042 阅读 · 0 评论 -
Unix/Linux环境下创建和使用静/动态库
库的作用 大体上库的存在,有两方面的原因,一是代码的复用,二是声明和实现的分离。将功能相近的使用模块封装成库,使代码的复用、管理和分发变得简单了许多,例如著名的开源图形库ncurses,你可以自行编译,更可以直接使用已经编译好的现成的库文件。另外,由于库是二进制文件,某种意义上讲,将功能的实现部分隐藏了起来,这就为商业代码的保护提供了一种方式。 库文件按照链接方式和时机,可以分为动态库和静态库,下面分别介绍它们在Linux环境中的创建和使用方法。静态链接库 静态库是指在程序的链接阶段,其中被用到的代码转载 2011-04-01 11:52:00 · 1054 阅读 · 0 评论 -
linux 中的动态库加载
在Linux中可以动态加载库,其使用方法如下:<br />1. 先生成一个动态库libtest.so<br />/* test.c */<br />#include <stdio.h><br />#include <stdio.h><br />void test1(int no)<br />{<br /> printf("*****************************************/n");<br /> printf("This is test1, the number转载 2011-03-31 11:18:00 · 843 阅读 · 0 评论 -
Linux input 三
Linux 的 Input Device 是重要的一個 subsystem,在進行實例介紹前,先大略了解一下相關的 API。Linux Input Deviceinput.c是Linux的”input”驅動程式,主要支援鍵盤與滑鼠的輸入;input.c介面有趣的地方是採用了事件转载 2011-07-08 16:09:04 · 577 阅读 · 0 评论 -
ALSA之CODEC分析 一
ALSA: Advanced Linux Sound Architecture,它包括内核驱动集合、API库和工具。用户层程序直接调用libsound的API库,不需要打开设备等操作,因此编程者不需要了解底层细节。这里不分析ALSA的核心代码core,也不阐述如何在用户层进行声卡编程,仅仅简要介绍在ALSA的架构上添加一个声卡驱动,即上图中的Sound Driver。其实文档《wirte an转载 2011-12-23 14:50:21 · 7069 阅读 · 0 评论 -
Alsa-Audio 二
ASOC (ALSA system on chip) // 主要为嵌入式系统专门开发的sound管理体系结构[luther.gliethttp].Digital Audio Interface (DAI) types/* SoC machine */struct snd_soc_machine { // snd_soc_machi转载 2011-12-23 14:53:21 · 1321 阅读 · 0 评论 -
recovery.img与boot.img对比分析
今天对比分析了一下recovery.img和boot.img的结构,从中粗略知道了Android手机中的恢复模式是怎么回事。以下是文件结构的对比图:从中我们知道:(1)recovery.img其实已经是进入了Linux系统。(2)recovery.img为了具有恢复系统的能力,比普通的boot.img目录结构中: 1、多了/res/image转载 2012-02-01 17:05:17 · 955 阅读 · 0 评论 -
linux内核讲解链接
linux内核很好的讲解链接: http://blog.csdn.net/yunsongice/article/details/6171332csdn:http://blog.csdn.net/yunsongice转载 2012-02-15 16:01:06 · 852 阅读 · 0 评论 -
HDMI之InfoFrame
鏈接:http://blog.csdn.net/yyao1024/article/details/6398727AVI/AUDIO InfoFrame属于辅助数据类别。一个InfoFrame打包仅仅能够载送一个InfoFrame。而且,依据HDMI的规范,其大小被限制在30个字节加上一个检验和(CheckSum)字节。不论图像是YCbCr或RGB,传送它非常重要,至少每两帧图像转载 2013-04-28 17:12:02 · 5352 阅读 · 0 评论