自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天才之嵌入式

2018,希望有个家

  • 博客(207)
  • 资源 (40)
  • 收藏
  • 关注

原创 英伟达+联想2015校招笔试回忆(嵌入式方向,上海)

好久没写Blog个了,过去几月技术也没见得增长多少,来来回回的一直在做事情,要毕业找工作了却发现也没静下来去准备过,这不临时抱佛脚那感觉是必死的啊。本科没尝试,这再不尝试那就真没机会了。2014年10月11,12两天参加的两场笔试只在上海进行且都只有一次,只好从杭州到上海去混了两天。回忆着两场笔试,目测基本都跪了,把大致考的题目回忆下,也算留下点东西吧。1.英伟达embedded system s

2014-10-12 20:17:16 4105

原创 NorFlash等写操作时不一定需要手动执行擦除命令(观点错误,需要手打擦除命令)

一直有个概念就是在操作常见的Flash:无论是nandflash/spifl

2014-09-17 14:16:50 6958

原创 全志A31下5M的CMOS Camera移植修改记录表

最近一段时间都在用A31评估几颗5M的摄像头,包括ov5640、MT9P001、ov2710。A31下移植不同的摄像头驱动的好处在于,驱动结构规范化,采用video_device下的suddev的架构方式来处理sensor。A31下的移植主要关注几个配置文件+对硬件驱动的初始化配置即可。调试的目的是先跑起来后优化。以下面的COMS为列,我们需要主要摄像头的以下几个电压值:典型5M摄像头的芯片电压配

2014-08-26 15:09:50 6613 1

原创 Android新编译的内核驱动模块不能被init加载原因解决

遇到一个内核驱动在手动编译后,

2014-08-11 15:53:45 3320

原创 Android系统编译时遇到的几个.mk的疑惑。

在Android4.2的源码Build/prduct_config.mk里面遇到一个遗憾:# Convert a short name like "sooner" into the path to the product# file defining that product.#INTERNAL_PRODUCT := $(call resolve-short-product-name, $(

2014-08-07 20:58:31 7903

转载 谷歌全线布局生态系统:新一代Android(L)亮相

新浪手机讯 6月26日凌晨消息,谷歌公司在美国旧金山召开每年一度的I/O开发者大会,发布全新移动操作系统Android L、车载系统、智能手表系统以及低价安卓手机参考方案Android One等。此次大会谷歌全线布局,旨在形成安卓闭环,从移动设备、穿戴设备、智能家居全方位打造安卓生态圈。  Android L操作系统:Android L采用全新设计语言  Android新一代操作系统被称为“L”,

2014-06-26 09:45:48 2251

转载 无处不在的Android,开发者的春天,话说现在是夏天啊

转账于http://news.hiapk.com/anzhuo/20140625/1518437.html

2014-06-26 09:40:54 1929

原创 基于BP神经网络的简单字符识别算法自小结(C语言版)

BP神经网络学习小结

2014-06-24 14:04:51 12216 13

原创 gcc新版本引起的编译错误(命令执行时的外部库输入位置)

昨天,遇到一个比较bug的错误,用gcc来编译几个简单的文件出错,编译环境为x86_64的Ubuntu12.04,gcc版本号如下:gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3编译如下命令,主要是需要添加一个常用数学库libm.so。编译的语法如下出现了如下的错误:gcc -lm main.c bp_alg_api.c -o test还是会出现没有链接时指定的库

2014-06-05 11:53:22 2626

原创 c语言编写经验逐步积累4

寥寥数笔,记录我的C语言盲点笔记,只为曾经经历过,亦有误,可交流。1.逻辑表达式的使用取值 = 表达式 ? 表达式1:表达式2;比如x = y > z ? y:z2."+,-"等逻辑运算符优先级大于移位,移位大于逻辑运算3.sizeof在编译时由编译器完成,对其传入的参数不做运算处理。sizeof(i++);返回4;不会对实际的i进行操作sizeof和strlen的区别是,后者是运算时执行。返回遇

2014-05-26 22:16:19 2373

原创 c语言编写经验逐步积累3

寥寥数笔,记录我的C语言盲点笔记,只为曾经经历过,亦有误,可交流。 1.typedef来定义一个函数指针类型的方法,定义一个新的函数指针类型。:建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头”。typedef int (*PFUN)(): 定义PFUN这个函数指针类型,由编译器自动来完成,比如PFUN pfun;定义了一个函数指

2014-05-26 22:14:13 3008

原创 C语言编程积累2

