<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yangyang]]></title><description><![CDATA[Do what you want to do!]]></description><link>https://blog.youkuaiyun.com/eleven_yy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; eleven_yy]]></copyright><item><title><![CDATA[volatile详解]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/26132359</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/26132359</guid><author>eleven_yy</author><pubDate>Sun, 18 May 2014 09:04:25 +0800</pubDate><description><![CDATA[一.前言

1.编译器优化介绍：

由于内存访问速度远不及CPU处理速度，为提高机器整体性能，在硬件上引入硬件高速缓存Cache，加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行，没有相关性的指令可以乱序执行，以充分利用CPU的指令流水线，提高执行速度。以上是硬件级别的优化。再看软件一级的优化：一种是在编写代码时由程序员优化，另一种是由编译器进行优化。编译器优化常用的]]></description><category></category></item><item><title><![CDATA[软中断，tasklet和工作队列的区别与联系]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/8050964</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/8050964</guid><author>eleven_yy</author><pubDate>Tue, 09 Oct 2012 09:43:21 +0800</pubDate><description><![CDATA[软中断，tasklet和工作队列的区别与联系
        为了让中断处理运行的快，同时要完成相应的全部工作。根据具体的内容将中断分为两个部分：上半部分（中断处理程序）和下半部分（推后处理程序）。上半部分需要立即执行，并且有严格的时间限制，这些工作是在所有中断被禁止的情况下完成的，剩余部分工作推迟到下半部分。
下半部分的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。在Linu]]></description><category></category></item><item><title><![CDATA[信号量和自旋锁的差别 .]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/8019763</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/8019763</guid><author>eleven_yy</author><pubDate>Wed, 26 Sep 2012 10:05:28 +0800</pubDate><description><![CDATA[1）内核同步措施
      为了避免并发，防止竞争。内核提供了一组同步方法来提供对共享数据的保护。我们的重点不是介绍这些方法的详细用法，而是强调为什么使用这些方法和它们之间的差别。
      Linux 使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作，到后来的信号量，从大内核锁到今天的自旋锁。这些同步机制的发展伴随Linux从单处理器到对称多处理器的过度；伴随着从非]]></description><category></category></item><item><title><![CDATA[如何编写linux下nand flash驱动]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/8019529</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/8019529</guid><author>eleven_yy</author><pubDate>Wed, 26 Sep 2012 09:24:32 +0800</pubDate><description><![CDATA[【简介】如何编写linux下nand
 flash驱动
Version: V0.1
Time:10/06/2008
Author：green-waste@163.com
【编写驱动之前要了解的知识】
1.硬件方面：
【Flash的种类】
Flash主要分nand flash和nor
 flash
除了网上最流行的这个解释之外：
NAND和NOR的比较
我再多说几句，nor的]]></description><category></category></item><item><title><![CDATA[spin_lock详解]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/8017585</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/8017585</guid><author>eleven_yy</author><pubDate>Tue, 25 Sep 2012 16:35:15 +0800</pubDate><description><![CDATA[与UP和SMP无关的定义：

typedef struct { 
volatile unsigned int lock; 
} spinlock_t; 
#define SPIN_LOCK_UNLOCKED  (spinlock_t){ 0 }
#define local_irq_save(x) __asm__ __volatile__(\"pushfl ; popl %0 ; 
c]]></description><category></category></item><item><title><![CDATA[Linux内核的同步机制]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/8017484</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/8017484</guid><author>eleven_yy</author><pubDate>Tue, 25 Sep 2012 16:21:05 +0800</pubDate><description><![CDATA[一、引言
在现代操作系统里，同一时间可能有多个内核执行流在执行，因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上，更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。
在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制，这些同步机制包括：原子操作、信号量（semaphore）、读写信号量（rw_semap]]></description><category></category></item><item><title><![CDATA[Linux2.6中断下半部分的三种实现机制---工作队列 .]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/8017347</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/8017347</guid><author>eleven_yy</author><pubDate>Tue, 25 Sep 2012 15:55:25 +0800</pubDate><description><![CDATA[Linux 2.6内核使用了工作队列来处理任务，他在使用上和 tasklet最大的不同是工作队列的函数可以使用休眠，而tasklet的函数是不允许使用休眠的。
工作队列的使用又分两种情况，一种是利用系统共享的工作队列来增加自己的工作，这种情况处理函数不能消耗过多时间，这样会影响共享队列中其他任务的处理；别的一种是创建自己的工作队列并添加工作。


（一）利用系统共享的工作队列添加工作：]]></description><category></category></item><item><title><![CDATA[一个IT老总给职场新人的一点建议]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/8017239</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/8017239</guid><author>eleven_yy</author><pubDate>Tue, 25 Sep 2012 15:38:12 +0800</pubDate><description><![CDATA[1.一定要有独立的人格、独立的思想。一个经过独立思考而坚持错误观点的人比一个不假思索而接受正确观点的人更值得肯定。不要成为灌输教育的牺牲品。


2.在进行职业生涯规划的时候，不妨以此作为思考的出发点。根据不同的职业生涯规划来塑造各自的核心竞争力。只有知道自己以后要做什么，才能知道自己应该学什么。  

3.专业无冷热，学校无高低。没有哪个用人单位会认为你代表了你的学校或者你的专业。千万]]></description><category></category></item><item><title><![CDATA[软件分层]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7990217</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7990217</guid><author>eleven_yy</author><pubDate>Tue, 18 Sep 2012 08:50:52 +0800</pubDate><description><![CDATA[软件的分层
目前典型的应用软件的结构：三层结构
表述层：提供与用户交互的界面。GUI（图形用户界面）和web页面是表述层的两个典型的例子。
业务逻辑层：实现各种业务逻辑。
数据库层：负责存放和管理应用的持久性业务数据。
区分物理层和逻辑层
软件的分层包含两种含义：一种是物理分层，即每一层都运行在单独的机器上，这意味着创建分布式的软件系统；一种是逻辑分层，指的是在单个软件模块中完成特定的]]></description><category></category></item><item><title><![CDATA[Android4.0  TouchScreen]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7929983</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7929983</guid><author>eleven_yy</author><pubDate>Fri, 31 Aug 2012 16:39:33 +0800</pubDate><description><![CDATA[1. TouchScreen功能在Android4.0下不工作
       原来在Android2.3.5下能正常工作的TouchScreen功能，移植到Android 4.0就不能正常工作了。凭直觉，Android4.0肯定有鬼。真是不看不知道，一看吓一跳。在Android 4.0中，Event Input地位提高了，你看看，在Adroid2.3.5中，它在frameworks/base/l]]></description><category></category></item><item><title><![CDATA[很有道理！！！]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7924368</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7924368</guid><author>eleven_yy</author><pubDate>Thu, 30 Aug 2012 11:11:48 +0800</pubDate><description><![CDATA[1，人生就是投资和收益的人生。如果你有钱，就投入金钱；如果你没有金钱，而有经验和能力，就投入经验和能力；如果你既没有金钱，也没有经验和能力，但是你有热情、勤奋和努力，那就投入热情、勤奋和努力。如果你既没有金钱，也没有经验和能力，连热情、勤奋和努力也没有，那就别想这些了。 

 2，比赚钱更重要的是找到你自己的赚钱动力；  
 3，比金钱重要的是时间，比时间重要的是时机，比时机重要的是你要抓住]]></description><category></category></item><item><title><![CDATA[Linux设备驱动之I2C架构分析]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7916601</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7916601</guid><author>eleven_yy</author><pubDate>Tue, 28 Aug 2012 16:03:42 +0800</pubDate><description><![CDATA[一:前言
I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而 I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识,这里不再赘述.可]]></description><category></category></item><item><title><![CDATA[Android display架构分析]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7843780</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7843780</guid><author>eleven_yy</author><pubDate>Wed, 08 Aug 2012 15:43:45 +0800</pubDate><description><![CDATA[Android display架构分析（一）
http://hi.baidu.com/leowenj/blog/item/429c2dd6ac1480c851da4b95.html
高通7系列硬件架构分析

如上图，高通7系列 Display的硬件部分主要由下面几个部分组成：
A、MDP
高通MSM7200A内部模块，主要负责显示数据的转换和部分图像处理功能理，如YUV转RGB，放大缩]]></description><category></category></item><item><title><![CDATA[Android 中电源状态切换]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7822907</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7822907</guid><author>eleven_yy</author><pubDate>Thu, 02 Aug 2012 14:45:32 +0800</pubDate><description><![CDATA[1， Android中支持的电源状态：
        PM_SUSPEND_ON -- 设备处于全电源状态，也就是正常工作状态；
        PM_SUSPEND_MEM -- suspend to memory，设备进入睡眠状态，但所有的数据还保存在内存中，只有某些外部中断才可以唤醒设备。
       PM_SUSPEND_STANDBY  ----- 在大部分的Android设备]]></description><category></category></item><item><title><![CDATA[Android 进入休眠分析]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7822887</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7822887</guid><author>eleven_yy</author><pubDate>Thu, 02 Aug 2012 14:43:19 +0800</pubDate><description><![CDATA[在 Android 的上层是使用 goToSleep() 这个函数让系统进入休眠的。但是这个命令为什么会让 Android 进入 Suspend Mode。
 
以前在做其他系统的时候， 一般都要自己手工去控制 apm_bios 这个设备的，比如使用 ioctl() 调用 apm_bios。所有的系统其原理都是差不多的。只是 Android 加入了一个封装， 使程序员可以更简单的操作， 可以不]]></description><category></category></item><item><title><![CDATA[关机充电降低功耗方法]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7817465</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7817465</guid><author>eleven_yy</author><pubDate>Wed, 01 Aug 2012 11:19:55 +0800</pubDate><description><![CDATA[在新项目中，关机充电时，由于ＡＰ没有休眠，功耗过大，导致关机充电时间过长。于是想到一下解决办法。
具体措施如下：
（1）    背光关闭后，进入EARLY_SUSPEND,并且停止刷屏。
（2）    使CPU的频率进入动态管理模式，这样的话，在关闭背光后CPU的主频会降到最小频率122M。
经过上述措施，关机充电的耗流能降低到。
－－－－－－－－－－－－－－－－－－－－－－－－－－－－]]></description><category></category></item><item><title><![CDATA[Linux内核驱动程序初始化顺序的调整]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7817075</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7817075</guid><author>eleven_yy</author><pubDate>Wed, 01 Aug 2012 10:21:13 +0800</pubDate><description><![CDATA[这几天再调试两家TP，因为项目需要两家TP兼容，所以考虑到了两个TP驱动初始化的先后顺序的问题。
TP的驱动在I2C初始化之前就运行起来了，而这时I2C提供的API还处于不可用状态。在网上查了一些资料总结一下。
所有的__init函数在区段.initcall.init中保存了一份函数指针，在初始化时内核会通过这些函数指针调用这些__init函数指针，并在整个初始化完成后，释放整个init区段（]]></description><category></category></item><item><title><![CDATA[Android4.0 TP多点变单点，单点变多点问题]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7816934</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7816934</guid><author>eleven_yy</author><pubDate>Wed, 01 Aug 2012 09:52:45 +0800</pubDate><description><![CDATA[由于某些IC的特性，当为多点时，默认靠近Y轴的点ID为ID0，这样就会造成当多点变单点时，单点失效，单点变多点时，会变成单点的划线动作。解决这个BUG的方法：
当按在触摸屏上的point数与上次的point数不同，就不上报此次坐标。这样就可以解决问题。
 //fix one touch  two touch issue
if ( preFingerNum!=touchData.nFinger]]></description><category></category></item><item><title><![CDATA[给开发人员的时间管理建议]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7793888</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7793888</guid><author>eleven_yy</author><pubDate>Fri, 27 Jul 2012 15:33:01 +0800</pubDate><description><![CDATA[软件开发是非常令人兴奋的工作，经过多年的工作，你不仅可以得到相应的报酬（随着工作经验增长）还会有其他晋升的机会。大多数人只关心保持头浮出水面。但这并不是我们所要追求的目标，那仅仅是我们在学校或者孩童时代的梦想？
为了赚更多的钱，大多数人还会找额外的工作并且不太关注编程以外的东西。没有时间休息、没有时间和家人朋友小聚、除了工作还是工作。因此导致压力越来越大，对生活的不满足感油然而生。

其实我]]></description><category></category></item><item><title><![CDATA[Android Recovery 的代码分析]]></title><link>https://blog.youkuaiyun.com/eleven_yy/article/details/7793435</link><guid>https://blog.youkuaiyun.com/eleven_yy/article/details/7793435</guid><author>eleven_yy</author><pubDate>Fri, 27 Jul 2012 14:12:39 +0800</pubDate><description><![CDATA[1、调用main函数
在gingerbread/bootable/recovery/recovery.c最下面有个main()，这是recovery应用的主入 口，当编译recovery的时候，会生成一个名为recovery的可执行文件，我这边是放在out/目录下recovery/文件系统的/sbin目 录下，调用recovery可执行文件时会传入参数，这些参数就是main函数的参数，如下]]></description><category></category></item></channel></rss>