技术
little_paul
这个作者很懒,什么都没留下…
展开
-
android debug set screen rotation
好久没更新博客,最近debug了一个比较有趣的bug,有时间闲下来,整理一下还是挺不错的。先来看看这个bug是什么情况:以上两张图片是android的动态logo,也就是BootAnimation logo。上面显示出来的是同一张logo,左边是正常的,但在显示了一半的时候,就成了右边的样子。 正常的情况下,无论哪个版本的android,启动的时候,lo原创 2016-10-03 14:32:29 · 2248 阅读 · 0 评论 -
HI3515海思开发板移植3G模块笔记
硬件平台:海思Hi3515 Linux3G模块:1、移动模块:ZTE M305(TD-SCDMA)2、联通模块:HUAWEI EM770W(WCDMA)3、电信模块:HUAWEI EM660(CDMA2000-EVDO)开始工作:1、在编译内核时,通过make menuconfig打开模块加载选项,因为调用3G需要用到pppd服务,所以找到pppd服务的,全部启用。转载 2015-09-14 23:09:00 · 1957 阅读 · 0 评论 -
android 3G移植
一 开发环境简介内容 说明3G模块 华为EM820W(WCDMA)3G SIM卡 中国联通3G卡转载 2015-08-05 16:51:36 · 1211 阅读 · 0 评论 -
linux检测网线插拔状态
Shell查看网线插拔状态:使用ifconfig命令,如果含有“RUNNING”,说明网线接入,否则就没有。例:ifconfigifconfig eth0ifconfig eth0|grep "RUNNING"=======================================================================转载 2015-08-05 17:01:02 · 3354 阅读 · 0 评论 -
Android休眠唤醒和wakeup_source机制的使用(2)
流程相关的代码分析(非wakeup source代码)这里主要分析当出发power类事件时,android是怎样使用wakeup source机制来实现休眠唤醒的。关于wakeup source的代码,以后再分析。当power key按下后,首先是key 驱动里面读取键值,然后上报给系统:351 static irqreturn_t gpio_keys_isr(int原创 2015-08-15 09:59:36 · 4697 阅读 · 0 评论 -
对android rotation的添加与定制
在做android开发的过程中,我们难免会遇到显示旋屏的需求,特别是在一些广告机类的应用和产品中,旋屏是家常便饭。还是那句话,如果厂家的BSP够完善,那么做起来就很方便,只需修改一些参数就行。但如果厂家的BSP没把这功能加上,做旋屏也够你折腾一阵子了。一般把旋屏集成在BSP里面的也只有消费类的厂家,做embedded的厂家的BSP相对没有那么完善。所以说做消费类的工程师难免不会有点娇生惯养。我们有原创 2015-07-22 22:56:22 · 8517 阅读 · 2 评论 -
Android层面上对sensor及event事件的处理
可能这篇总结写得会有一点凌乱,一会讲sensor,一会又讲event的。但是把两者摆在一起也是有原因的,sensor的处理是event事件的基础上实现的,正是因为sensor对event的依赖性,所以把两者摆在一起了。仔细想想,还是会有其中的原因。开始前首先要说明两点1、 这里说的android层面上是linux内核之上的2、sensor指的是gsensor,lightsensor等原创 2015-08-01 17:49:01 · 13596 阅读 · 4 评论 -
空手套白狼--基于系统分区镜像的修改
曾经遇到过这样的一个问题:有一位同事误操作把windows下编辑过的一个文件覆盖了ubuntu下android 源码下的同样的文件,造成某个apk在运行的时候出错。再加上不同版本更新做了好多的改动,调查了许久查不出缘由,查看repo-git历史修改信息也没看出任何相关的改动。终于在万分无助之际相处了一个办法:把旧机器上的system.img 跟boot.img 抽出来,烧录到新的板子上,来缩小问题原创 2015-08-12 20:33:04 · 1997 阅读 · 0 评论 -
Ipu 与多显——yocto跟android下的简介
注:由于跟平台相关,所以一些内容不会说得太直白,跳步比较多。至今,cpu里面使用到ipu的厂家不多,目前freescale是其中一家。所以,以下的分析是基于freescale平台的ipu情况的基本讲解。IPU是什么?IPU是显卡中的CPU,GPU的一种,由英伟达首先提出,以减少CPU的开销。最初由英伟达提出。目前实现IPU的厂家不多,freescale就是其中之一。接下来是freescal原创 2015-07-20 22:46:46 · 4395 阅读 · 1 评论 -
在android 4.2.2上调试MU609步骤,WCDMA
1.修改kernel\drivers\usb\serial\option.c,添加MU609的ID号[cpp] view plaincopyprint?#define HUAWEI_PRODUCT_E353 0x1506#define HUAWEI_PRODUCT_E353 0x1506[cpp] view plaincopyprint?转载 2015-09-14 23:06:53 · 2404 阅读 · 0 评论 -
android lcd 背光控制流程
此文章是网上看到的,在MTK平台基础上的背光控制流程的分析。个人觉得写得比较详细,于是截取部分内容转载出来。细节的框架图:由此可见光系统从上到下依次分为java APP层、java 框架层、本地层和驱动层。下面就来看APP层,先给出调节背光的应用界面:此功能在settings--->display--->bri转载 2015-09-07 22:54:34 · 15810 阅读 · 1 评论 -
yocto inittab initialization processing
yocto是用来制作发行版image、BSP的一个很强大的工具,其文件系统的结构跟Ubuntu、redhat等很像,几乎如出一辙,这也能看出,yocto的成长也是能够整合多方平台(系统)的。好久没写博客,最近研究了一下yocto文件系统的启动流程,觉得挺有意思,在这里分享一下。废话少说,正式进入主题。内核起来,启动第一号进程(init进程,/sbin/init)后,就把控制权交给了init原创 2016-10-16 17:15:27 · 2496 阅读 · 0 评论 -
ARM+llinux系统移植3G拨号上网收发短信(二)
一、发送text格式的短信给联通发text格式的短信:~ >: microcom -s 115200 /dev/ttyUSB1atOK设置短信格式为Text模式:at+cmgf=1OKat+cmgs="+861300711**** "输入发送的内容:> hello (内容写完后按一下ctrl + z发送转载 2015-12-02 10:50:20 · 950 阅读 · 0 评论 -
GSM模块发送短信的AT指令相关知识
AT+CMGC Send an SMS command(发出一条短消息命令) AT+CMGD Delete SMS message(删除SIM卡内存的短消息) AT+CMGF Select SMS message formate(选择短消息信息格式:0-PDU;1-文本) AT+CMGL List SMS message from preferred store(列出S转载 2015-12-02 10:59:41 · 14807 阅读 · 0 评论 -
以烧录yocto镜像为例--详细解析freescale MFGTools烧录原理
简介MFGTools是freescale官方推荐的一个使用OTG来升级镜像的软件。此软件功能很轻大,而且可塑性非常高:可以用来升级linux,升级android;单独刷写某一系统分区,如android的boot.img分区等;独立地刷写spi nor,emmc等等;而且作为一个可量产性的工具,MFGTools可以同时支持多通道的刷写。相对于市面上一些平板厂家的刷机软件,MFGTools的一大亮原创 2015-11-22 10:35:33 · 13885 阅读 · 2 评论 -
android4.3-android4.4.2触摸唤醒
触摸屏唤醒是一个挺有趣的功能,在一些特殊的应用,特殊的场合上能使用到。如一些post机、收银台等。没人的时候,系统超时进入休眠或关屏;有人操作,点击一下触摸屏把屏幕亮起来。很人性化,功能也很炫。好,开场白说完,进入主题。触摸唤醒分两种情况:第一种、CPU进入深度休眠第二种、假休眠关于第一种情况,好像市面上某家厂商的手机(没有打广告的意思),点击两下屏幕就可以进入休眠;再点击两下就实原创 2015-11-06 21:39:33 · 3017 阅读 · 2 评论 -
实例分析sizeof与strlen的用法
一段时间没写程序,可能有一些用法就会生疏。今天遇到一个sizeof和strlen的用法,折腾了老半天,事后做一个小结。sizeof 是关键字,strlen是函数,两者有本质的差别,虽然功能相似。strlen使用的局限性比较多,如:strlen只能用char*做参数,且必须是以''\0''结尾的。详细可查看网上一些对两者的对比介绍:http://zhidao.baidu.com/link?u原创 2015-11-11 17:28:55 · 1196 阅读 · 0 评论 -
浅析linux kernel段错误及调试手段
oops,kernel panic, Segmentationfault。相信跟linux kernel打交道的人都会遇到过这些内核提示。根据严重性不一样可以分为:警告,惊慌,还有段错误——也就是我们平常遇到的内核崩溃的情况。对于oops和kernel panic而言,事态过于严重的时候都可能导致Segmentation fault的产生,然后内核会打印出一大堆信息,如下。或许有些内核过了1分原创 2015-10-11 12:25:36 · 6338 阅读 · 0 评论 -
慢慢总结C语言一些常用函数
fgets头文件:#include 函数原型:char *fgets(char *s, int size, FILE *stream);返回值:成功时s指向哪返回的指针就指向哪,出错或者读到文件末尾时返回NULL。说明:fgets从指定的文件中读一行字符到调用者提供的缓冲区中。gets头文件:#include 函数原型:char *gets(char *s);原创 2015-10-25 09:54:35 · 4026 阅读 · 0 评论 -
Linux程序之线程轮询
说到linux程序,我们会条件反射地想到用户空间跟内核空间,两者有很多的相似之处,使用到的资源保护,数据同步的方法也类似。如用户空间用open去打开一个文件,内核里面有file_open的操作等。但他们之间还是有需要遵循的规则,如内核空间跟用户空间直接的数据拷贝,需要用到copy_from_user和copy_to_user;这也是为什么我们平时听到的在32位机上,linux进程都可以独立地访问4原创 2015-11-05 19:19:35 · 4033 阅读 · 0 评论 -
Android 出厂设置修改
Launcher 总结: 1、launcher的布局太居中,要想两边拉伸 apps_customize_pageLayoutPaddingLeft">40dp apps_customize_pageLayoutPaddingRight">40dpapps tab栏的宽度(Launcher2 icon 数目、大小)\packages\a转载 2015-08-01 22:14:18 · 1326 阅读 · 0 评论 -
dirname: missing operand 问题解决
以下问题在网上找了许久没找到资料,问题解决了,在这里贴出来。问题错误信息:/bin/bash: /usr/local/cross_compiler/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-gcc: command not founddirname: missing operandTry `原创 2015-08-27 23:04:38 · 31700 阅读 · 2 评论 -
dts从uboot加载到kernel使用案例的分析
曾经在空间里面转载过一篇《ARM Linux 3.x的设备树(Device Tree)》的文章,看了几遍,仍然不知所云。后来在工作中才慢慢地对dts有所领悟。所以,在这里想用简单的词语,描述一下自己对dts的理解。首先,dts是什么?很简单,一句话:为了瘦简内核、去掉部分冗余的代码,而用一种简单的方式(语言)把硬件设备相关信息描述出来,这就是dts。既然命名为“device tree”(本原创 2015-07-11 21:11:53 · 19917 阅读 · 1 评论 -
分析android预装apk以及相关的实现手段
如果厂家代码完善的话,平时拿到厂家的BSP,需要预装apk的时候,只需往预定好的目录拷贝apk即可。但如果自己手动实现起来并不见得那么简单。所以这里为大家介绍两种实现方法。 预装的条件: 出厂时候装上apk,需要删除apk的时候可以删除。 在android 下,除了使用android自带的apk安装程序进行安装apk外,对开发人员而言,可以使用 adb inst原创 2015-07-09 22:57:19 · 10233 阅读 · 5 评论 -
cpu调优
一)中断的CPU亲和性 我们可以调整中断到某个CPU上,这样可以让CPU更有效的利用起来. 首先关闭掉irqbalance服务,如下:/etc/init.d/irqbalance stop Stopping irqbalance: [ OK ] 查看当前各种中断所使用的CPU,如下:for f in `find . -na转载 2013-09-03 10:28:01 · 1298 阅读 · 0 评论 -
HAL层一些简单调试手段的使用
好久没写东西,也不知道写些什么,就随便说说调试吧。说的调试,我们难免会想到打印。我想,打印是平时调试程序中用的最多的一种手段。而打印,我们平时一般都不会直接用“printf”,二是用一个宏,如:#define HALPRINTF printf// #define HALPRINTF (···)用可变参数的形式,就可以做到随意的开关调试信息的目的了。把消息打印到内核,然后就可原创 2013-04-18 14:16:28 · 1854 阅读 · 0 评论 -
译:深入Linux内核架构(第一章)1.3.3
译:深入Linux内核架构(第一章)注:选择性翻译原文。1.3.3地址空间和权限级别在我们开始讨论虚拟地址空间之前,先指定一些符号约定。贯穿本书,分别用KiB,MiB,和GiB来代表大小单位。那些传统的单位:KB,MB,和GB在信息技术很不合适。因为他们代表十进制(103,106,和109 ),而二进制系统在计算机系统中无处不在。因此KiB,MiB,和GiB分别代表着210,220,和翻译 2013-02-20 16:49:09 · 873 阅读 · 0 评论 -
Segmentation fault:你是否曾经为这头疼??
Segmentation fault 也是我们常说的段错误,是编写代码过程中很容易遇到的事情。有时候你也许会感叹无法避免这种情况的发生,甚至常常为这位“熟客”感到头疼。段错误,总结起来无非是两种情况导致:内存越界,访问非法内存。 1、内存越界内存越界就是指内存输入超出了预分配的空间大小,导致系统异常。如下面一段代码:1 #define MAXNUM 10242原创 2013-02-01 14:12:21 · 3626 阅读 · 0 评论 -
译:深入Linux内核架构(第一章) 1.1——1.2
译:深入Linux内核架构(第一章) 1.1——1.2注:选择性翻译原文。1.1内核的任务在纯粹的技术领域来说,内核是介于硬件层和软件层间的中间层。其目的是传递应用层需求到硬件,以及以底层驱动的身份处理系统中设备和组件(间的工作)。然而,还有其他有趣的方式来查看内核。1、从应用的角度,内核可以看作一个增强机,把计算机抽象话到一个很高的水平。例如,当内核为一个硬盘分配地址,一定要决定翻译 2013-02-20 09:49:03 · 923 阅读 · 0 评论 -
译:深入Linux内核架构(第一章)1.3—1.31—1.32
译:深入Linux内核架构(第一章)注:选择性翻译原文。1.3内核原理本章节为大量的内核原理提供简要的概述,以及简要描述一下我们将会在下面章节中详述的大纲。尽管很庞大,Linux仍然构造得很出色。然而,单个元素之间的互相影响是不可避免的。他们分享数据结构和(性能的缘故)通过各类函数互相协调,也是在严格隔离的系统中所必须的。图1-1是一个粗略的初期的层次概括图,囊括着Linux系统,和一翻译 2013-02-20 12:10:34 · 1229 阅读 · 0 评论 -
ARM Linux 3.x的设备树(Device Tree)
1. 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转载 2013-02-01 14:48:16 · 2786 阅读 · 0 评论 -
adb调试(1)--权限与管理
说adb,所有做android开发的人都知道,我们敲这几行adb调试的命令都很娴熟。既然这样,为什么还要讲adb?不过话说在其那头,这里讲adb,还是有一定意义的,说不定能给予你一些灵感。平时我们使用最多的命令无非:adb connect adb remountadb push adb install这里四条命令,其中第1,3,4条都很直白:连接,推送,安装。可是,每当原创 2015-07-25 10:45:56 · 5435 阅读 · 0 评论 -
Android4.4.2从内核logo到init logo到动态logo的分析及定制
Android开机logo一直都是各大产品定制的重点,如果IC厂家代码完善的话,那就很简单,直接把做好的logo文件放在预制好的文件夹就可以了。还有一些定制服务做得好的IC厂家,可能还会通过烧录软件直接修改升级包里面的logo文件,修改完毕后,直接烧录完事。这些二次开发做得比较完善的IC厂家一般是各大平板电脑,手机方案商。但如果android代码并没得到很完善的优化怎么办?如在工业领域的and原创 2015-07-12 22:15:22 · 3981 阅读 · 0 评论 -
电源管理之——battery选型
电源管理不管是在系统软件,还是硬件电路,都是嵌入式系统里面的重头戏。一个稳定的嵌入式系统,跟好的电源管理有着不可划分的联系。如果电源管理设计得不好,电路会有很多毛病,如上电时序不正确,开不了机等等。所以,在我们进行项目评估,或者项目规划的前期,对电源管理的考量是我们工作的重点。对于电源管理,我这里把它细分成几部分:1、 上电时序2、 关机流程3、 充放电管理这里,简略说一原创 2015-07-29 13:15:52 · 1579 阅读 · 0 评论 -
Android Framework 记录之一
简介之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework框架层了。记录1、下载源码,目录如下:2、Android系统的层次如下:3、项目目录简单分析如下:4、telphony目录文件描述CellI转载 2015-08-09 21:53:19 · 1452 阅读 · 0 评论 -
Android Framework 记录之二
接着上次的记录,续写。23、services目录文件描述class AlarmManagerService extends IAlarmManager.Stub {//定时管理服务public class AppOpsService extends IAppOpsService.Stub { // 程序选项服务转载 2015-08-09 21:55:10 · 1670 阅读 · 0 评论 -
Android休眠唤醒和wakeup_source机制的使用(1)
基本概念及流程说明Android自从到4.4之后就摈弃了臃肿的wake lock 机制,使用linux3.4之后加上的 wakeup_souce机制。到底wakeup_source 机制是怎样工作的?在讲述之前,先化小篇幅讲讲android 在wake lock 机制跟wakeup_source之间切换的取舍缘由。这部分有参考网上的相关资料。android4.4 之前一直是基于linu原创 2015-08-09 18:22:41 · 10638 阅读 · 3 评论 -
Board level的启动流程分析
现在很多博客文章都有写到关于从uboot到linux,或者是android的话就是再到android层面上的启动过程。但很少文章会讲述到关于board lever 层面上的启动过程。我这里说的board level 是关于板子上电启动,硬件相关的开机流程。好,咋们开门见山,不兜圈子。直接说如正题。本文分为几部分:上电à电源管理àcpu启动àubootà跳转启动device。下面正式介绍。原创 2015-07-16 09:34:04 · 1339 阅读 · 0 评论 -
wpa_supplicant适配层 -- 详解
适配层是 通用的wpa_supplicant的 封装,在Android中 作为 WiFi部分的 硬件抽象层来使用。wpa_supplicant适配层 主要用于 与wpa_supplicant守护进程 的通信,以提供给Android框架使用,它实现了 加载、控制 和 消息监控等功能。 1、当java层调用 loadDriver时, 它实际上是通过JNI来调用Native函数转载 2015-07-26 22:29:25 · 1625 阅读 · 0 评论 -
写一个简单的批处理(bat)
看了看以前写的总结,发现有这样的一个批处理,还是挺有意思。拿出来分享一下。1、 for /d %%i in (*) do (2、 rem set _day=%%~ti3、 cd %%i4、 for %%j in (*) do (5、原创 2015-07-26 22:58:09 · 2374 阅读 · 0 评论