寥寥数笔,记录我的C语言盲点笔记,只为曾经经历过,亦有误,可交流。1.implict declartion of function 指的是在预处理时没有函数的申明,但该函数在别的函数中进行了编译与调用,编译可以完成链接但是会给出warning,需要提前申明2. sizeof是一个operand操作符,不能直接对其进行&取地址操作。是一个编译器自动算大小的函数,在预处理时。和宏定义有所类似。size

2014-05-26 22:13:11 2175

原创 C语言盲点笔记1

寥寥数笔,记录我的C语言盲点笔记,只为曾经经历过,亦有误,可交流。1.int* a和int *a有区别吗?没有任何区别,都表示a是int指针建议这么写int *a;这样明显一点理由如下int *a,b;a是指针,b是整形,一幕了然但是你如果写成int* a,b;虽然a还是指针,b还是整形但是a前面没直接跟*,一不留神,还真把b看成指针了2.C语言中和单片机C语言的数据类型char,前

2014-05-26 22:10:13 2675 2

原创 android4.2.2的stagefright架构下基于SurfaceFlinger的视频解码输出缓存创建机制

之前几文在分析OMX_Codec的数据流时主要以对输入缓存区的说明为主,这里单独是为了加深对SurfaceFlinger的理解,特地将用于渲染的输出缓存区申请等拿出来做一次分析,看其是如何完成创建,并通知底层的解码器组件进行解码输出的。该部分的核心内容需要有较强的surfaceflinger显示模块相关的知识点。

2014-05-26 10:54:39 5892 2

原创 Android4.2.2的Stagefright中编解码器数据流的维护

前沿:在前面的博文中,基本提到的是stagefright相关的控制流,具体分析了android架构中的MediaExtractor、AwesomePlayer、StagefrightPlayer、OMXCodec等的创建,底层OMXNodinstance实例的创建。分析了OMX最底层插件库、编解码器组件的架构以及如何创建属于我们自己的OMX Plugin。分析源码架构的另一个关键是数据流的分析,从

2014-05-23 21:40:27 4154 2

原创 Android4.2.2下Stagefright下OMX编解码器组件的控制流

之所以单独把这块内容提炼出来,在于其具备的一定的层次性,结构上具备统一性,API函数的设计需要实现OMX架构独有的接口。1. 在上一博文Android4.2.2下Stagefright多媒体架构中的A31的OMX插件和Codec组件 中我们提到,通过Binder架构,在MPS的线程上创建完一个实际的编解码器节点后,获取到了一个node:node_id。如下所示将会根据相关的节点信息,创建一个MPS

2014-05-22 20:20:33 4206

原创 Android4.2.2下Stagefright多媒体架构中的A31的OMX插件和Codec组件

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email: [email protected]  在前面的博文中提到,AwesomePlayer::onPrepareAsyncEvent()开始进行Codec解码器组件的获取以及创建,这里和大家分享。

2014-05-21 19:44:08 6899

原创 Android4.2.2多媒体架构MediaPlay的创建过程分析(二):解析器的创建

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email: [email protected]  在上一文中,我们分析到setDataSource_pre()函数最终实际返回的是StagefrightPlayer类(class StagefrightPlayer : public MediaPlayerInterface).1 .继续分析

2014-05-20 22:29:06 3227

原创 Android4.2.2多媒体架构MediaPlay的创建过程分析(一)

前沿:回首往事,记得2012年的时候,那时还年少不知,就研究过android的多媒体框架,那是还是2.3的源码,看过stagefright的源码,记得当时是特别的痛苦。而今,再次看起这个多媒体模块的代码,突然间觉得豁然开朗,模块间的层次清晰,有据可依,遇到的疑问往往都能迎刃而解。我想,也许这就是2年多来的进步与经验吧。感谢时间,让我学会了成才。

2014-05-20 15:38:51 4048

原创 Android已有的原生Camera框架中添加自己的API的实现方案。

在过去的2个月里,基本定制并评估完了项目所

2014-05-13 14:59:07 2905

原创 我所看到的视频采集前端vfe和camera,decode等交互的驱动架构

到目前为止接触的处理器也多了,比较深入的驱动主要是视频采集前端,包括TI的DM64xx,DM3730,全志的A31等。发现所其所采用的框架基本不一样。当然典型的camera如ov系列,decode如tvp系列等都是作为一个i2c_client存在的,这个驱动的架构大致都类似。在这里姑且将采集前端称为vpfe:1.如dm3730的内核2.6.32版本中,其采用master和slave的驱动架构,来进

2014-05-08 15:13:33 3603 4

原创 Android手动init.rc脚本加载驱动模块出现Unknown symbol的原因

