自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

eilianlau

Job's说活着是为了改变世界,为Job's未实现的interface而奋斗

  • 博客(65)
  • 资源 (18)
  • 收藏
  • 关注

转载 android+WM9714(AC97)调试

s3c6410平台,codec为WM9714(驱动可使用WM9713的),使用ALSA,android版本1.5. MID上移植android以来一直没有声音。 首先确认AC97的硬件连接,AC-LINK通讯是否正常,这里使用到wince中的init寄存器组,在sound/soc/codecs/wm9713.c中替换static const u16 wm9713_reg[]相应的寄存器

2012-01-08 00:29:49 1942

转载 ANDROID音频系统散记之四:4.0音频系统HAL初探

昨天(2011-11-15)发布了Android4.0的源码,今天download下来,开始挺进4.0时代。简单看了一下,发现音频系统方面与2.3的有较多地方不同,下面逐一描述。一、代码模块位置1、AudioFlingerview plainprint?frameworks/base/services/audioflinger/  +

2012-01-07 22:35:10 3769 1

转载 关于ALSA的小结

这一年来的一个重要工作是音频设备驱动方面,如驱动开发、调试debug、性能调优、音频路由、回声消除等。除此之外,熟悉了一下alsa-lib接口,Android音频系统,包括设备抽象层和音频策略。遗憾的是一直没有什么机会接触蓝牙设备的集成和开发,可预知的未来无线设备会极大地普及。还有就是ffmpeg,以前经常用它来做一些兴致突来能力而及的小工具,年初时计划进一步在它的基础上学习H264或

2012-01-07 22:34:17 1733 1

转载 ALSA的ioctl - hwdep

hwdep模块简述字符设备驱动中,ioctl是一个很常见的IO设备操作函数,可以自定义cmd命令字并实现对应的设备IO控制。音频设备的控制有所不同:驱动层大部分控制操作定义各种snd_kcontrol_new,然后注册到SNDRV_DEV_CONTROL模块中(sound\core\control.c),详见snd_kcontrol探究;而上层调用alsa-lib的snd_ctl_

2012-01-07 22:33:11 1297

转载 ANDROID音频系统散记之三:resample-2

这篇是承接上一篇提到的底层resample处理,以Samsung的mini alsa-lib为例说明。mini alsa-lib这个mini alsa-lib位于android2.3.1-gingerbread/device/samsung/crespo/libaudio中。如之前所说alsa-lib实现了太多plugin的功能,显得复杂臃肿。因此我建议如果想了解alsa在上层调用

2012-01-07 22:32:20 1815

转载 ANDROID音频系统散记之二:resample-1

Android上的resample处理默认的情况下,Android放音的采样率固定为44.1khz,录音的采样率固定为8khz,因此底层的音频设备驱动只需设置好这两个固定的采样率。如果上层传过来的采样率与其不符的话,则Android Framework层会对音频流做resample(重采样)处理。Resample的大致流程如下: AudioResample作为最基本的类

2012-01-07 22:31:28 1582 2

转载 ANDROID音频系统散记之一:A2dpAudioInterface

写在之前本来有打算写写Android音频系统的,但是仔细研究了如下链接的三篇文章,果断中断了我的想法。毫不夸张来说,这是我看过的最好的阐述Android音频系统的文章了,简练精辟,将音频系统各个方面的重要的脉络都描述出来了。有这三篇文章,理解Android音频系统何止加快了10倍。Android Audio System 之一:AudioTrack如何与AudioFlinger交换音频数据

2012-01-07 22:28:46 3229

原创 S5PV210启动三阶段

Author:    eilianBlog:       http://blog.csdn.net/eilianlauCopyright:OriginalDate:   2011、12、281、S5PV210内部结构图很漂亮,不看则会亏2、S5PV210系统启动三阶段正解      首先必须得谢谢超哥的正解,头晕之中经过超哥的一番讲解,不再晕

2011-12-28 20:19:40 2267

转载 FS_S5PC100平台上Linux Camera驱动开发详解(二)

FS_S5PC100平台上Linux Camera驱动开发详解(二)作者:刘洪涛,华清远见嵌入式学院讲师。4-3 摄像头的初始化流程及v4l2子设备驱动这个问题弄清楚了以后下面就来看获得Camera信息以后如何做后续的处理:在fimc_init_global调用结束之后我们获得了OV9650的信息,之后在probe函数里面就会继续调用一个函数:fimc_configure_subd

2011-12-24 15:14:23 1797

转载 FS_S5PC100平台上Linux Camera驱动开发详解(一)

