I2S总线数据通信

摘要: 引言 I2S(InterIC Sound Bus)是飞利浦公司针对数字音频设备之间的音频数据传输而制定的一种总线标准,采用沿独立的导线传输时钟与数据信号的设计,通过分离数据和时钟信号,避免了时差诱发的失真。I2S总线简单有效,可以有效提升输出数据的质量,在各种嵌入式音频系统中有广泛应用。但是在嵌入式音频系统设计中,并不是所有的MCU都支持I2S总线格式,再加上I2S还没有统一的接口标准,不同的... 阅读全文
posted @ 2012-04-03 23:16 alfredzzj 阅读(1952) 评论(1) 推荐(1)

request_irq()——注册中断服务

摘要: 在 2.4 内核和 2.6内核中都使用 request_irq() 函数来注册中断服务函数。在 2.4 内核中,需要包含的头文件是 #include <linux/sched.h> ,2.6 内核中需要包含的头文件则是 #include <linux/interrupt.h> 。函数原型如下: 2.4 内核 int request_irq (unsigned int irq, voi... 阅读全文
posted @ 2012-04-03 23:15 alfredzzj 阅读(11297) 评论(1) 推荐(1)

inux中的设备节点(/dev/*)

摘要: 设备管理是linux中比较基础的东西,但是由于Linux智能程度的越来越高,Udev的使用越来越广泛,使得越来越多的Linux新用户对 /dev 目录下的东西变得不再熟悉。有时候遇见问题就会变得抓狂 本文是我在写作《DIY 一个基于LFS的实用 Mini-LAPP 服务器》过程中整理的资料,拿出来与大家共享 Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可... 阅读全文
posted @ 2012-04-03 23:14 alfredzzj 阅读(1305) 评论(0) 推荐(0)

linux内核学习(15)内核编程基本功之内核同步与自旋锁spinlock_t

摘要: Pro-I、内核同步与自旋锁: 1、为什么要使用内核同步? 同步使得共享数据结构(相对应的代码块—临界区)可以有节奏的被读/写。主要是由于内核控制路径的改变,而且它的改变是随机的。那么我们所要做的就是要保证在任意时刻只有一个内核控制路径处于临界区。如果在单CPU的情况下,只需禁止内核抢占即可实现不会发生内核控制路线的改变,如果在多CPU的情况下,就需要用到自旋锁了,它可以保证多个CPU的运行轨... 阅读全文
posted @ 2012-04-03 23:12 alfredzzj 阅读(843) 评论(0) 推荐(0)

Android arm linux kernel启动流程

摘要: 虽然这里的Arm Linux kernel前面加上了Android,但实际上还是和普遍Arm linux kernel启动的过程一样的,这里只是结合一下Android的Makefile,讲一下bootimage生成的一个过程。这篇文档主要描述bootimage的构造,以及kernel真正执行前的解压过程。 在了解这些之前我们首先需要了解几个名词,这些名词定义在/Documentation/arm... 阅读全文
posted @ 2012-04-03 23:05 alfredzzj 阅读(1176) 评论(0) 推荐(1)

Android Camera系统

摘要: 1. Overview 1.1 物理架构 1.2 Android架构 2. CameraService 3. HAL 4. Overlay 5. Video for Linux 1. Overview 本文以Freescale IMX为例剖析camera摄像头的系统架构。 1.1 物理架构 硬件方面,camera系统分为主控制器和摄像头设备,功能上主要有取景,拍照和摄影。 ... 阅读全文
posted @ 2012-04-03 23:01 alfredzzj 阅读(1748) 评论(0) 推荐(0)

Linux driver model ----- platform

摘要: Platform Device and Drivers 从<linux/platform_device.h>我们可以了解Platform bus上面的驱动模型接口:platform_device,platform_driver。和PCI和USB这些大结构的总线不同,虚拟总线Platform bus使用最小结构来集成SOC processer上的各种外设,或者各种“legacy”之间的互联。 ... 阅读全文
posted @ 2012-04-03 22:59 alfredzzj 阅读(225) 评论(0) 推荐(0)

Android Build System ---- how to add your product and board config *.mk

摘要: 、Add board config 主要是定义和芯片相关的一些硬件配置 2、Product config主要配置一些产品提供的应用层功能 阅读全文
posted @ 2012-04-03 22:59 alfredzzj 阅读(228) 评论(0) 推荐(0)

stagefright框架(七)-Audio和Video的同步

摘要: 講完了audio和video的處理流程,接下來要看的是audio和video同步化(synchronization)的問題。OpenCORE的做法是設置一個主clock,而audio和video就分別以此作為輸出的依據。而在Stagefright中,audio的輸出是透過callback函式來驅動,video則根據audio的timestamp來做同步。以下是詳細的說明: (1) 當call... 阅读全文
posted @ 2012-04-03 22:57 alfredzzj 阅读(361) 评论(0) 推荐(0)

stagefright框架(六)-Audio Playback的流程

摘要: 到目前為止,我們都只著重在video處理的部分,對於audio卻隻字未提。這篇文章將會開始audio處理的流程。 Stagefright中關於audio的部分是交由AudioPlayer來處理,它是在AwesomePlayer::play_l中被建立的。 (1) 當上層應用程式要求播放影音時,AudioPlayer同時被建立出來,並且被啟動 status_t Awe... 阅读全文
posted @ 2012-04-03 22:56 alfredzzj 阅读(258) 评论(0) 推荐(0)

Android.mk for your own module

摘要: 里我们向Android中添加自己的模块,只涉及到.so/*.a/elf source的编译,以及如何将prebuilt file添加进工程。对于APK以及jar的source暂时没有仔细研究,要添加进去的话可以参照/pacakge和/framework里面的Android.mk ~~ 首先是可能用得到的基础知识,必须了解基础Makefile的语法,然后下面是Andriod用来编译相应模块使用的... 阅读全文
posted @ 2012-04-03 22:53 alfredzzj 阅读(1395) 评论(0) 推荐(0)

Android build sequence

摘要: 阅读全文
posted @ 2012-04-03 22:51 alfredzzj 阅读(240) 评论(0) 推荐(0)

Android Building System 总结

摘要: 花了一个月的时间来看Android Make,在网上总是看到某某大虾说一天就把Android Make overview了一下,不得不感叹现在大虾的强大和咱那连蜗牛都可以鄙视一下的进度。不过总算是彻底看清的Android make这个系统,不得不当初架构出这套机制的神人顶礼膜拜一下,虔诚地烧三柱高香,惊叹于神人的伟大的时候也越感自己的沧海一粟,苦海无边,回头无岸, 就加油滑水吧。 闲话就不多说... 阅读全文
posted @ 2012-04-03 22:49 alfredzzj 阅读(298) 评论(0) 推荐(0)

Linux Platform Device and Driver

摘要: 从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。 Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。 Linux platform driver机制和传统的device driver 机制(通过driver_register函数进行注... 阅读全文
posted @ 2012-04-03 22:44 alfredzzj 阅读(219) 评论(0) 推荐(0)

Android Display System --- Surface Flinger

摘要: Android Display System --- SurfaceFlinger SurfaceFlinger是Android multimedia的一个部分,在Android的实现中它是一个service,提供系统范围内的surface composer功能,它能够将各种应用程序的2D、3D surface进行组合。在具体讲SurfaceFlinger之前,我们先来看一下有关显示方面的... 阅读全文
posted @ 2012-04-03 22:04 alfredzzj 阅读(482) 评论(0) 推荐(0)

Sysfs overview

摘要: 最近想把驱动模型彻底整明白,翻译了几篇文档,这篇sysfs是Patrick Mochel 2003年写的,现在代码有些变化,不过可以让我们基本了解sysfs这个东西。发现个有趣的事情,一般看kernel的东西都会在文件头部看到作者的信息,然后google.com搜这些大侠的名字和相关模块都能找到相关的知识~~ sysfs说穿了是kernel和userspace打交道的一个借口,kernel的结构... 阅读全文
posted @ 2012-04-03 21:31 alfredzzj 阅读(953) 评论(1) 推荐(0)

stagefright + omx小结

摘要: 由 于stagefright和openmax运行在两个不同的进程上,所以他们之间的通讯要经过openBinder进行处理,对openBinder这一 块还没有了解,所以恕stagefright和openmax之间的通信不能做分析,还有就是本小结不考虑音频这一块,假设视频为MP4封装的AVC编码 文件. 最早看的是opencore,但opencore兼顾了多平台的移植性而过于复杂,后来就改看sta... 阅读全文
posted @ 2012-04-03 21:11 alfredzzj 阅读(2765) 评论(0) 推荐(0)