- 博客(64)
- 资源 (11)
- 收藏
- 关注
转载 ARM Linux 3.x的设备树(Device Tree)
ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx
2014-07-27 23:00:54 1785
转载 Android系统SD驱动浅析
首次出关于MTK方面的驱动文章,网上也很少有这方面的文章,所以我立志要写几篇这样的文章来引导刚出道的朋友们,咱们一起努力!大家都说MTK简单,但我个人做过高通平台一年时间,然后转而做MTK平台,感觉还是能学到东西的,代码并不比所谓的高通简单,只是它做的好,封装的好,所以做这块驱动可能开发者做的事情没高通多,所以大家觉得容易,学不到东西。但只要自己对技术执着,深入到架构的实现,还是能学到
2014-05-25 22:42:09 3781
原创 ubuntu下编译undefined reference to error解决方法
undefined reference to error解决方法Linux下编译程序时,经常会遇到“undefined reference error” 报错, 这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined reference error,先提一下Linux gcc链接规则: 链接的时候查找顺序是:
2014-04-30 13:28:50 8981
原创 怎样做更好的Android驱动工程师
说句实话,方案公司那个层次的驱动已经不能算驱动了,实际上已经做了好几次的硬件抽象的封装,跟写应用没什么两样。真正linux底层还是需要有点功底的才行,不过一般这样的角色都在外资芯片公司。外资芯片公司的驱动,可以拿35W。设计公司的驱动行吗?人家研究的都是linux的底层驱动代码,没有长期的看代码积累几乎是不可能成长的。因为驱动层和linux内核息息相关,比方看到linux都
2014-04-26 20:10:30 4939 4
原创 展讯Framebuffer驱动解析
众所周知,Android的显示驱动是基于Linux标准的FrameBuffer驱动,用来抽象出Android的底层显示驱动,以屏蔽不同的显示硬件造成的不兼容,下面就以展讯平台的显示驱动来分析一下FrameBuffer驱动,展讯在底层用一个叫做sprdfb_device的设备驱动来建立一个基于FrameBuffer的设备。计算机研究者从很早开始已经开始讨论理论上FrameBuffer的优点,但却一直苦于没有能力生产一台拥有足够内存的计算机。1969年,贝尔实验室的JoanMiller试验了第一个
2014-04-12 23:51:35 2776
原创 Android摄像头调试分析
前些天在展讯6825C 上调试gc2115摄像头,发现后摄显示效果非常的差,出现很严重的整个预览界面竖条纹现象,但是对光线变化还是有反应的,初步判断是sensor上电不对!后来经过测量各个管脚的电压,发现是PowerDown脚的电压不正常,导致切换摄像头失败,最后还是修改AVDD电压算是解决了!过程甚是纠结!
2014-03-15 17:50:24 4051
原创 Android自动化解锁脚本实现解析
Android自动化测试有很多方式,常见的包括MonkeyRunner,Robotium,SL4A,Java Instrumentation,Shell脚本等(随机点击的Monkey测试太过低级不在此列)。因测试需要,便在网上百度一下Android自动化测试脚本编写,自己动手完成Shell脚本,来通过脚本自动化测试一些需要的操作,有时候是非常的实用! 手机上有很多输入设备,这些设备的编
2014-02-15 14:00:18 5889
原创 MIPI接口屏闪屏的分析及解决方法
前些天在展讯6825上调试一颗新的ic,开始显示还可以正常显示,显示效果还比较不错,但是客户那边反馈手机用了大概几天后,显示效果变的非常的差,而且屏幕出现非常严重的闪烁,开始我怀疑是初始化代码的问题,也有可能是esd防护出现问题;等故障样机寄回后,我通过抓取串口的log,发现驱动加载的过程和初始化代码基本上没什么明显的错误,寄过来赞新的屏显示效果也还可以,但是我充电一个小时后,屏幕开始出现比较明显
2014-01-19 23:26:24 16090 7
原创 展讯mipi接口LCD调试流程(基于Android4.0版本以后)
在公司调试展讯MIPI接口的屏驱动已经有好几个月的时间了,现在总结一下调试的流程的技巧和经验,一来可以帮助自己记录一些调试的流程和方法,二来可以帮助那些调试屏驱动的码工尽快将屏调试成功,下面先简单的介绍一下MIPI吧!MIPI联盟,即移动产业处理器接口(MobileIndustry Processor Interface简称MIPI)联盟。MIPI(移动产业处理器接口)
2014-01-11 14:44:22 5356 1
原创 展讯充电管理模块浅析(一)
展讯充电管理模块浅析电池在电子产品中所占的地位就不用说了。不过电池在物理接口上比较简单,就两条线:正极、负极,这个小学生科普知识都知道;不过真正用到电子产品中时,有关电池方面的东西还是有点多的。参考文档:http://m.blog.csdn.net/blog/Baiduluckyboy/8813662http://blog.csdn.net/xubin341719/article/
2013-12-18 13:18:14 5044 1
原创 展讯平台tp和lcd驱动调试笔记
这些天在调试展讯平台上的tp和lcd驱动,这是一些小的总结。 屏幕出现竖条纹,(在视觉上给人的感觉是屏幕出现轻微的闪烁),这个可以调节vcom电压,来调节这个电压值,可以修复竖条纹.但是无论怎么修改都没怎么改善屏闪现象,可修改像素点的翻转方式,一般屏幕默认的翻转方式是列翻转,可以修改为点翻转,可完全修复竖条纹,但是带来的不良影响是可能屏幕会出现轻微的很条纹,如果屏幕的玻璃和ic都支持兼
2013-10-18 15:20:30 5874
转载 使用 /proc 文件系统来访问 Linux 内核的内容
简介: /proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux® 内核空间和用户空间之间进行通信。在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对 /proc 虚拟文件系统进行了介绍,并展示了它的用法。 最初开发 /proc 文件系统是为了提供有关系统中
2013-10-06 22:07:34 1050
原创 Linux下makefile和kconfig简单解析
想要研究linux下的驱动开发,makefile和kconfig是我们必须关注的,kbuild系统更是我们必须了解的重要部分,那我们就先看看kbuild的英文文档吧!
2013-09-07 14:15:02 3434 1
原创 宏途_LCD调试流程.
今天在调试Z7宏途的LCD屏时,开始是开机屏幕不亮,背光都不亮,可能板子已经损坏,一般通过测试电流电压简单验证,(注:硬件引脚没焊好也会引起读lcd id出现错误!!!)
2013-08-24 10:52:54 2873
原创 Android LCD调试实例流程
调试前的参考文档:1)调试lcd背光,背光主要分为PMIC自带的和单独的DCDC,如果为PMIC自带的背光,一般平台厂商已经做好,直接调用接口即可,如果为单独的DCDC驱动,则需要用GPIO控制DCDC的EN端2)确认lcd的模拟电,io电是否正常3)根据lcd的分辨率,RGB/CPU/MIPI等不同的接口,配置控制寄存器接口4)根据lcd spec配置PCLK的频率,配置PCLK
2013-08-10 16:15:04 3187
原创 展讯平台的u-boot驱动流程解析
U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳转到第二阶段代码入口 (2)第二阶段的功能Ø 初始化本阶段使用的硬件设备Ø 检测系统内存映射Ø 将内核从Flash读取到RAM中Ø 为内核设置启动参数
2013-08-04 22:57:05 3724 3
原创 Linux下I2C驱动分析
Linux的I2C驱动架构1. Linux的I2C驱动架构Linux中I2C总线的驱动分为两个部分,总线驱动(BUS)和设备驱动(DEVICE)。其中总线驱动的职责,是为系统中每个I2C总线增加相应的读写方法。但是总线驱动本身并不会进行任何的通讯,它只是存在在那里,等待设备驱动调用其函数。设备驱动则是与挂在I2C总线上的具体的设备通讯的驱动。通过I2C总线驱动提供的函数,设备驱动可以忽略不
2013-08-03 16:18:24 1592
原创 教你学会使用nmake
make工具最主要也是最基本的功能就是通过描述文件来描述源程序之间的相互关系并自动维护编译工作,而描述文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并链接生成可执行文件,并要求定义源文件之间的依赖关系,为了更方便使用,文件中同时可以用一些宏定义。描述文件一般需要包含以下内容:● 注释● 宏定义● 显式规则● 隐含规则 前些天一直在编译创维的
2013-07-18 11:27:55 5709
原创 电视机顶盒搜台原理和方法简析
机顶盒搜台方法主要分为三种:①:机顶盒软件开发厂商会在机顶盒内设定一个初始频点(MainFrenquency).或称主频点,机顶盒可以根据这个主频点的物理参数,如频点.符号率,和调制方式,去锁定此频点.如某机顶盒设置506MHZ作为数字节目的承载主频点,获取NIT(Network Information Table),NIT表由以下两个描述:1.Cable Delivery System De
2013-07-03 15:09:45 5092
原创 我的DIY Android之旅--驱动并控制你的Android开发板蜂鸣器
这些天一直在想Android驱动框架层的实现,本文借助老罗老师的博客和现有通过过分析台湾的Jollen的mokoid 工程代码,并尝试在Android开发板上驱动一个简单的蜂鸣器,来解析Android下驱动的调用。 HAL架构由Patrick Brady (Google) 在2008 Google I/O演讲中提出的,如下图。 其实可以考虑先编写驱动代码,然后使用N
2013-06-22 17:18:16 4264
转载 理解嵌入式开发中的一些硬件相关的概念
理解嵌入式开发中的一些硬件相关的概念 做嵌入式系统开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有一定的了解。这样才能深入的研究下去。下面我们简单的介绍嵌入式开发中的一些硬件相关的概念。----电平(Level) 在数字电路中,分为高电平和低电平,分别用1和0表示。一个数字电路的管脚,总是存在一个电平的,要么高要么低,或者说要么1要到0(其实,
2013-06-21 15:13:01 1319
原创 简单解析linux下进程通信方法
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间
2013-06-20 22:50:27 1760
原创 我的DIY Android之旅--Android应用层APP调用底层驱动实例(辛酸历程实记)
现在在这个智能手机的时代, 我相信一个具有自己个性的手机才可以吸引到自己的用户,而iphone在具有创新和个性的硬件基础上建立了自己的iOS手机操作系统,给了用户一个非常特别的用户体验,从而赢得了市场,Android的迅猛发展,各种各种的Android手机不断推出,市场占有率不断上升,而且Android手机出货量也是在极大的增长,已经形成了手机操作系统三分天下的局面,并且在不断的增加着Androi
2013-06-16 22:46:39 5157 3
原创 我的DIY Android之旅--单独改造你的Android模块
大家编译过Android源码的童鞋肯定知道,编译整个Android源码需要非常长的时间,以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system.img的命令。在继续学习Android源代码之前,就让我们先来看看这个命令吧。
2013-06-02 22:28:56 2142
原创 我的DIY Android之旅--下载编译并运行你的Android内核
前一段时间一直在弄毕业论文和答辩的事情,还要急着赶回来上班,已经有一段时间没有弄Android开发了,话不多说,在老罗前一篇文章提到,从源代码树下载下来的最新Android源代码,是不包括内核代码的,也就是Android源代码工程默认不包含Linux Kernel代码,而是使用预先编译好的内核,也就是prebuilt/android-arm/kernel/kernel-qemu文件。众所周知,一个
2013-05-30 23:01:09 2687
原创 结构体和联合体简析
相信大部分的程序猿都用到过结构体和联合体,今天就简单的说说结构体和联合体。--关于结构体和联合体的定义结构体:struct ,是由一系列相同类型或不同类型的数据构成数据的集合,也叫结构。其最主要的作用就是封装。联合体:union,几个不同的变量存放在同一块内存区域中。也就是使用覆盖技术,几个变量互相覆盖。 --关于结构体和联合体的长度大小计算在结构中各成员有各自的内存空间,一个
2013-05-30 16:35:40 2060
转载 C语言位操作简析--底层开发程序猿必备
C语言位操作--底层开发程序猿得好好收藏 在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。特别是在通信及底层开发过程中,不可避免的接触到一些与位操作的问题,好好牢记这些知识,
2013-05-30 16:00:06 1605
原创 我的DIY Android之旅--Android2.3源码初识
编译运行完Android源码,接下来的就是如何去学习Android庞大的源码,没有一个正确的方法去学习分析它,那么你用几年的时间估计也不能把其中的代码弄清楚,作为一个Android开发者,你需要的是从一个非常庞大复杂的代码中提取你想要的那部分,然后正确的去修好编写它! 闲话少说,源码(Android2.3)的目录结构如图:Makefile (makefile文件)bionic (b
2013-04-12 23:39:05 1403
原创 我的DIY Android之旅--在(32位)ubuntu11.04编译运行Android2.3.源码
虽然很多网友都已经写过在ubuntu11.04中编译运行Android2.3的文章,不过,任何东西都得亲自去做过才会更加清楚的知道其中的步骤,很久以前就想亲自编译一下Android源码,想做一下Android的嵌入式开发,最近才开始真正去做,当然之前加入一个CM10的开发团队的部分尝试还是很有用的,虽然没怎么做出点什么东西,还是蛮惭愧的!最近要回学校做毕业设计和论文答辩,黄石的夏天估计热的稀烂,和
2013-04-12 21:34:44 1732
转载 Android驱动开发-底层驱动开发
Android驱动开发的一些参考资料,转载过来以后学习学习!Android 开发之 ---- 底层驱动开发(一)驱动概述 说到 android 驱动是离不开 Linux 驱动的。Android 内核采用的是 Linux2.6 内核 (最近Linux 3.3 已经包含了一些 Android 代码)。但 Android 并没有完全照搬 Linux 系统内核,除了对Linu
2013-03-13 22:12:33 5055
原创 Android嵌入式开发
想要做Android嵌入式开发,你可以看看下面的内容参考文档:http://blog.csdn.net/zkycdy/article/details/8296384一:首先你必须了解ARM平台 Android 移植与驱动核心开发,当然也可以是X86和其他的平台,不过其他平台的Android智能终端开发并不是很多。 Android嵌入式智能操作系统是基于Linux内核和驱动
2013-03-12 22:30:10 7547
原创 关于Android NDK如何成功调用stl的使用分析
今天终于在Android上成功调用了基于RTSP的网络库接口,经过N长时间的纠结,终于完成了!我的Android NDK版本是NDK r5b,系统是ubuntu10.04首先,Android中的C++引用stl库1 在需要调用模板库的文件前包含头文件: #include #include 此时编译可能不过,需要在Android.mk文件内添加:
2013-02-01 21:02:30 8376
原创 Android加载动态库失败分析
最近在做Android上的多媒体开发,通过JNI接口调用各种底层库,例如:lib***.so 如下所示,总是加载不成功。调试发现,每次加载so库,会跳到catch异常处理部分,然后打印异常log信息。 1.static{ 2. try{ 3. System.load("/data/data/com.***/lib/lib***.so");
2013-02-01 09:54:10 3886 1
原创 Android 上如何移植live555生成库文件
基于移动平台的多媒体框架——移植Live555到Android上 live555是一个处理流媒体传输对c++库,再Mplayer与vlc中都有用到。我们计划将其加入到自己编写对Android上的播放器中作为流媒体模块,首先就需要将这个库移植到Android上。 方案I: 最近在做Android上的多媒体开发,需要在Android上移植live555,因为我算是Android上多媒体
2013-01-30 22:22:00 5850 8
原创 Android 上如何移植ffmpeg并且生成正常大小的ffmpeg库文件 --辛酸历程
最近在做Android 上多媒体的开发,首先是需要在Android移植ffmpeg,结果在网上找了很长时间的文章,哎,还是各种失败,生成的库文件只有1.6k大小,这可急坏了我,还是网上各种度狗最后在我的系统ubuntu 10.04,Android NDK 是Android NDK r5b,成功编译出了1.9M大小的libffmpeg.so文件,最近有空还是决定把编译历程写下来,给那些碰
2013-01-29 22:41:46 3168
原创 关于Android NDK中如何调用第三方静态库--live555
最近一直在做Android上多媒体的开发,主要涉及到Android媒体框层,开始是移植live555和ffmpeg到Android上,改进Android多媒体框架Open Core的不足附上Android体系架构图:开始是移植出现各种错误,各种找资料,最后在Android上成功移植上了live555和ffmpeg,最近也忙于整合测试,没时间写写心得!前几天在测试在Android上调
2013-01-28 11:44:49 5433 4
原创 Red hat修改核心参数
Red Hat Enterprise 6中的部分默认参数可能在实际的工程中不实用,例如我在创建共享内存时一直报错,尝试了各种修改方法,包括权限问题,防火墙的问题,最后查出共享内存创建的错误码:errno 22,下图见shmget返回的错误码最后查出是系统核心参数默认太小的问题,这提醒我们以后要在工程中多多注意系统默认参数带来的问题!所以系统参数优化很重要!Enterprise Linu
2012-10-08 10:53:38 4239 2
原创 自己动手在Red Hat Enterprise 6.0上搭建LAMP开发环境,你也可以的!
RedHatEnterpriseLinux6.0下apache2.2.6+php5.2.5+mysql5.0.46源码安装配置 说明:以上各种软件都是我自己在网上到处寻觅才找到,关键是开发环境决定的软件版本是定下来的,所以必须找到相对应的版本,这可要花很长的时间,建议各位童鞋在搭建环境前耐心寻找!●mysql 5.0.46安装配置 cd /usr/local/src
2012-09-26 11:11:44 2033
原创 Ubuntu配置vim增加Ctag+Tlist+Nerdtree方便使用
以前看别人使用vim,貌似比较方便,今天也参考配置了一下,貌似还不错!参考文档:blog.csdn.net/bokee/article/details/6633193blog.csdn.net/yangmingysc/article/details/7255272以下是我的.vimrc文件,仅供参考,map :call SaveInputData()func! Save
2014-11-27 17:47:43 2670
原创 高通msm8926 camera调试笔记
前些天在调试一组高通msm8926上的摄像头,之前ov5648+imx135已正常的点亮了,但是后续需要一个mini配置版本的方案,需要兼容ov2685+ov8865,于是先做好调试的前期准备,跟摄像头模组厂要模组spec和芯片的datasheet,先仔细阅读一下ic的datasheet,并仔细查看模组的打样图纸和模组spec,首先要确认的是ic的各路电压是可以正常的供出,一般需要注意的就是DVD
2014-08-30 14:39:13 12081 5
嵌入式根文件制作工具
2013-03-27
Android上调用ffmpeg的简单实例
2013-01-29
Android NDK r5b
2013-01-29
Android NDK调用live555静态库简单实例
2013-01-29
Android NDK调用第三方的动态库实例-绝对简单易用
2013-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人