FS_S5PC100平台上Linux Camera驱动开发详解(一)作者:刘洪涛,华清远见嵌入式学院讲师。说明:        理解摄像头驱动需要四个前提:        1)摄像头基本的工作原理和S5PC100集成的Camera控制器的工作原理        2)platform_device和platform_driver工作原理        3)Linux内核V4L

2011-12-24 15:13:15 1772

转载 基于V4L2的视频驱动开发(二)

2010-09-19 11:31 4683人阅读 评论(8) 收藏 举报 基于V4L2的视频驱动开发(2)                                                                                                         华清远见 刘洪涛三、            V4L2 API及数

2011-12-24 15:11:01 1382

转载 基于V4L2的视频驱动开发(一)

基于V4L2的视频驱动开发(1)                                                                                                                                         华清远见 刘洪涛编写基于V4L2视频驱动主要涉及到以下几个知识点:l

2011-12-24 15:09:35 1648

转载 基于Linux的v4l2视频架构驱动编写(三)

基于Linux的v4l2视频架构驱动编写,控制命令VIDIOC_QUERYBUF,功能: 查询已经分配的V4L2的视频缓冲区的相关信息,包括视频缓冲区的使用状态、在内核空间的偏移地址、缓冲区长度等。在应用程序设计中通过调VIDIOC_QUERYBUF来获取内核空间的视频缓冲区信息5. 控制命令VIDIOC_QUERYBUF功能: 查询已经分配的V4L2的视频缓冲区的相关信息,包括视频缓

2011-12-24 13:46:29 2744 2

转载 基于Linux的v4l2视频架构驱动编写(二)

于Linux的v4l2视频架构驱动编写,控制命令VIDIOC_S_FMT //直接告诉你,s是set的意思,功能: 设置视频设备的视频数据格式,例如设置视频图像数据的长、宽3. 控制命令VIDIOC_S_FMT //直接告诉你,s是set的意思功能: 设置视频设备的视频数据格式,例如设置视频图像数据的长、宽,图像格式(JPEG、YUYV格式);参数说明:参数类型为V4L2的视频

2011-12-24 13:45:23 1466

转载 基于Linux的v4l2视频架构驱动编写(一)

其实,我刚开始一直都不知道怎么写驱动,什么都不懂的,只知道我需要在做项目的过程中学习,所以,我就自己找了一个关于编写Linux下的视频采集监控项目做,然后上学期刚开学的时候听师兄说,跟院长做项目,没做出来也没关系,所以直接退出博士的团队,投靠了院长的门下,呵呵,说到这里其实并不是我太见风使驼了,而是····老是让我做单片机的东东,我嫌没意思,他也知道我一开始就要学嵌入式,所以,最后,我想了一下,既

2011-12-24 13:44:09 1509

原创 Android中Input型输入设备驱动原理分析(二)

