自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android Camera2 Hal3(二)startPreview预览过程

引言通过上一节的分析,我们知道了对于Camera2 Hal3的初始化过程。这一节我们以Camera2Client::startPreview为入口来分析预览过程。

2019-08-29 21:19:00 3939

原创 Android 9.0 multimedia框架解析(五)ACodec配置解码器过程

概述先来回顾下上篇文章所讲的MediaPlayerService的start过程。MediaPlayerService的start通过层层调用会调用到NuPlayer::onStart,onStart会先启动GenericSource,然后通过异步的方式调用到NuPlayer::instantiateDecoder。在instantiateDecoder中,会创建NuPlayer::Decode...

2019-08-24 12:16:26 6825 4

原创 Android 8.1 Audio框架(二)AudioPolicy路由策略实例分析

概述蓝牙耳机连接上Android系统后,AudioService的handleDeviceConnection会被调用,然后调用到AudioPolicyManager的核心函数setDeviceConnectionState。时序图说明:连接过程的setDeviceConnectionState可以拆分为以下几个流程:1.添加设备到mAvailableOutputDevices。2.通...

2019-07-25 17:56:36 7650

原创 Android 8.1 Audio框架(一)初始化分析

AudioPolicyService和它的总管AudioPolicyManager的初始化类简介:1.AudioPolicyService:APS是音频框架的服务,在Main_audioserver.cpp中生成,它在第一次强引用的时候会创建AudioCommandThread和AudioPolicyClient,AudioPolicyManager。它主要由AudioSystem通过bind...

2019-07-19 17:14:52 7573 3

原创 Android 9.0 multimedia框架解析(四)start过程

2019-07-12 11:08:33 4341

原创 Android 9.0 multimedia框架解析(三)prepareAsync过程

概述先来回顾一下上文讲的MediaPlayerService::Client的setDataSource流程:首先创建NuplayerDriver和Nuplayer;然后通过NuplayerDriver以异步的方式设置数据源,在设置的过程中会构造GenericSource,把文件描述符等信息保存在GenericSource中;最后Nuplayer会通知NuplayerDriver我已经设置完数据...

2019-07-11 16:19:59 4159

原创 Android 9.0 multimedia框架解析(二)setDataSource过程

2019-07-10 22:14:08 4127

原创 Android 9.0 multimedia框架解析(一)加载media extractor组件过程

Extractor

2019-07-09 11:05:39 6543

原创 Android Camera2 Hal3(一)初始化

前段时间在4412的开发板上面调通了camera hardware,现在准备来梳理下camera框架。我这里的camera device api版本使用的是3.0;camera module api版本使用的是2.3;CameraService会根据这个api版本初始化不同的client,例如这里将初始化Camera2Client。mDevice.common.version = CAMER...

2019-05-26 15:57:35 4275 2

原创 tiny4412 linux-4.2 移植(十四)v4l2 camera(3)v4l2与media framework