主要原因在于内核驱动模块参数进行EXPORT_SYMBOL_GPL()s

2014-05-06 16:44:46 2385

原创 android4.2.2设置选项中的关于设备或者关于平板电脑的字段内容由来之/proc/version

今天很好奇下面这张图片显示的字段内容从何而来,这些也常常作为Android手机或者平板中的设置项中”关于平板电脑“或者“关于设备”等信息相关。 调研学习确认后,初步定为到是通过如下文件来获取的。1./proc/version/的内容如下Linux version 3.3.0 (liuyongming@wits) (gcc version 4.6.3 20120201 (prerelease) (c

2014-04-17 16:25:32 3999

原创 A31的编译脚本处理过程小结(包括编译,平台模块整合,镜像打包)

昨天静下心来把A31的android4.2.2的源码维护,编译,打包出最终的镜像过程进行了一次总结,帮助自己定制合理的调试和开发流程。

2014-04-16 12:42:36 2647 3

原创 基于Linux的BeagleBoard-xm终端开发环境搭建

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:[email protected]今天在处理一些android开发的问题时,找到了去年年初做的一个基于Beagleboard-xm的项目,有个文档当初整理的不错,这个分享给大家吧。 基于Linux的BeagleBoard-xm终端开发环境搭建 PC机Linux开发版本:ubuntu

2014-04-10 22:01:41 5719 5

原创 我心所向之Android4.2 视频采集和显示模块序言

前沿:鉴于项目开发的需求,2014年开年到现在,一直在学习Android的视频采集与显示系统在底层的实现机制,通过零基础来死磕这2个模块的Code,主要参考的Blog,书籍有《老罗的Android之旅》,《邓凡平的深入理解Android卷I和II》。Blog记录的内容主要是自己学习与熟悉时,遇到的困难与疑惑,以及Android架构中特有的设计思想,编码方式等等,在此和所以嵌入式开发的爱好者一起交流

2014-04-08 13:22:37 2960 2

原创 Android4.2.2的preview的数据流和控制流以及最终的预览显示

step1:之前在讲到CameraService处的setPreviewWindow中传入一个窗口给HAL status_t setPreviewWindow(const sp& buf) { ALOGV("%s(%s) buf %p", __FUNCTION__, mName.string(), buf.get()); if (mDevice->o

2014-04-03 20:32:45 7165 4

原创 android4.2.2 Camera HAL的结构

这里单独以preview的控制和数据流来进行相关的camera的调用处理,主要先引入Camera 的HAL层的处理结构。调用还是先从camera的JNI和HAL两个方面来分析: step1:启动预览startPreview()// start preview modestatus_t Camera::startPreview(){ ALOGV("startPreview");

2014-04-03 15:38:30 5494 4

原创 Binder驱动之深入理解个人小记

Binder驱动的复杂性可想而知。1.有一个服务端通过一个Binder驱动方式要将本地的一个Binder实体传递到客户端,以实现匿名的通信方式该过程是在Binder驱动中的binder_transaction()来实现的,Binder驱动会为该实体创建一个当前进程所具有的一个node当然这个节点信息包含着这个Binder实体对象,方便客户端调用时找到真正的Binder实体。创建了node节点后,将

2014-04-03 01:25:47 1583

原创 Android4.2.2 CameraService服务启动和应用端camera初始化记录

之前的10篇博文主要是记录了Android4.2.2的SurfaceFlinger的相关内容,为何之前会投入那么多的时间,原因就在于之前在看camera的架构时,遇到了本地的ANativeWindow和Surface的内容。而这些是SurfaceFlinger中最常见的应用端的使用品。故而在学习完了SurfaceFlinger之后就来看看Camera的的架构内容。这里先和大家分享android4.

2014-04-02 15:15:50 6518 2

原创 Android4.2.2 SurfaceFlinger本地的FramebufferSurface实现真正的显示

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:[email protected]源码版本Version:4.2.2; 硬件平台 全志A31 FrameBufferSurface类,SurfaceFlinger处的本地的帧缓存,实际意义上的显存FramebufferSurface::FramebufferSurfa

2014-03-26 20:58:55 8785 25

原创 Android4.2.2 SurfaceFlinger之图形渲染queueBuffer实现和VSYNC的存在感

前一博文总结了Android4.2.2 SurfaceFlinger之图形缓存区申请与分配dequeueBuffer的实现,由于受到OpenGL Es的中介作用(内部实现图层绘制并写入到分配好的图形缓存中去),eglSwapBuffers()函数内部的实现就是如此。好了作为生产者以及使用dequeueBuffer获取了图形缓存并写入了绘图数据,这下就该是渲染的过程queueBuffer来看看他的实

2014-03-25 22:24:11 7254 3

原创 Android4.2.2 SurfaceFlinger之图形缓存区申请与分配dequeueBuffer

接着前面的BootAnimation的启动过程,可以看到内部会涉及很多OpenGL ES的相关操作,OpenGL ES通过之前创建的具备有SurfaceTexture等的Surface类,来操作远端的SF来完成相关的图像渲染。这里主要涉及到ANativeWindow的2个核心回调函数,OpenGL ES在应用层的eglSwapBuffers就是调用了QueueBuffer和DequeueBuf

2014-03-25 00:15:28 11939 12

原创 Android4.2.2 SurfaceFlinger之Layer和Bufferqueue的创建过程

之前的博文在BootAnimation的基础上来到了SurfaceFlinger端的Surface的创建过程,具体实现由Client的createSurface来完成。其实所谓在客户端的Surface在服务端是以Layer图层的名字存在。sp Client::createSurface( ISurfaceComposerClient::surface_data_t* param

2014-03-25 00:15:06 6810 6

原创 从Android Bootanimation理解SurfaceFlinger的客户端建立

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email:[email protected]源码版本Version:4.2.2; 硬件平台 全志A31 前面的几张博文都在记录SurfaceFLinger侧,也就是所谓的Server端,接下去就和大家来看看客户端是如何将要处理的图形信息请求SF来传递出去的呢

2014-03-25 00:14:19 5331 2

原创 Android4.2.2 SurfaceFlinger的相关事件和消息处理机制

在前面的博文中,可以发现在SurfaceFlinger中的OnFirstRef里面有如下函数:void SurfaceFlinger::onFirstRef(){ mEventQueue.init(this); run("SurfaceFlinger", PRIORITY_URGENT_DISPLAY);//启动一个新的thread线程,调用thread类的run函数

2014-03-25 00:13:39 4704

原创 Android中的HAL相关库搜索机制和原理学习

在介绍FrameWork是不得不提的是HAL(硬件抽象层)一般是用来和特点的硬件平台进行交互的,所以不同的android平台主要的区别也就是在这个部分,HAL的好处在于一个FrameWork可以调用不同的HAL,只需要相关的HAL满足一定接口规范即可。另一方面HAL的好处是可以屏蔽相关对底层硬件操作的应用代码。网上对HAL的介绍内容已经很多,这里就简单和大家分享我所深入去了解的HAL层的相关规

2014-03-25 00:12:08 4050

原创 Android4.2.2 SurfaceFlinger启动流程详解(二)

接着上文的SF启动流程,这里单独拎出来分析SurfaceFlinger::readyToRun()函数。里面的知识点比较多,只能和大家分享自己所知道的,共同交流学习。status_t SurfaceFlinger::readyToRun(){ ALOGI( "SurfaceFlinger's main thread ready to run. " "Init

2014-03-24 00:40:04 4593

原创 Android4.2.2 SurfaceFlinger启动流程详解(一)

这周继续我的Blog,前面几篇博文简单的介绍了阅读Android FW的源码所需要的基础知识,主要和C++相关。从这篇博文开始将会和大家一起学习并总结SurfaceFlinger模块在Android中的相关内容,本文主要描述的是SurfaceFlinger的详细启动流程。 1.SurfaceFlinger在哪里启动?在android系统中一个核心的Service都有ServiceMan

2014-03-24 00:38:58 5407 1

原创 Android FrameWork中的SP、RefBase、weakref_impl,Thread类

在阅读Android的Framework处的代码可以发现,无处不在SP给予了我视觉上的冲击,这个是什么?初级的我,看这个当初就基本当成指针来用,熟不知其的内在美,于是在这里和大家一起学习总结SP类的魅力所在。1 SP这货是个模板类,让我们看下他的结构。template class sp{public: inline sp() : m_ptr(0) { } sp(T*

2014-03-24 00:38:28 4922

海思LSADC驱动源码,dv300等适用。

海思LSADC驱动简单框架,可应用层读取。

2022-08-12

Android5.0+ Camera Preview based-Gralloc with ION.pdf

Android5.0+ Camera Preview based-Gralloc with ION 自己生产的PDF文件

2021-06-16

GTPV4.6.4.0-20180125.7z

可进行触摸屏的调试。线序调试等等。CFG文件生成,微调

2021-06-16

基于BP神经网络的简单字符识别算法自小结(C语言版)

基于BP神经网络的简单字符识别算法自小结(C语言版)

2015-11-03

AD5820 VCM驱动芯片手册

AD5820 VCM驱动芯片手册,开发camera可用

2014-05-18

VCM驱动DW9710 DS

VCM驱动DW9710的数据手册,提供给大家

2014-05-18

SurfaceFlinger应用端创建surface的过程图

SurfaceFlinger应用端创建surface的过程图,自己阅读代码总结的,android4.2.2

2014-03-24

TI的BLE1.4.0

TI的蓝牙低功耗BLE1.4.0软件开发包

2013-11-14

TI jpeg在dm6437上的实现

TI jpeg在dm6437上的实现,裸驱的简单实现

2013-10-21

嵌入式系统设计师历年真题(200611-201011)

嵌入式系统设计师历年真题(200611-201011),无答案

2013-09-01

csl_davinci dm64xx

csl_davinci,适合于开发Davinci处理器,带DSP C64+的。都可以使用该DSP端的CSL。

2013-07-18

SEED最新xds560v2仿真器在CCS5.1以上的驱动

SEED最新xds560v2仿真器在CCS5.1以上的驱动,最新的ccs5.4都可以正常使用

2013-07-02

TI dsp的Flash烧写工具

TI dsp的Flash烧写工具,来至于SDS

2013-06-23

BLE-CC254x-1_3_2.zip

BLE-CC254x-1_3_2.zip 该版本的TI BLE的cc2541比较稳定

2013-06-20

自动生成参考文献

亲测可以使用的自动生成参考文献,对写论文帮助很大。

2013-05-20

新浪天气透明版

新浪天气透明版 for 三星9300亲测可以使用

2013-04-10

GY-51三轴磁场加速度模块发送资料LSM303DLH

GY-51三轴磁场加速度模块发送资料LSM303DLH

2013-03-28

蓝牙低耗能软件堆栈和工具,TI CC2541

蓝牙4.0低耗能软件堆栈和工具,TI CC2541

2013-03-27

TI CC2541相关开发官方文档

TI CC2541相关开发官方文档,做了个汇总。

2013-03-26

dm3730的管脚初始化配置

dm3730的管脚初始化配置,用于初始化配置

2013-03-10

dm3730的时钟树软件TI的

dm3730的时钟树软件TI的,用于电源管理的配置。

2013-03-10

嵌入式系统项目报告

嵌入式系统项目报告,和android的启动和logo移植有关

2013-01-22

模式识别课件

浙江工业大学研究生模式识别课件和考试样卷

2013-01-09

Elecard StreamEye Tools

很好的YUV数据分析软件,不过是在win下面用的哦

2012-11-28

Evernote_4.5.6

Evernote,很好的记事本,用的很舒服

2012-11-28

ADT-20.0.2.zip

android的ADT-20.0.2.zip,可以手动快速安装插件,以免自动

2012-11-27

OMAP35x启动流程

OMAP35x启动流程,网络资源,共享一下

2012-11-10

ctags-5.6.tar.gz

ctags-5.6.tar.gz.给vim用的记录tags

2012-11-10

install_flash_player_11_linux_i386.tar.gz

flash_playerinstall_flash_player_11_linux_i386.tar.gz

2012-11-10

DM3730-25_GELs

DM3730-25_GELs,来自与网络

2012-11-07

Beagleboard-xm的相关资料

Beagleboard-xm的相关资料:如数据手册以及原理图等等

2012-11-07

串口上位机源码

从串口提取数据,显示在图形中,VC++编写简单串口上位机程序 串口通信,MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少

2012-11-06

飞凌6410 win7下的驱动usb转串口

飞凌6410 win7下的驱动usb转串口

2012-10-25

TI Codec Engine的DMAI接口

TI Codec Engine的DMAI接口,某些函数。

2012-10-25

dm3730相关寄存器TRM

dm3730相关寄存器TRM,开发omap系列和dm37 。A8很有用

2012-10-25

嵌入式系统课的资料

上课用的嵌入式课件,都是些基础的介绍,不错的资料

2012-10-10

android基础应用介绍PPt

是一个同学培训android时的基础PPT

2012-10-10

浙江工业大学微机原理科技

浙江工业大学微机原理课程,欢迎下载使用,对学习单片机,汇编有帮助

2012-04-02

5438的基本外设和基本配置

都是调试通过的最新的msp430f5438的配置,包括常用的外设。

2012-02-16

小车程序哦大家快来看

哈哈恩本程序是经过本人亲自运行以后的东东哦哦很有用的哦哦

2010-10-23

空空如也

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

TA关注的人

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