驱动层只是把输入设备注册到输入子系统中,驱动层的代码本身是没有创建设备节点的,而是由EventHander层调用InputCore中的函数来实现,当某个事件触发时都将通过input _event()来将input event传送到input.c中,再由input.c分配事件到每一个"input handler"2)input _event()是怎么实现的void input_event(s

2011-12-22 16:17:32 2129

转载 curl: (6) Couldn't resolve host 'android.git.kernel.org'

$ curl https://android.git.kernel.org/repo > ~/bin/repocurl: (6) Couldn't resolve host 'android.git.kernel.org'原因是因为android.git.kernel.org网站被黑了,所以无法从该网站下载repo和android源代码了。因此我们只能想办法从其他地方下载了.我

2011-12-22 14:44:20 3741 1

转载 framebuffer显示JPEG图片

#include #include #include #include #include #include #include #include #include #include #define        FB_DEV        "/dev/fb0"/***************** function declaration *********

2011-12-21 19:16:07 1260

转载 使用libjpeg处理图像(libjpeg的使用压缩与解压缩jpg格式)

使用libjpeg处理图像(libjpeg的使用压缩与解压缩jpg格式)2009-05-04 16:21标题:利用libjpeg处理图像作者:赵新国Email:[email protected]关键字: jpeg, 图像压缩摘要:文章介绍了采用libjpeg处理图像的方法前一段时间做了一个项目,项目中有一部分是关于图像采集的,相关硬件有:高速数字相机

2011-12-21 19:10:27 8582 1

转载 linux下利用framebuffer画点的程序小例子

/* * ===================================================================================== * *       Filename:  framebuffer.c * *    Description:  linux下利用framebuffer画点的程序小例子 * *

2011-12-20 23:08:40 1727

转载 framebuffer下用libjeg库显示jpeg图片

/* * ===================================================================================== * *       Filename:  digital_frame.c * *    Description:  framebuffer下用libjeg库显示jpeg图片 * *

2011-12-20 23:06:33 989

转载 framebuffer下bmp格式图片

/* * ===================================================================================== * *       Filename:  digital_frame.c * *    Description:  framebuffer下用libjeg库显示jpeg图片 * *

2011-12-20 23:05:20 1389

转载 2410下寄存器地址虚实映射的实现

2410下寄存器地址虚实映射的实现我们知道在我们的驱动里面一般操作的寄存器的地址都是虚拟地址, 然而一般在cpu的datasheet里描述的寄存器的地址都是物理地址, 那linux内核是如何把我们驱动中指定操作的虚拟地址转换成正真可寻址并操作的物理地址的呢? 这篇文档以s3c2410为例, 将详细的描述这么一个实现流程。       S3c2410使用的是arm920T的核,它支持MMU,

2011-12-18 23:25:29 1161

转载 ARM 学习笔记 (三) S3C2440 MMU 配置

接上回说;          在中断配置时 有一个函数  MMU_Init()  这个是MMU的初始化函数,用来初始化存储器管理单元的 (Memory Manage Unit  )。那这个单元是来干嘛的呢,顾名思义,用来管理存储器的。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以 内存容量虽然小

2011-12-18 23:14:10 5669 2

转载 Linux内核中ioremap映射的透彻理解

[经典]Linux内核中ioremap映射的透彻理解  几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:  (1)I/O映射方式(I/O-mapped)  典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O

2011-12-18 23:08:52 871

转载 linux中的物理地址和虚拟地址

在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。n物理存储空间布局Linux的物理存储空间布局与处理器相关,详细情况可以

2011-12-18 23:07:23 1676

原创 s3c6410_LCD & frame buffer 驱动分析(三)

帧缓冲设备的参数设置和gpio配置#include #include #include #include #include #include #include "s3cfb.h"#define S3CFB_HFP        2    /* front porch */#define S3CFB_HSW        41    /* hsync width

2011-12-17 12:20:48 2384 1

原创 led实验

2011-12-16 23:51:08 946

原创 QT6410移植linux-2.6.39 笔记(四)-dm9k驱动移植

Author:    eilianBlog:       http://blog.csdn.net/eilianlauCopyright:OriginalDate:   2011、12、151、Hosting environment:VMare ubuntu10.04 2、Cross-compiling environment:arm-2009q3.tar.bz2

2011-12-15 19:28:12 2436

原创 QT6410移植linux-2.6.39 笔记(三)-构建cramfs根文件系统(2)

Author:    eilianBlog:       http://blog.csdn.net/eilianlauCopyright:OriginalDate:   2011、12、141、Hosting environment:VMare ubuntu10.04 2、Cross-compiling environment:arm-2009q3.tar.bz2

2011-12-14 12:42:14 2244

原创 QT6410移植linux-2.6.39 笔记(三)-构建cramfs根文件系统(1)

Author:    eilianBlog:       http://blog.csdn.net/eilianlauCopyright:OriginalDate:   2011、12、141、Hosting environment:VMare ubuntu10.04 2、Cross-compiling environment:arm-2009q3.tar.bz2

2011-12-14 10:17:23 1667

原创 QT6410移植linux-2.6.39 笔记(二)-添加NANDFLASH分区

Author:    eilianBlog:       http://blog.csdn.net/eilianlauCopyright:OriginalDate:   2011、12、131、Hosting environment:VMare ubuntu10.04 2、Cross-compiling environment:arm-2009q3.tar.bz2

2011-12-13 22:13:52 3160 3

原创 QT6410移植linux-2.6.39 笔记(一)-搭建开发板环境

Author:    eilianBlog:       http://blog.csdn.net/eilianlauCopyright:OriginalDate:   2011、12、131、Hosting environment:VMare ubuntu10.04 2、Cross-compiling environment:arm-2009q3.tar.bz

2011-12-13 20:41:42 3040 2

原创 Linux2.6.39下dm9k驱动源码分析(二)

2.3、网卡打开操作问题:open函数在什么时候调用?答:网卡打开的时候,命令#ifconfig eth0 up,此时网卡被打开,在网卡open函数中应该完成以下操作:注册中断;设置寄存器,启动设备;启动发送队列,初始化dm9000,复位芯片,检查MII接口。static int dm9000_open(struct net_device *dev){    board_i

2011-12-04 17:39:56 1532

转载 Linux2.6.39内核sk_buff的结构分析

sk_buff结构位于include/linux/skbuff.h中,其含义为“套接字缓冲区”,用在linux网络子系统中的各层之间的数据传递,是linux网络子系统数据传递的"神经枢纽"当发送数据包的时候,Linux内核的网络处理模块必须建立一个包含要传送的数据包的sk_buff,然后将sk_buff递交给下层,各层在sk_buff中添加不同的协议头直至交给网络设备发送,同理当网络设备接收到

2011-12-04 11:54:52 1057

原创 Linux2.6.39在S3C2440上的移植(三)dm9k驱动的移植

1、主机环境:VMare下ubuntu10.04 ,1G内存。2、编译编译环境:arm-linux-gcc3、开发板:Micro2440,2M nor flash,256M nand flash。4、u-boot-version:u-boot-2010.065、linux -version:Linux-2.6.39

2011-12-04 11:41:07 1191

原创 Linux2.6.39在S3C2440上的移植(二)添加yaffs2文件系统

1、主机环境:VMare下ubuntu10.04 ,1G内存。2、编译编译环境:arm-linux-gcc3、开发板:Micro2440,2M nor flash,256M nand flash。4、u-boot-version:u-boot-2010.065、linux -version:Linux-2.6.392.1、yaffs2文件系统移植a)获取yaffs2 源

