- 博客(46)
- 资源 (2)
- 收藏
- 关注
原创 yocto inittab initialization processing
yocto是用来制作发行版image、BSP的一个很强大的工具,其文件系统的结构跟Ubuntu、redhat等很像,几乎如出一辙,这也能看出,yocto的成长也是能够整合多方平台(系统)的。好久没写博客,最近研究了一下yocto文件系统的启动流程,觉得挺有意思,在这里分享一下。废话少说,正式进入主题。内核起来,启动第一号进程(init进程,/sbin/init)后,就把控制权交给了init
2016-10-16 17:15:27
2481
原创 android debug set screen rotation
好久没更新博客,最近debug了一个比较有趣的bug,有时间闲下来,整理一下还是挺不错的。先来看看这个bug是什么情况:以上两张图片是android的动态logo,也就是BootAnimation logo。上面显示出来的是同一张logo,左边是正常的,但在显示了一半的时候,就成了右边的样子。 正常的情况下,无论哪个版本的android,启动的时候,lo
2016-10-03 14:32:29
2228
转载 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
14731
转载 ARM+linux系统移植3G拨号上网收发短信(三)
一、用text查看模式下面的“发”是指我敲的命令,“收”是指回车后显示的信息包括其他接收的信息。~ >: microcom -s 115200 /dev/ttyUSB1发:at收:OK设置成文本模式读:发:at+cmgf=1收:OK将信息保存在SIM卡中:发:at+cpms="SM","SM","SM"收:+CPMS: 0,5
2015-12-02 10:51:59
999
转载 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
944
转载 ARM+llinux系统移植3G拨号上网收发短信(一)
一、 PPP移植各项工作具体说明向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只需要增加几个选项就可以,然后在编译内核就可以了,这个文档默认内核已经移植过,所以只讲与USB转串口驱动和PPP协议支持的几个选项。[lingyun@localhost linux-3.0]$ make
2015-12-02 10:48:51
2863
原创 以烧录yocto镜像为例--详细解析freescale MFGTools烧录原理
简介MFGTools是freescale官方推荐的一个使用OTG来升级镜像的软件。此软件功能很轻大,而且可塑性非常高:可以用来升级linux,升级android;单独刷写某一系统分区,如android的boot.img分区等;独立地刷写spi nor,emmc等等;而且作为一个可量产性的工具,MFGTools可以同时支持多通道的刷写。相对于市面上一些平板厂家的刷机软件,MFGTools的一大亮
2015-11-22 10:35:33
13853
2
原创 实例分析sizeof与strlen的用法
一段时间没写程序,可能有一些用法就会生疏。今天遇到一个sizeof和strlen的用法,折腾了老半天,事后做一个小结。sizeof 是关键字,strlen是函数,两者有本质的差别,虽然功能相似。strlen使用的局限性比较多,如:strlen只能用char*做参数,且必须是以''\0''结尾的。详细可查看网上一些对两者的对比介绍:http://zhidao.baidu.com/link?u
2015-11-11 17:28:55
1187
原创 android4.3-android4.4.2触摸唤醒
触摸屏唤醒是一个挺有趣的功能,在一些特殊的应用,特殊的场合上能使用到。如一些post机、收银台等。没人的时候,系统超时进入休眠或关屏;有人操作,点击一下触摸屏把屏幕亮起来。很人性化,功能也很炫。好,开场白说完,进入主题。触摸唤醒分两种情况:第一种、CPU进入深度休眠第二种、假休眠关于第一种情况,好像市面上某家厂商的手机(没有打广告的意思),点击两下屏幕就可以进入休眠;再点击两下就实
2015-11-06 21:39:33
2978
2
原创 Linux程序之线程轮询
说到linux程序,我们会条件反射地想到用户空间跟内核空间,两者有很多的相似之处,使用到的资源保护,数据同步的方法也类似。如用户空间用open去打开一个文件,内核里面有file_open的操作等。但他们之间还是有需要遵循的规则,如内核空间跟用户空间直接的数据拷贝,需要用到copy_from_user和copy_to_user;这也是为什么我们平时听到的在32位机上,linux进程都可以独立地访问4
2015-11-05 19:19:35
4019
原创 慢慢总结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
4020
原创 浅析linux kernel段错误及调试手段
oops,kernel panic, Segmentationfault。相信跟linux kernel打交道的人都会遇到过这些内核提示。根据严重性不一样可以分为:警告,惊慌,还有段错误——也就是我们平常遇到的内核崩溃的情况。对于oops和kernel panic而言,事态过于严重的时候都可能导致Segmentation fault的产生,然后内核会打印出一大堆信息,如下。或许有些内核过了1分
2015-10-11 12:25:36
6278
转载 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
1948
转载 在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
2393
转载 android lcd 背光控制流程
此文章是网上看到的,在MTK平台基础上的背光控制流程的分析。个人觉得写得比较详细,于是截取部分内容转载出来。细节的框架图:由此可见光系统从上到下依次分为java APP层、java 框架层、本地层和驱动层。下面就来看APP层,先给出调节背光的应用界面:此功能在settings--->display--->bri
2015-09-07 22:54:34
15744
1
原创 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
31630
2
原创 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
4685
原创 空手套白狼--基于系统分区镜像的修改
曾经遇到过这样的一个问题:有一位同事误操作把windows下编辑过的一个文件覆盖了ubuntu下android 源码下的同样的文件,造成某个apk在运行的时候出错。再加上不同版本更新做了好多的改动,调查了许久查不出缘由,查看repo-git历史修改信息也没看出任何相关的改动。终于在万分无助之际相处了一个办法:把旧机器上的system.img 跟boot.img 抽出来,烧录到新的板子上,来缩小问题
2015-08-12 20:33:04
1984
转载 Android Framework 记录之二
接着上次的记录,续写。23、services目录文件描述class AlarmManagerService extends IAlarmManager.Stub {//定时管理服务public class AppOpsService extends IAppOpsService.Stub { // 程序选项服务
2015-08-09 21:55:10
1664
转载 Android Framework 记录之一
简介之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework框架层了。记录1、下载源码,目录如下:2、Android系统的层次如下:3、项目目录简单分析如下:4、telphony目录文件描述CellI
2015-08-09 21:53:19
1445
原创 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
10604
3
转载 linux检测网线插拔状态
Shell查看网线插拔状态:使用ifconfig命令,如果含有“RUNNING”,说明网线接入,否则就没有。例:ifconfigifconfig eth0ifconfig eth0|grep "RUNNING"=======================================================================
2015-08-05 17:01:02
3342
转载 Android 出厂设置修改
Launcher 总结: 1、launcher的布局太居中,要想两边拉伸 apps_customize_pageLayoutPaddingLeft">40dp apps_customize_pageLayoutPaddingRight">40dpapps tab栏的宽度(Launcher2 icon 数目、大小)\packages\a
2015-08-01 22:14:18
1313
原创 Android层面上对sensor及event事件的处理
可能这篇总结写得会有一点凌乱,一会讲sensor,一会又讲event的。但是把两者摆在一起也是有原因的,sensor的处理是event事件的基础上实现的,正是因为sensor对event的依赖性,所以把两者摆在一起了。仔细想想,还是会有其中的原因。开始前首先要说明两点1、 这里说的android层面上是linux内核之上的2、sensor指的是gsensor,lightsensor等
2015-08-01 17:49:01
13555
4
原创 电源管理之——battery选型
电源管理不管是在系统软件,还是硬件电路,都是嵌入式系统里面的重头戏。一个稳定的嵌入式系统,跟好的电源管理有着不可划分的联系。如果电源管理设计得不好,电路会有很多毛病,如上电时序不正确,开不了机等等。所以,在我们进行项目评估,或者项目规划的前期,对电源管理的考量是我们工作的重点。对于电源管理,我这里把它细分成几部分:1、 上电时序2、 关机流程3、 充放电管理这里,简略说一
2015-07-29 13:15:52
1558
原创 写一个简单的批处理(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
2366
原创 adb调试(2)--程序员的暴力破解
现在市面上有以下root软件,能对部分的android只能设备做root的破解。这里说部分,如果想不让设备破解,出厂是做严格的权限管理是可以做到的,具体看看:adb调试(1)--权限与管理这里,这篇文章说的内容也关于破解。市面上的破解软件跟这里讲的比起来,可以说事弱爆了。
2015-07-26 22:50:33
2547
转载 wpa_supplicant适配层 -- 详解
适配层是 通用的wpa_supplicant的 封装,在Android中 作为 WiFi部分的 硬件抽象层来使用。wpa_supplicant适配层 主要用于 与wpa_supplicant守护进程 的通信,以提供给Android框架使用,它实现了 加载、控制 和 消息监控等功能。 1、当java层调用 loadDriver时, 它实际上是通过JNI来调用Native函数
2015-07-26 22:29:25
1615
原创 adb调试(1)--权限与管理
说adb,所有做android开发的人都知道,我们敲这几行adb调试的命令都很娴熟。既然这样,为什么还要讲adb?不过话说在其那头,这里讲adb,还是有一定意义的,说不定能给予你一些灵感。平时我们使用最多的命令无非:adb connect adb remountadb push adb install这里四条命令,其中第1,3,4条都很直白:连接,推送,安装。可是,每当
2015-07-25 10:45:56
5406
原创 对android rotation的添加与定制
在做android开发的过程中,我们难免会遇到显示旋屏的需求,特别是在一些广告机类的应用和产品中,旋屏是家常便饭。还是那句话,如果厂家的BSP够完善,那么做起来就很方便,只需修改一些参数就行。但如果厂家的BSP没把这功能加上,做旋屏也够你折腾一阵子了。一般把旋屏集成在BSP里面的也只有消费类的厂家,做embedded的厂家的BSP相对没有那么完善。所以说做消费类的工程师难免不会有点娇生惯养。我们有
2015-07-22 22:56:22
8485
2
原创 Ipu 与多显——yocto跟android下的简介
注:由于跟平台相关,所以一些内容不会说得太直白,跳步比较多。至今,cpu里面使用到ipu的厂家不多,目前freescale是其中一家。所以,以下的分析是基于freescale平台的ipu情况的基本讲解。IPU是什么?IPU是显卡中的CPU,GPU的一种,由英伟达首先提出,以减少CPU的开销。最初由英伟达提出。目前实现IPU的厂家不多,freescale就是其中之一。接下来是freescal
2015-07-20 22:46:46
4334
1
原创 Board level的启动流程分析
现在很多博客文章都有写到关于从uboot到linux,或者是android的话就是再到android层面上的启动过程。但很少文章会讲述到关于board lever 层面上的启动过程。我这里说的board level 是关于板子上电启动,硬件相关的开机流程。好,咋们开门见山,不兜圈子。直接说如正题。本文分为几部分:上电à电源管理àcpu启动àubootà跳转启动device。下面正式介绍。
2015-07-16 09:34:04
1318
原创 Android4.4.2从内核logo到init logo到动态logo的分析及定制
Android开机logo一直都是各大产品定制的重点,如果IC厂家代码完善的话,那就很简单,直接把做好的logo文件放在预制好的文件夹就可以了。还有一些定制服务做得好的IC厂家,可能还会通过烧录软件直接修改升级包里面的logo文件,修改完毕后,直接烧录完事。这些二次开发做得比较完善的IC厂家一般是各大平板电脑,手机方案商。但如果android代码并没得到很完善的优化怎么办?如在工业领域的and
2015-07-12 22:15:22
3965
原创 dts从uboot加载到kernel使用案例的分析
曾经在空间里面转载过一篇《ARM Linux 3.x的设备树(Device Tree)》的文章,看了几遍,仍然不知所云。后来在工作中才慢慢地对dts有所领悟。所以,在这里想用简单的词语,描述一下自己对dts的理解。首先,dts是什么?很简单,一句话:为了瘦简内核、去掉部分冗余的代码,而用一种简单的方式(语言)把硬件设备相关信息描述出来,这就是dts。既然命名为“device tree”(本
2015-07-11 21:11:53
19882
1
原创 从ETTI Touch 到 uevent 机制分析
Touch调试环境:yocto调试过ETTI touch的人都知道,ETTI Touch 是人类历史上最容易调试的Touch,不涉及driver ,不涉及Makefile,Kconfig,也不涉及中断信号的处理。既然ETTI Touch 那么容易调试,那为什么各大 Touch 厂家不把自家的Touch做成ETTI Touch的处理方式,不更好的方便调试吗?总结了一下,原因有两个:1
2015-07-10 16:11:22
1119
原创 分析android预装apk以及相关的实现手段
如果厂家代码完善的话,平时拿到厂家的BSP,需要预装apk的时候,只需往预定好的目录拷贝apk即可。但如果自己手动实现起来并不见得那么简单。所以这里为大家介绍两种实现方法。 预装的条件: 出厂时候装上apk,需要删除apk的时候可以删除。 在android 下,除了使用android自带的apk安装程序进行安装apk外,对开发人员而言,可以使用 adb inst
2015-07-09 22:57:19
10208
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
1290
原创 HAL层一些简单调试手段的使用
好久没写东西,也不知道写些什么,就随便说说调试吧。说的调试,我们难免会想到打印。我想,打印是平时调试程序中用的最多的一种手段。而打印,我们平时一般都不会直接用“printf”,二是用一个宏,如:#define HALPRINTF printf// #define HALPRINTF (···)用可变参数的形式,就可以做到随意的开关调试信息的目的了。把消息打印到内核,然后就可
2013-04-18 14:16:28
1840
原创 吐槽
今天在技术论坛上看到一篇文章:“微博编辑眼中的自己:工作、生活与未来”(下面以文章代替),介绍了一个微博编辑的出道,机遇,工作细节,忧虑,未来事业发展方向等待。看完后,好像颇有感悟的样子,因为跟自己的工作有点类似:都是IT产业链下渺小的一环。好像也象征了一种人:当今毕业走出社会的大部分大学生们。写照着其工作与生活。自己想要说的主要有两点。 1、机遇与趋势 毕业前后,我们经常提到
2013-03-06 12:02:18
793
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人