- 博客(46)
- 资源 (8)
- 收藏
- 关注
原创 OpenNI2 内存管理
OpenNI2中主要涉及到内存管理部分的主要是(Depth, IR, Color)Frame buffer 部分,应用层通过OpenNI API可以获取到底层硬件传感器的各种数据,主要还是深度数据,红外图像数据,彩色图像数据。这其中就涉及到内存分配,引用,销毁一个完整的内存操作闭环。以下从获取一帧深度数据的完整流程来具体分析Openni是如果管理内存的。1.驱动层 驱动数据接口一般是USB,...
2020-07-25 17:06:23
200
转载 Android中Settings.System的使用
如果有留意Android中系统设置Settings里面的源码,你会发现代码中频繁用到了Settings.System操作,该类通过键值对的形式,将一些特定的值以全局的模式保存到Setting的数据库中,我们可以通过它提供的get或者put形式的方法对其中的数据进行读写操作,(非系统级别的应用需要添加对应的权限)。当然,如果能够对frameworks进行修改,我们甚至可以在该类中添加一些特定的值,以
2013-08-02 14:41:04
20559
原创 三星平台 android audio 架构探讨点滴积累之二
今天基本调完了android 3G 通话功能,各种情况的下的audio path 切换,音量调整等一系列功能。但是音质还不是很好,模拟干扰比较多,有待改善。 先说一下电话 audio path 切换,总得来说切换分为两种情况:通话时path切换,铃声时path切换。 响铃时切换:const AudioMixer *AudioHardware::getOutputRo
2013-06-08 18:29:05
2404
原创 三星平台 android audio 架构探讨点滴积累之一
android整体audio包括android层和底层ASLA驱动。最近开始调3G 通话功能继而开始接触android 音频架构,之前调试声卡的时候也有过接触,不过那些都相对比较简单,基本上只需要修改audio path, 也就是修改audio_codec.h, 该文件定义了各种情况下的音频数据流程。其中有个结构体定义,如下: typedef struct AudioMixer_tag {
2013-06-08 11:14:32
2880
原创 移植 ethernet 到 android2.3.5
目前的android平台设备都支持wifi无线上网,但很少有支持有线上网的,说的通俗点就是插上网线就能上网。最近公司的产品要实现这个功能就研究了一下,整个移植过程是在android-x86.org的帮助下完成的。Android X86平台是由Beyounn和Cwhuang主持设计
2011-09-27 20:35:28
3693
1
转载 How to apply a patch/diff and solve “hunk FAILED”, “can’t find file to patch” and others
关于patch操作的各种错误的解决办法,收藏一下,非常好http://www.markusbe.com/2009/11/how-to-apply-a-patch-and-solve-hunk-failed-cant-find-file-to-patch-and-others/
2011-09-23 16:24:51
3032
原创 如何修改android系统的“屏幕超时”
很久没有来CSDN了,自己的博客也很久没有更新过了,只是这几个月来太忙了,虽然做了很多事但却没有时间写下来,现在想想很多差不多都快忘记了,还是写下来好。从今天开始回归CSDN :-D,记录我每天的点点滴滴。
2011-07-14 14:38:59
8654
5
转载 linux内核休眠与唤醒
<br />在Linux中,休眠主要分三个主要的步骤:(1)冻结用户态进程和内核态任务;(2)调用注册的设备的suspend的回调函数;(3)按照注册顺序休眠核心设备和使CPU进入休眠态。<br /> 冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文。当这些进程被解冻的时候,他们是不知道自己被冻结过的,只是简单的继续执行。如何让Linux进入休眠呢?用户可以通过读写sys文件/sys /power/state 是实现控制系统进入休眠。比如:<br /># echo
2011-04-21 15:51:00
2108
转载 转载一篇关于android wifi的好文章
<br />非常详细的Android wifi porting文章<br />开发板上的8686wifi wpa_driver_priv_driver_cmd failed 问题比较严重,连scanning都过不去<br />http://blog.linuxconsulting.ro/2010/04/porting-wifi-drivers-to-android.html<br />For mini-box.com picoPC we want to support several USB and min
2011-04-20 21:06:00
1669
转载 开发工程师人生之路(强烈推荐,分析的透彻!)
<br />相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心。在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人。第二句最常说的话是对公司的领导:“不行我就走人!”,实际上你也真的走过几回。对了,在这几年中,因为你的经济条件不错,你开始买房、开始谈恋爱、结婚、开始有了自已的小
2011-03-26 12:13:00
957
转载 Arm linux 内核移植及系统初始化过程分析
<br />================================================================<br />浅谈分析Arm linux 内核移植及系统初始化的过程(一) <br /><br />================================================================<br /><br />学习嵌入式ARM linux,主要想必三个方向发展:<br />1、嵌入式linux应用软件开发<br />2、linux
2011-03-25 14:48:00
1706
原创 带你从头一步步配置android系统
android系统正以迅雷不及掩耳之势冲击着智能手机与平板电脑市场,它颠覆了传统手机的概念,将手机与平板电脑进行了一次大洗牌,最可贵的是他的开放性(虽不是完全开放)吸引了一大批工程师去改造它,完善它,任何人都可以下载到它的源代码一睹它的真面目。这一节讲讲这样从头配置一个属于你的android系统,至于如何获取android源代码这里就不讲了。本文是在假设你已经从android官网上获取了其源代码的基础上讲解的。1.Create a company directory in //vendor/.
2011-03-15 23:19:00
4195
1
转载 Android Building System 总结
<br /><br />花了一个月的时间来看Android Make,在网上总是看到某某大虾说一天就把Android Make overview了一下,不得不感叹现在大虾的强大和咱那连蜗牛都可以鄙视一下的进度。不过总算是彻底看清的Android make这个系统,不得不当初架构出这套机制的神人顶礼膜拜一下,虔诚地烧三柱高香,惊叹于神人的伟大的时候也越感自己的沧海一粟,苦海无边,回头无岸,就加油滑水吧。<br /> 闲话就不多说了,来瞅瞅这套机制,Android以模块的形式来组织各个系统中的部件,E
2011-03-15 10:10:00
1252
转载 Git和Repo扫盲——如何取得Android源代码
<br />Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制软件,它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(repository),许多个工作目录(working copy),而像Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper 、Mercurial 、GNU Arch 、Bazaar 、Darcs 、SVK 、Monotone 等),每一个工作目录都包
2011-03-12 09:24:00
901
转载 SPI介绍
<br />一、SPI是英文Software Process Improvement的缩写,中文意思是软件过程的改进。它是CMM(还有其他能力模型)中的一个重要概念,CMM模型的目的就是要改进一个组织的过程,提高过程能力,所以叫做SPI-软件过程改进。<br /> 二、SPI是英文Service Provider Interface的缩写。中文意思是服务提供商接口。满足某种服务标准的供应商提供的符合该标准的应用程序接口,SPI应该和该服务的API标准是兼容的,应用程序一般应该是基于API编写,除非是SPI
2011-03-04 11:28:00
1190
转载 转一篇讲内核定时器比较好的文章
<br />/2.6.23/<br />一、定义:<br />/include/linux/timer.h<br />struct timer_list {<br />struct list_head entry;<br />unsigned long expires;<br />void (*function)(unsigned long);<br />unsigned long data;<br />struct tvec_t_base_s *base;<br />#ifdef CONFIG_TIMER
2011-02-24 15:15:00
1241
转载 UBOOT之DDR2内存移植相关修改简记
<br />原文地址:http://blog.csdn.net/lightsoure/archive/2010/09/22/5900500.aspx<br />环境:S5PC100+android(UBOOT 1.3.4)<br />DDR2 256MB <br />由于DDR2相对于mobile ddR的低功耗优势,加上产品本身对功耗要求较高,所以需要使用DD2代替MOBILE DDR;<br />从/board/samsung/smdkc100下的UBOOT链表u-boot.LDS<br />view
2011-01-24 11:12:00
4045
转载 [NAND]UBOOT从NAND FLASH启动分析
<br /> UBOOT从NAND FLASH启动分析<br />在分析启动代码之前先看一下S3C2440的NAND启动:<br />在配置NAND启动模式之后,S3C2440上电会先将NAND中的0x0 - 0x1000共4096字节的数据拷贝到位于Bank0中的Boot Internal SRAM上<br />Bank0如下图:<br />可以看出Boot Internal SRAM为4KB大小,也正是因为Boot Internal SRAM只有4KB大小,所以只能从NAND中拷贝4K的
2011-01-23 21:45:00
1350
转载 Linux内核配置系统浅析
<br />随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核。这就需要了解 Linux 的内核配置系统。<br />众所周知,Linux 内核是由分布在全球的 Linux 爱好者共同开发的,Linux 内核每天都面临着许多新的变化
2011-01-17 17:35:00
1004
转载 Makefile Kconfig 内核配置 内核裁剪
<br />假设我们要在内核源代码 drivers 目录下如下用于 test driver 的树型目录:<br />|----test<br />|---- cpu<br />|---- cpu.c<br />|---- test.c<br />|---- test_client.c<br />|---- test_ioctl.c<br />|---- test_proc.c<br />|---- test_queue.c<br /> 在内核中增加目录和子目录,我们需为相应的新增目录创建 Kconfig
2011-01-17 11:33:00
1113
原创 linux延时函数
<br />很好的总结,很实用<br />linux延时函数(转载)<br />应用层:<br /> #include <unistd.h><br /> 1、unsigned int sleep(unsigned int seconds); 秒级<br /> 2、int usleep(useconds_t usec); 微秒级:1/10^-6<br />补:<br /> 以前对于Linux下的延时函数只用过Sleep,不过最近发现还有其他的函数: <br
2011-01-16 21:35:00
1623
原创 linux下如何实现简单刷屏
今天为了测试我的LCD有没有坏点写了一个简单的刷屏程序,效果还不错,分析给大家。代码如下:#include #include #include #include #include #include #include #include int main(int argc,char *argv[]){ int fbfd = 0; struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo finfo;
2011-01-16 21:24:00
4949
2
转载 Linux Kconfig及Makefile学习
<br />内核源码树的目录下都有两个文档Kconfig (2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这个.config,就知道了用户的选择。<br /><br />上面的内容说明了,Kconfig就是对应着内核的配置菜单
2010-12-24 10:40:00
687
原创 CE6.0下高分辨率camera内存分配设置
在CE6.0camera的内存分配设置是在image_cfg.h,config.bib,camera_typedef.h中设置的,如下所示:config.bib中: CAMERA_STILL 84A00000 00600000 RESERVED ; 2048x1536 pixel(YUV420) CAMERA_PREVIEW 87800000 003F0000 RESERVED ; 800x4
2010-12-02 17:20:00
2198
1
原创 如何解决多次打开CameraDshowApp.exe系统死机的问题(高分辨率camera)
<br /> 最近在调试CameraDshowApp.exe的时候遇到了一个问题,当camera的分辨率为800*600,640*480或其他分辨率更小时,多次打开CameraDshowApp.exe没有什么问题,当camera分辨率为1280*1024或更高时,第一次运行CameraDshowApp.exe没有问题,第二次打开系统就会死掉。很明显问题是出在系统内存上,但遗憾的是没有找到问题的根源在哪里,对DirectShow还是不熟啊!<br /> 打开CameraDshowApp.exe时界面如
2010-11-19 15:28:00
2233
原创 Wince6.0 下Camera(OV3640) 驱动开发全程记录
<br /> 从开始搞camera驱动到正式搞好经历了差不多一个月的时间,现在回头来看发现走了很多弯路,耗费了不必要的时间和精力,也许这是菜鸟必经的过程吧。周末没事把调camera驱动的整个过程总结一下,以免以后忘了对不起那一个月的时间和精力,同时也给正在调camera驱动的朋友一点参考。<br />一.camera硬件调试<br /> 我采用的是camera是300万像素的OV3640,处理器为S5PC100,接口电路如下图所示:<br /> <br /> 第一步要干什么呢,当
2010-11-13 16:43:00
7803
26
原创 Initialization Sequence for Camera Drivers of CE6.0
<br />在MSDN上看到一篇关于CE6.0 camera 驱动初始化过程的文章,对整个初始化过程做了介绍,能帮助我们理解整个驱动框架,本想翻译过来,但自己的英文水平太烂了,就贴出原文吧,原汁原味的更好!<br /> <br />The initialization sequence for camera devices is as follows: All camera drivers must be registered under the same GUID. The following cod
2010-11-11 14:32:00
1405
转载 DSHOW 显示视频
显示视频(转)(找不到原作者了,不过这篇文章对我来说来得太及时了)<br />显示视频<br /> <br />DirectShow 提供了如下过滤器来显示视频:<br />l Video Renderer过滤器. 该过滤器可用于所有的支持DirectX的平台,它对平台没有其它特殊的要求。可以是它,或GDI来显示视频。它是在WindowsXP之前操作系统的默认视频显示过滤器。<br />l Video Mixing Renderer Filter 7 (VMR-7). VMR-7可用于Win
2010-11-11 11:37:00
2672
4
原创 如何编译cameraapp?
<br /> 在wince6.0下有一个camera驱动的测试代码,位于D:/WINCE600/PRIVATE/TEST/MULTIMEDIA/DIRECTX/DSHOW/CAMERA/CAMERAAPP下。编译成功后就能得到CameraDshowApp.exe,即测试camera的工具。该工具小巧玲珑,功能齐全,实现了预览,录像,拍照的功能,是调试camera驱动的好助手。但是好多人在编译的时候出现了很多问题,总是编译不成功,不是缺少这个lib文件,就是缺少那个.h文件。也在网上看到有一些解决
2010-11-10 17:08:00
1758
转载 S3C2440的camera接口特性及WinCE 下的驱动
<br />S3C2440是应用十分广泛且适用于嵌入式系统的一款嵌入式处理器。winCE 5.0/6.O是微软公司开发的一款专用于嵌入式系统的实时操作系统。其模块化设计使开发人员可以根据需求定制设备。目前,国内大部分OEM商都提供了对S3C2440的camera接口在WinCE5.O/6.0下的驱动支持。遗憾的是,目前国内OEM商提供的驱动仅限于对几款微型摄像头(如ov9650等)的驱动支持。当用户采用CCD摄像头作为图像采集的前端设备时,原来的驱动已经不能使用了,而CCD摄像头因其优越的性能,在监控领域扮
2010-10-29 17:15:00
1888
转载 字符串指针与一维数组指针的区别
<br />字符串指针与一维数组指针有很多共同点,但也有一些区别:<br />1、赋值有要求。<br /> 我们可以在程序中将一个字符串赋给一个字符串指针变量,但不可以将一个字符串赋给一个数组名。即:<br />允许:char *p; p = "I am a teacher !"; 但不可心: char a[20]; a = "I am a teacher!";这是因为字符串指针变量本身是一个变量,而字符串代表了其首地址,因而赋值是理所当然的;但数组就不一样,数组一旦定义后,数组在内存中的存储单元即确定,
2010-10-26 11:52:00
1447
原创 Wince6.0 下Camera(OV3640) 驱动开发笔记1——基于S5PC100
<br /> 由于项目需要开始搞S5PC100的摄像头驱动,camera类型是OV3640.以前还没有做摄像头驱动,缺乏相关的经验,另外基于S5PC100的摄像头驱动代码结构又比较复杂,谁让A8的功能强大呢,功能多了强了开发起来难度自然就增大了。总之,目前的感觉是——好复杂!<br /> 既然项目需要,那么容易要上,有困难也要上,慢慢啃吧。<br /> 先说一下S5PC100支持输入的camera数据类型,有三种:ITU-R BT 60/656 类型,DMA(AXI 64bit interfa
2010-10-12 17:43:00
2393
原创 Wince6.0 电源控制驱动程序分析-基于S5PC100
<br /> 在wince6.0里有一个电源控制模块驱动(Power Controller Driver),该模块主要是反映和控制系统电源状态,以及控制系统硬件模块的电源状态。该驱动也是典型的流式驱动,提供以下接口:<br />EXPORTS PWC_Init PWC_Deinit PWC_Open PWC_Close PWC_Read PWC_Write PWC_Seek PWC_IOControl PWC_
2010-09-09 15:20:00
1564
原创 STEPLDR启动程序分析
<br /> STEPLDR是用来加载EBOOT的,即引导EBOOT的启动。STEPLDR主要包括两部分:StartUp.s 与 main.c,StartUp.s 主要是初始化CPU,引导EBOOT的功能主要在main.C中完成,该部分结构和代码都比较简单,代码如下:<br />void main(void){ register nBlock; register nPage; register nBadBlocks; volatile unsigned c
2010-08-27 16:34:00
2358
1
原创 S5PC100 启动过程简单分析
<br /> <br />S5PC100处理器采用64位内部总线构架,包括强大的硬件加速器,具有更高的主频和更丰富外设,能适用于对性能和处理能力有更高要求的嵌入式系统应用场合。S5PC100的支持多种启动方式:NAND、SD/MMC、OneNAND、NAND与USB等。流程图大致如下: <br /> <br /><br /> 从上图可以看出,整个其他过程分为两个阶段:BL0,BL1。<br />第一阶段:CPU上电后从内部ROM开始执行,在内部ROM有第一个引导程序BL0,BL0从系统指
2010-08-27 11:17:00
2550
1
转载 WinCE上BINFS实现详解(快速启动Wince)
<br />作者: wwfiney@ARMCE<br />网上不少介绍三星24x0系列的BINFS启动方式实现,有些内容上描述的不是非常全面<br />下面就WinCE6上的BINFS实现,从基本原理到修改BSP,再到如何烧录启动做一个较全面的讲解<br /><br />一 BINFS到底是什么?<br />其实BINFS就是MS给CE做的一种存放系统镜像的一个文件系统。<br />一说文件系统,大家可能比较头大。那么这么说,其实就是一个结构体(说是文件系统确实比较勉强,结构体可能更合<br /><br /
2010-08-25 16:46:00
836
转载 Windows CE串口驱动简析(1)-驱动架构(基于WinCE5.0 SMDK2410 BSP的Serial驱动)
作者把串口驱动的框架进行清晰的分析,看过以后对串口驱动的理解进一步加深了,头脑中有了一个整体框架!
2010-08-13 14:10:00
2015
原创 Wince外部中断控制LED详解---动态申请
本实例是基于S3C2440,WINCE5.01.中断分两大类:内部中断和外部中断。 外部中断:由外部设备所引发的中断,这些外部中断都是通过GPIO中的中断引脚产生的。S3C2440有24个外部中断,相关的寄存器如下: EXTINT0-EXTINT2:三个寄存器设定EINT0-EINT23的触发方式。 EINTFLT0-EINTFLT3:控制滤波时钟和滤波宽度。 EINTPEND:中断挂起寄存器
2010-08-05 17:10:00
2478
原创 WinCE Display驱动程序开发浅谈
<br /> wince的显示设备驱动程序开发总体来说是比较复杂的,复杂是因为微软把它封装的太好太详细了,想清楚和掌握显示设备驱动程序工作的每个细节问题不是短短几天就能搞明白的。虽然如此,但我们开发起来不会有很大的难度,因为很多工作微软已经帮我们做了,我们要做只是在几个地方填空而已。 <br /> GPE类是用户开发window ce的显示设备驱动程序工作的起点。<br /> window ce的显示设备驱动程序开发者只需要安要求设计实现一个GPE类的继承类,并且定义一个
2010-07-30 10:14:00
887
KinectFusion 和 ElasticFusion 三维重建方法
2018-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人