概述上两节我们介绍了v4l2的api使用方法,然后通过api深入框架之中了解其中的原理。这一节我们以tiny4412平台上的fimc和ov7740为例子介绍v4l2与media framework。本文涉及到的驱动有:fimc-capture.c & fimc_core.c(capture驱动)、media_dev.c(SoC series camera host interface ...

2019-12-27 09:23:08 3801

原创 tiny4412 linux-4.2 移植(十三)v4l2 camera(2)从v4l2 api 深入框架

概述上一节我们了解了v4l2 api的使用方法,这一节我们来看下相关框架。不过这里先不介绍media framework,media的相关内容后面的文章再讲。框架图这个框架图分为4个部分:用户空间、v4l2核心、平台驱动、寄存器。这里的平台驱动指的是camera interface(CAMIF)驱动,例如三星的fimc驱动。上一节我们知道了获取摄像头图像是一般流程:1、以O_RDWR |...

2019-12-27 09:22:56 2881

原创 tiny4412 linux-4.2 移植(十二)v4l2 camera(1)从v4l2 Api入手

概述Video4Linux2是Linux系统下进行音影图像开发的应用编程接口,他比Video4Linux具有更好的扩张性和灵活性,支持更多的硬件设备。该框架遵循驱动框架设计理念:它具有用于表示设备数据实例的struct v4l2_device,用于引用子设备实例的struct v4l2_subdev,用于存储v4l2设备节点信息的struct video_device,以及用于描述v4l2文件句...

2019-12-27 09:22:35 3592

原创 tiny4412 linux-4.2 移植(十一)LCD驱动移植

tiny4412 linux-4.2 移植(十)USB4604

2019-12-06 11:12:22 3258

原创 tiny4412 linux-4.2 移植(十)USB4604

简介通过前面几篇usb的文章,可以知道usb4604是挂载在芯片的hsci0上面,hsci0是usb phy的其中一类,它隶属于EHCI host controller。dts由于hsci0是usb phy的其中一类,而且它隶属于EHCI host controller,所以需要在dts中使能phy和ehci。关于这些属性是在samsung usb框架中是怎么解析的,可以参考前面几篇文章...

2019-12-06 11:12:03 3122 1

原创 tiny4412 linux-4.2 移植(九)USB 2.0 host框架(4)支持otg

tiny4412 linux-4.2 移植(九)USB device

2019-12-06 11:11:09 2906

原创 tiny4412 linux-4.2 移植(八)USB 2.0 host框架(3)hub

简介tiny4412有两个usb hub,一个是芯片内部的root hub,一个是usb4604,usb4604挂载在hsic0上。框架图hub上一节,我们知道了ehci主机控制器的相关驱动,在它的probe函数中会调用到usb_add_hcd进而调用root hub的注册函数register_root_hub。这个函数是用来注册root hub的,它会调用usb_new_devi...

2019-12-06 11:10:51 2825

原创 tiny4412 linux-4.2 移植(七)USB 2.0 host框架(2)hcd(ehci主机控制器)

简介上一节整体介绍了usb host框架,分析了其中的phy层。这一节我们分析usb 框架中的hcd层。Exynos 4412的USB 2.0的 Host Controller包含USB 2.0 EHCI Host Controller和 USB 1.1 OHCI Host Controller,我这里只讲EHCI Host Controller。框架图hcd层以stuct usb_hcd...

2019-12-06 11:10:28 2996

原创 tiny4412 linux-4.2 移植(七)USB 2.0 host框架(1)phy

USB总线&USB设备拔插

2019-12-06 11:10:01 3413

原创 tiny4412 linux-4.2 移植(六)加速度传感器mma7660

加速度传感器用的是smbus协议,smbus协议跟i2c协议有一些差别。不过用的remap操作函数还是devm_regmap_init_i2c,因为regmap_get_i2c_bus中会static const struct regmap_bus *regmap_get_i2c_bus(struct i2c_client *i2c, const struct regmap_conf...

2019-12-06 11:09:38 2645

原创 tiny4412 linux-4.2 移植(五)EEPROM

e

2019-12-06 11:09:14 2616

原创 tiny4412 linux-4.2 移植(四)I2C总线

4412 scp支持 个i2c

2019-12-06 11:08:39 2655

原创 tiny4412 linux-4.2 移植(三)GIC中断

GIC介绍GIC(全称Genetic Interrupt Controller)是ARM公司提供的一个通用的中断控制器。它可以管理4种类型的中断:1、外设中断(Peripheral Interrupt)外设中断分为PPI(Private Peripheral Interrupt)和SPI(share Peripheral Interrupt)。PPI只能分配给指定的CPU核心,而SPI可以分...

2019-12-06 11:06:59 2811

原创 tiny4412 linux-4.2 移植(二)背光驱动

背光驱动

2019-12-06 11:06:16 2522

原创 tiny4412 linux-4.2 移植(一)编译运行linux-4.2

编译

2019-12-06 11:05:49 3103 2

原创 tiny4412 uboot 2018移植(三)移植

简介

2019-12-06 11:04:14 2873

原创 tiny4412 uboot 2018移植(二)分析uboot代码框架

简介uboot代码分为两部分 uboot-spl和uboot,uboot-spl为上一节所说的BL2。使用三星提供的工具,可以把uboot-spl.bin转化成BL2。uboot-spl通过编译uboot-2018我们可以产生uboot-spl镜像,由于BL1会负责把BL2拷贝到0x02023400处,所以需要定义uboot-spl的链接地址为0x02023400#define CONF...

2019-12-06 11:03:25 2936

原创 tiny4412 uboot 2018移植(一)移植前准备

简介本文使用的开发板是友善之臂提供的tiny4412 SDK板。它的bootloader是由E4412_N.bl1.bin(三星提供的),uboot-spl.bin,uboot.bin和E4412_tzsw.bin组合而成,它可以通过sd卡启动也可以通过emmc启动,但是我这里只讲解emmc启动的方式,因为这样操作比较简洁,不用去拔插sd卡到电脑进行烧录。先来看下芯片内部的memory map...

2019-12-06 11:02:08 2885

rootfs.tar.gz

用于配套博客的rootfs,通过使用本人博客linux 编译运行那一节的脚本,可以制作出ramdisk。

2019-12-05

sd_fuse.rar

4412移植uboot会用到的bl1和bl2制作工具,以及sd启动卡制作。 可以参考个人博客 https://blog.csdn.net/qq_27136111 中的uboot中的移植

2019-12-05

空空如也

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

TA关注的人

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