<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[leerobin83的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/leerobin83</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; leerobin83]]></copyright><item><title><![CDATA[展讯8825分区表]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/38553885</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/38553885</guid><author>leerobin83</author><pubDate>Thu, 14 Aug 2014 09:41:07 +0800</pubDate><description><![CDATA[展讯SC8825的分区表是放在uboot中，路径如下：
u-boot/]]></description><category></category></item><item><title><![CDATA[程序分text, data (initialized), bss, stack, heap几个段]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/10393389</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/10393389</guid><author>leerobin83</author><pubDate>Tue, 27 Aug 2013 14:48:38 +0800</pubDate><description><![CDATA[根据APUE，程序分为下面的段：.text, data (initialized), bss, stack, heap。
data/bss/text: 

text段在内存中被映射为只读，但.data和.bss是可写的。
bss是英文Block Started by Symbol的简称，通常是指用来存放程序中未初始化的全局变量的一块内存区域，在程序载入时由内核清0。BSS段属于静态内存分配]]></description><category></category></item><item><title><![CDATA[Linux I2C驱动完全分析]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/8626903</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/8626903</guid><author>leerobin83</author><pubDate>Fri, 01 Mar 2013 16:49:17 +0800</pubDate><description><![CDATA[本文用到的一些资源：

   1. Source Insight软件

   2. mini2440原理图。 下载地址http://wenku.baidu.com/view/0521ab8da0116c175f0e48fe.html

   3. S3C2440 datasheet

   4. AT24C08 datasheet

   5. Bq27200 datashee]]></description><category></category></item><item><title><![CDATA[Linux ALSA声卡驱动之八：ASoC架构中的Platform]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/8484676</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/8484676</guid><author>leerobin83</author><pubDate>Wed, 09 Jan 2013 10:58:14 +0800</pubDate><description><![CDATA[1.  Platform驱动在ASoC中的作用
前面几章内容已经说过，ASoC被分为Machine，Platform和Codec三大部件，Platform驱动的主要作用是完成音频数据的管理，最终通过CPU的数字音频接口（DAI）把音频数据传送给Codec进行处理，最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上，ASoC有把Platform驱动分为两个部分：snd_soc_plat]]></description><category></category></item><item><title><![CDATA[pm_runtime]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/8283154</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/8283154</guid><author>leerobin83</author><pubDate>Tue, 11 Dec 2012 16:28:51 +0800</pubDate><description><![CDATA[Early suspend mechanism is totally replaced by the concept of pm_runtime. 
Theusage is totally changed.
Difference: Early suspend is totally controlled by kernel, while pm_runtimeexports interface t]]></description><category></category></item><item><title><![CDATA[Linux设备模型]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7878198</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7878198</guid><author>leerobin83</author><pubDate>Fri, 17 Aug 2012 16:44:27 +0800</pubDate><description><![CDATA[本文从四个方面来总结一些内容：

1.底层数据结构：kobject,kset.
2.linux设备模型层次关系：bus_type,device,device_driver.
3.集成：PCI设备驱动模型实例及设备，设备驱动注册源码的简单分析.
4.面向对象的思想在linux设备模型中的应用分析.


一、底层数据结构：kobject,kset
先说说模型的意义: 
总体来说是为]]></description><category></category></item><item><title><![CDATA[android4.0 编译报错 Xmx2048m错误]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7873229</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7873229</guid><author>leerobin83</author><pubDate>Thu, 16 Aug 2012 14:33:22 +0800</pubDate><description><![CDATA[1、Error occurred during initialization of VM 
Could not reserve enough space for object heap
从字面上看是在初始化java Vm的时候不能获取足够的堆空间，于是修改了build/core/definition.mk文件中的编译core.jar和framework.jar时需要的-JXmx为1024m，此]]></description><category></category></item><item><title><![CDATA[DMA_ZONE、dma_mask、coherent_dma_mask和dma bounce相关问题的澄清]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7826793</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7826793</guid><author>leerobin83</author><pubDate>Fri, 03 Aug 2012 13:46:28 +0800</pubDate><description><![CDATA[本文针对ARM体系结构，参考的内核版本是2.6.32。
1.       为什么存在DMA ZONE？
原因是某些硬件的DMA引擎不能访问到所有的内存区域，因此，加上一个DMA ZONE，当使用GFP_DMA方式申请内存时，获得的内存限制在DMA_ZONE的范围内，这些特定的硬件需要使用GFP_DMA方式获得可以做DMA的内存；
如果系统中所有的设备都可选址所有的内存，那么DMA ZONE覆]]></description><category></category></item><item><title><![CDATA[Linux内存线性地址空间布局解析]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7826179</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7826179</guid><author>leerobin83</author><pubDate>Fri, 03 Aug 2012 10:53:55 +0800</pubDate><description><![CDATA[Linux内存线性地址空间布局解析
适用平台：i386
      


Linux内存线性地址空间大小为4GB，分为2个部分：用户空间部分（通常是3G）和内核空间部分（通常是1G）。在此我们主要关注内核地址空间部分。
内核通过内核页全局目录来管理所有的物理内存，由于线形地址前3G空间为用户使用，内核页全局目录前768项（刚好3G）除0、1两项外全部为0，后256项（1G）用来管理所有]]></description><category></category></item><item><title><![CDATA[linux的物理内存空间与线性地址空间的的对应关系]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7826170</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7826170</guid><author>leerobin83</author><pubDate>Fri, 03 Aug 2012 10:53:03 +0800</pubDate><description><![CDATA[在支持MMU的32位处理器平台上，Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF，共4GB，但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间，并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。

物理存储空间布局
Linux的物理存储空间布局与处理器相关，详细情况可以从]]></description><category></category></item><item><title><![CDATA[linux CPU动态调频]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7476386</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7476386</guid><author>leerobin83</author><pubDate>Thu, 19 Apr 2012 10:21:08 +0800</pubDate><description><![CDATA[针对sep4020的linux低功耗研究也有一段时间了，基本把低功耗的实现方式想清楚了（主要分成机制和策略），这段时间的工作主要在机制上。暂时想实现的主要的机制有：cpu级，设备驱动级，系统平台级。管理颗粒度不断递增，形成三驾马车齐驱的形势。


 
cpu级：主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变，主要的实现方式为idle，包括今天的主要想讲的动态主频。]]></description><category></category></item><item><title><![CDATA[Android GestureDetector手势识别类]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7463582</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7463582</guid><author>leerobin83</author><pubDate>Sun, 15 Apr 2012 20:19:12 +0800</pubDate><description><![CDATA[为了加强鼠标响应事件，Android提供了GestureDetector手势识别类。通过GestureDetector.OnGestureListener来获取当前被触发的操作手势（Single Tap Up、Show Press、Long Press、Scroll、Down、Fling），具体包括以下几种：
boolean  onDoubleTap(MotionEvent e) 
解释：双击]]></description><category></category></item><item><title><![CDATA[kmalloc与vmalloc区别]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7414786</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7414786</guid><author>leerobin83</author><pubDate>Sat, 31 Mar 2012 11:01:53 +0800</pubDate><description><![CDATA[kmalloc, vmalloc分配的内存结构

对于提供了MMU（存储管理器，辅助操作系统进行内存管理，提供虚实地址转换等硬件支持）的处理器而言，Linux提供了复杂的存储管理系统，使得进程所能访问的内存达到4GB。
　　进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET，在0x86中它等于0xC0000000)，3GB到4]]></description><category></category></item><item><title><![CDATA[SPI协议分析]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7355793</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7355793</guid><author>leerobin83</author><pubDate>Thu, 15 Mar 2012 10:07:08 +0800</pubDate><description><![CDATA[SPI，是英语Serial Peripheral Interface的缩写，顾名思义就是串行外围设备接口。SPI，是一种高速的，全双工，同步的通信总线，并且在芯片的管脚上只占用四根线，节约了芯片的管脚，同时为PCB的布局上节省空间，提供方便，正是出于这种简单易用的特性，现在越来越多的芯片集成了这种通信协议。
      SPI是一个环形总线结构，由ss(cs)、sck、sdi、sdo构成，其时序]]></description><category></category></item><item><title><![CDATA[android screen睡眠唤醒机制]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7306177</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7306177</guid><author>leerobin83</author><pubDate>Wed, 29 Feb 2012 15:19:58 +0800</pubDate><description><![CDATA[在android中，屏幕(framebuffer)被看成为一个device，文件/sys/power/wait_for_fb_sleep和/sys/power/wait_for_fb_wakeup被kernel用来通知framework屏幕挂起或恢复了。在framework中有两个线程，一个是画图的主线程，在循环中它会首先检查kernel的事件通知信号并设置framebuffer是否可画，下面是示]]></description><category></category></item><item><title><![CDATA[关于Linux Kernel and Android 休眠与唤醒]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7286146</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7286146</guid><author>leerobin83</author><pubDate>Thu, 23 Feb 2012 10:43:36 +0800</pubDate><description><![CDATA[简介

休眠/唤醒在嵌入式Linux中是非常重要的部分,嵌入式设备尽可能的进入休眠状 态来延长电池的续航时间.这篇文章就详细介绍一下Linux中休眠/唤醒是如何工作 的, 还有Android中如何把这部分和Linux的机制联系起来的.


国际化 



版本信息




Linux Kernel: v2.6.28 Android: v2.0


对于休眠(sus]]></description><category></category></item><item><title><![CDATA[Android的Linux内核的电源管理：Early Suspend]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7165082</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7165082</guid><author>leerobin83</author><pubDate>Fri, 30 Dec 2011 14:59:31 +0800</pubDate><description><![CDATA[1. 用户空间的接口
        在kernel/power/main.c中，定义了一组sysfs的属性文件，其中一个定义是：
        power_attr(state);

        把这个宏展开后:



 









static
struct kobj_attribute state_attr = { \

.attr =]]></description><category></category></item><item><title><![CDATA[android重启流程]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7162751</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7162751</guid><author>leerobin83</author><pubDate>Thu, 29 Dec 2011 17:24:47 +0800</pubDate><description><![CDATA[我这边主要是讲下android reboot走的流程以及所设计的代码，我这边直接从framework层开始。
framework会提供系统重启的接口：
代码路径：frameworks/base/core/java/android/os/Power.java
    public static void reboot(String reason) throws IOException]]></description><category></category></item><item><title><![CDATA[对I2C协议的理解]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7109652</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7109652</guid><author>leerobin83</author><pubDate>Wed, 28 Dec 2011 17:56:12 +0800</pubDate><description><![CDATA[网上发现这篇对于I2C的文章写的很不错
一. 技术性能:
    工作速率有100K和400K两种；
    支持多机通讯；
    支持多主控模块，但同一时刻只允许有一个主控；      
    由数据线SDA和时钟SCL构成的串行总线；
    每个电路和模块都有唯一的地址；                    
    每个器件可以使用独立电源

二. 基本工作原理:]]></description><category></category></item><item><title><![CDATA[Copy_from_user函数详细分析]]></title><link>https://blog.youkuaiyun.com/leerobin83/article/details/7067125</link><guid>https://blog.youkuaiyun.com/leerobin83/article/details/7067125</guid><author>leerobin83</author><pubDate>Tue, 13 Dec 2011 15:28:07 +0800</pubDate><description><![CDATA[copy_from_user函数的目的是从用户空间拷贝数据到内核空间，失败返回没有被拷贝的字节数，成功返回0.
这么简单的一个函数却含盖了许多关于内核方面的知识,比如内核关于异常出错的处理.从用户空间拷贝
数据到内核中时必须非常小心,如果用户空间的数据地址是个非法的地址,或是超出用户空间的范围，或是
那些地址还没有被映射到，都可能对内核产生很大的影响，如oops，或者被造成系统安全的影响.所]]></description><category></category></item></channel></rss>