2011-12-04 10:33:45 2240 1

原创 Linux2.6.39下dm9k驱动源码分析(一)

本文基于linux2.6.39内核CPU:S3C2440一、s3c2440和dm9k的电路连接如下图:从上图可以看出dm9k引用了16条数据线(sd0-sd15)和s3c2440(ldata0-ldata15)相连,引用了一条地址线(CMD)和S3C2440(ADDR2)相连。CPU就是通过CMD这条地址线来判断LDATA0-LDATA15这16条数据线传送的究竟是地址还是数据

2011-12-03 16:38:38 2236

转载 Linux DM9000网卡驱动程序完全分析

[置顶]Linux DM9000网卡驱动程序完全分析说明1:本文分析基于内核源码版本为linux-2.6.31 说明2:本文在理解了linux中总线、设备和驱动模型的基础上加以分析代码 虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和平台分离。本文分成以下

2011-12-03 14:04:28 1068

原创 Linux2.6.39在S3C2440上的移植(一)添加NANDFLASH分区

1、主机环境:VMare下ubuntu10.04 ,1G内存。2、编译编译环境:arm-linux-gcc3、开发板:Micro2440,2M nor flash,256M nand flash。4、u-boot-version:u-boot-2010.065、linux -version:Linux-2.6.39一、下载并解压内核源码a)在命令行终端中可以通过下列方式下载

2011-12-02 12:07:45 4938 2

Linux USB开发了

Linux USB开发了

2012-11-03

S3C6410-LCD驱动源码

S3C6410-LCD驱动源码

2011-12-17

QT6410移植linux-2.6.39 笔记(三)-构建cramfs根文件系统(2)

QT6410移植linux-2.6.39 笔记(三)-构建cramfs根文件系统(2)

2011-12-15

QT6410移植linux-2.6.39 笔记(三)-构建cramfs根文件系统(1)

QT6410移植linux-2.6.39 笔记(三)-构建cramfs根文件系统(1)

2011-12-15

QT6410移植linux-2.6.39 笔记(二)-添加NANDFLASH分区

QT6410移植linux-2.6.39 笔记(二)-添加NANDFLASH分区

2011-12-15

QT6410移植linux-2.6.39 笔记(一)-搭建开发板环境

QT6410移植linux-2.6.39 笔记(一)-搭建开发板环境

2011-12-15

s3c6410&A8之NANDFLASH驱动s3c_nand.c

s3c6410&A8之NANDFLASH驱动

2011-12-13

6410&A8之NANDFLASH驱动s3c_nand.c

6410&A8之NANDFLASH驱动s3c_nand.c

2011-12-13

Linux设备模型三总线、设备、驱动程序

Linux设备模型三总线、设备、驱动程序Linux设备模型三总线、设备、驱动程序

2011-11-10

冬天的秘密-Linux设备模型二底层模型

冬天的秘密-Linux设备模型二底层模型冬天的秘密-Linux设备模型二底层模型

2011-11-10

冬天的秘密-Linux设备模型一认识Sysfs.doc

Linux设备模型一认识Sysfs Linux设备模型一认识Sysfs

2011-11-10

冬天的秘密-Linux内核制作与嵌入式根文件系统的构建.doc

Linux内核制作与嵌入式根文件系统的构建

2011-11-10

android核心分析

android核心分析 android核心分析

2011-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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