- 博客(95)
- 资源 (24)
- 收藏
- 关注
转载 录制中rampVolume参数溢出的问题
在录音的过程中发现在最前面的1s中总是会有“噗”的一声的噪音。一直在跟踪查找,发现是Android源码中有一处溢出造成的。stagefright中的AudioSource的void rampVolume(int32_t startFrame, int32_t rampDurationFrames, uint8_t *data, size_t bytes);函数(raise the volume f
2013-04-16 09:51:13
2584
转载 Android Audio代码分析=>Stream=>Strateg优先级
在看示例代码 testPlaybackHeadPositionIncrease 的时候,我们对 play 函数进行了研究。 不过,当时对 Android 中声音竞争策略相关的内容,并没有详细分析。 今天就以 AudioTrack 的播放为引子,来仔细看看 Anroid 中各种声音是以什么样的策略来竞争的。从 Java 侧类 AudioTrack 的 play 函数到函数 AudioFl
2012-09-04 16:47:44
8180
转载 android守护进程vold
一、进程启动和配置文件的分析 vold的全称是volume daemon。实际上是负责完成系统的CDROM, USB大容量存储,MMC卡等扩展存储的 挂载任务自动完成的守护进程。它提供的主要特点是支持这些存储外设的热插拔。在Android上的这个 vold系统和GNU/Linux的之间存在很大的差异,这里主要是分析Android上的vold系统的处理过程。 自And
2012-08-06 10:15:59
5550
原创 广播的发送与接收
======================发送广播======================================================================import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Cont
2012-07-18 15:19:19
2330
转载 linux android V4l2 的一些精品文章连接
在进行V4L2开发中,一般会用到以下的命令标志符:VIDIOC_REQBUFS:分配内存 VIDIOC_QUERYBUF:把VIDIOC_REQBUFS中分配的数据缓存转换成物理地址 VIDIOC_QUERYCAP:查询驱动功能 VIDIOC_ENUM_FMT:获取当前驱动支持的视频格式 VIDIOC_S_FMT:设置当前驱动的频捕获格式 VIDIOC_G_FMT:读取当前驱动的频捕获格式
2012-06-11 10:43:10
3006
转载 http://blog.youkuaiyun.com/sepnic/article/category/778492
http://blog.youkuaiyun.com/sepnic/article/category/778492
2012-05-11 16:32:20
2222
转载 VC++多线程编程-线程间的通信和线程同步
线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标
2012-03-20 10:46:59
7780
转载 开发工具 CppUnit
CppUnit 是个基于 LGPL 的开源项目,最初版本移植自 JUnit,是一个非常优秀的开源测试框架。CppUnit 和 JUnit 一样主要思想来源于极限编程(XProgramming)。主要功能就是对单元测试进行管理,并可进行自动化测试。这样描述可能没有让您体会到测试框架的强大威力,那您在开发过程中遇到下列问题吗?如果答案是肯定的,就应该学习使用这种技术:测试代码没有很好地维护而废
2012-03-19 17:45:02
2279
转载 浅谈测试驱动开发(TDD)
背景一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从。最近兴起的一些软件开发过程相关的技术,提供一些比较高效、实用的软件过程开发方法。其中比较基础、关键的一个技术就是测试驱动开发(Test-Driven Development)。虽然TDD光大于极限编程,但测试驱动开
2012-03-19 15:25:40
2073
转载 linux内核学习(15)内核编程基本功之内核同步与自旋锁spinlock_t
Pro-I、内核同步与自旋锁:1、为什么要使用内核同步?同步使得共享数据结构(相对应的代码块—临界区)可以有节奏的被读/写。主要是由于内核控制路径的改变,而且它的改变是随机的。那么我们所要做的就是要保证在任意时刻只有一个内核控制路径处于临界区。如果在单CPU的情况下,只需禁止内核抢占即可实现不会发生内核控制路线的改变,如果在多CPU的情况下,就需要用到自旋锁了,它可以保证多个CPU的运行轨
2012-03-19 15:04:20
2151
转载 在内核中创建文件 filp_open/sys_open
之前以为在内核中不能创建文件,其实不是这样子的,只要文件系统跑起来之后就可以像在用户空间一样操作文件. 用户空间 内核open() sys_open(), filp_open()close() sys_close(), filp_close()read()
2012-03-08 11:20:16
4021
转载 6410的GPIO使用
一,每组GPIO的数目: #define S3C64XX_GPIO_A_NR (8) #define S3C64XX_GPIO_B_NR (7) #define S3C64XX_GPIO_C_NR (8) #define S3C64XX_GPIO_D_NR (5) #define S3C64XX_GPIO_E_NR (
2012-02-21 16:56:09
2098
转载 get_ds, set_fs, get_fs函数的使用
在linux内核编程时,进行系统调用(如文件操作)时如果要访问用户空间的参数,可以用set_fs,get_ds等函数实现访问。get_ds获得kernel的内存访问地址范围(IA32是4GB),set_fs是设置当前的地址访问限制值,get_fs是取得当前的地址访问限制值。进程由用户态进入核态,linux进程的task_struct结构中的成员addr_limit也应该由0xBFFFFFFF变为0
2012-02-17 10:09:35
11963
转载 Android 源码结构分析 .
Android 2.1总目录|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts
2011-12-25 14:59:38
3668
转载 request_irq()——注册中断服务
在 2.4 内核和 2.6内核中都使用 request_irq() 函数来注册中断服务函数。在 2.4 内核中,需要包含的头文件是 #include ,2.6 内核中需要包含的头文件则是#include 。函数原型如下:2.4 内核int request_irq (unsigned int irq, void (*handler)(int, void *, struct
2011-12-21 10:28:24
2136
转载 Linux 内核的同步机制--semaphore, rw_semaphore
一、 引言在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制,这些同步机制包括:原子操作、信号量(semaphore)、读写信号量(rw_semaph
2011-11-15 10:02:56
6108
原创 Linux2.6内核中基于platform机制的驱动模型
摘要 本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型。首先介绍了Platform总线的基本概念,接着介绍了platform device和platform driver的定义和加载过程,分析了其与基类device 和driver的派生关系及在此过程中面向对象的设计思想。最后以ARM S3C2440中I2C控制器为例介绍了基于platform总线的驱动开发流程。
2011-11-09 17:11:01
2162
转载 I2S总线数据通信
引言 I2S(InterIC Sound Bus)是飞利浦公司针对数字音频设备之间的音频数据传输而制定的一种总线标准,采用沿独立的导线传输时钟与数据信号的设计,通过分离数据和时钟信号,避免了时差诱发的失真。I2S总线简单有效,可以有效提升输出数据的质量,在各种嵌入式音频系统中有广泛应用。但是在嵌入式音频系统设计中,并不是所有的MCU都支持I2S总线格式,再加上I2S还没有统一的接口标准,不同
2011-11-05 09:50:18
7122
转载 source insight相关
1、背景色选择 要改变背景色Options->preference->windows background->color设置背景色2、解决字符等宽对齐问题。 SIS默认字体是VERDANA,很漂亮。这网页上应该也是用的VERDANA字体。但由于美观的缘故,VERDANA字体是不等宽的。比如下面两行 llllllllll MMMMMMMMMM
2011-10-24 14:09:11
5263
原创 主设备号和file_operations结构关系; ioctl和unlocked_ioctl, ioctl简单测试例子
open一个字符设备的过程是从VFS层open系统调用 ===> def_chr_fops-->open ===> cdev->fops->open===> device specific operation 如果是同一类设备,比如系统中有多个framebuffer,那么就把共有的操作放在cdev->fops->open ,这时向系统注册的仅仅是这一个驱动程序;将这类主设备
2011-10-20 14:19:39
9385
转载 Linux驱动程序开发 - 设备控制接口
序言设备驱动程序的一个基本功能就是管理和控制设备,同时为用户应用程序提供管理和控制设备的接口。我们前面的“Hello World”驱动程序已经可以提供读写功能了,在这里我们将扩展我们的驱动以支持设备控制接口,在Linux中这个接口是通过ioctl函数来实现的。设备控制接口(ioctl 函数)回想一下我们在字符设备驱动中介绍的struct file_operations结构,这里
2011-10-20 11:18:55
846
转载 dd拷贝
1.dd命令简介 功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的
2011-10-12 09:55:15
2258
原创 驱动笔记++++++汉艾尔特
第一周:Android 手机开机后,会先运行 bootloader。 Bootloader 会根据某些判定条件(比如按某个特殊键)决定是否进入 recovery 模式。Recovery 模式会装载 recovery 分区, 该分区包含recovery.img。recov
2011-09-08 16:07:08
1688
转载 基于V4L2的视频驱动开发(2)
三、 V4L2 API及数据结构 V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。 1、常用的结构体在内核目录include/linux/videodev2.h中
2011-07-13 15:46:42
829
转载 基于V4L2的视频驱动开发
http://blogold.chinaunix.net/u2/64117/showart.php?id=2486262编写基于V4L2视频驱动主要涉及到以下几个知识点:l 摄像头方面的知识要了解选用的摄像头的特性,包括访问控制方法、各种参数的配置方法、信号输出类
2011-07-13 15:46:14
1240
转载 V4l2 v4l2_field理解
http://blog.youkuaiyun.com/kickxxx/article/details/6336346我们要区分video为 顺序式和交错式: 数序式video顺序的传输video image所有的行,而交错式video则把一个video划分成两个fields,分别保存vide
2011-07-13 15:43:48
4637
原创 Android应用APK获得/data目录的读写权限
在应用程序AndroidManifest.xml中的manifest节点中加入android:sharedUerId="android.uid.system"这个属性。放在源码环境中编译,并通过adb install 的方式进行安装mk文件中的属性改为LOCAL_CERTIFIC
2011-07-12 14:16:42
17850
原创 C基本知识
1.进程和线程的差别。 线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
2011-07-04 12:57:26
734
原创 RGB 转化YUV
前几天碰到一个问题,需要做一张全黑的raw data给encode压码测试,因为raw data的格式是YUV的,于是相当然的就把所有值全置为0,因为Y值(亮度)置为0了,所以以为圧码出来的frame就应该是黑色的,可压完才发现是粉色的,这下晕了,因为全黑对于
2011-07-04 10:40:43
1093
原创 gdbserver远程调试
我采用的是nfs目标板挂载本机目录的方法,当然首先,你得开通本机的nfs共享服务,具体步骤如下:1、进入/etc目录,vim exports这个文件,在里面添加/home 192.168.0.*(rw,sync)保存后退出注:/home 为要共享的文件夹的名称,192.168.0.*为本NFS服务器允许访问的客户端ip,若nfs不成功,后面参数rw ro 等标志对文件夹操作权限,syn
2011-06-30 14:21:00
637
转载 GDB调试程序
说明从优快云的网站上找到的GDB使用说明。原文标题:用GDB调试程序作者:haoel (QQ是:753640,MSN是: haoel@hotmail.com)关键字:gdb 调试 c c++ gun这篇文章非常好,所以转载了下来,作为收藏。topGDB概述GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜
2011-06-30 13:16:00
526
转载 字符设备和块设备的区别
系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——这也是块设备的一般访问方式。 另一种基本的设备类型是字符设备。字符设备按照字符流的方式被有序访问,像
2011-06-27 15:08:00
936
原创 android ramdisk.img system.img userdata.img
1、android文件系统的结构 android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的文件系统,system.img包括了主 要的包、库等文件,userdata.img包括了一些用户数 据,emulator加载这3个映像文件后,会把 system和 userdata分
2011-06-21 19:34:00
1108
原创 sqlite3 --sql命令简单介绍(zt)
目录1建立数据库档案2在sqlite3提示列下操作3SQL的指令格式4建立资料表5建立索引6加入一笔资料7查询资料8如何更改或删除资料9其他sqlite的特别用法10小结 建立数据库档案用sqlite3建立数据库的方法很简单,只要在sh
2011-06-20 17:39:00
558
原创 怎样向一个c++函数传数组、Linux下怎么显示unicode字符、Linux的地址空间
我们都知道,下面两个函数的参数实际上都是整型指针:void test1(int * p){} void test2(int p[10]){ //下面这句话如果直接看汇编代码的话实际上是直接对num赋值1 int num = sizeof(p)/sizeof(p[0]);} 编译器并不会把p[10]当做数组来处理,但是如果真的需要以一个数组为参数该怎么
2011-06-16 14:37:00
1090
原创 strcpy、strncpy、strlcpy,当多出一位怎样多保留一个字节
数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,如: void Func ( char str[100]) {…… } 则sizeof(str) = 4 str数组作为虚参声明时,sizeof(str)=4(指针大小) strncat 原型:extern char *strncat(char *dest,c
2011-06-16 14:03:00
1239
转载 FrameBuffer 之 fb_fix_screeninfo 、fb_var_screeninfo
fb_fix_screeninfo 和 fb_var_screeninfo 都和 frame buffer 有关,详细的数据结构含义可以参考 kernel 头文件,这里只列出几个重要成员的含义。fb_fix_screeninfo 的 line_length 成员,含义是一行的 size,以字节数表示,就是屏幕的宽度。 结构fb_var_screeninfo定义了视频硬件一些可变的特性。
2011-06-16 13:24:00
7660
转载 Android调试的必杀技——反汇编
在移植Android过程中会遇到很多Crash的情况,尤其是启动Android过程中。一般这些问题都可以通过看代码能解决,当然也有一些比较“妖 娆”的问题,非常难找到头绪,在logcat日志也只会打印一些崩溃的堆栈,这些信息很难帮助我们定位问题。根据个人一个实例来介绍一下在Android 移植过程中反汇编的用法。 首先先看一下我遇到的一个logcat关于Crash的打
2011-06-15 15:08:00
12886
原创 Android camera 默认显示黑白的问题
在初次接触android的时候就注意到通过模拟器,相机预览的时候只能显示黑白电影。这些天总算有点空闲时间了,决定研究下这个。 关于android camera的构造不再说了,模拟器上使用用的是一个虚拟的Camera-----FakeCamera这个大家应该都知道。首先初略的了解一下camera preview图像显示的原理。
2011-06-15 12:29:00
5427
原创 程序员,应该掌握的英语词汇
本文选自《Java程序员,上班那点事儿》 有时候如果应聘到了一个有外资背景的公司或者这个公司的很多人都有海外或外资工作背景时,你也许还会用到一些日常工作交流时候的词汇。 比如我们看一下某主管开会时的发言: 小王,请你尽快“Push”一下这件事,按照前期咱们定下来的“Plan”来“follow”这个“case”,每一个“Miles
2011-06-13 13:41:00
655
星际译王-朗道词典(英译汉+汉译英)
2013-04-09
OSG开源教程 产生有纹理几何体 节点
2009-07-30
VS2005助手下载 版本为1624
2009-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人