
linux
文章平均质量分 64
leerobin83
嵌入式行业5年,擅长linux与android
展开
-
关于Linux Kernel and Android 休眠与唤醒
简介休眠/唤醒在嵌入式Linux中是非常重要的部分,嵌入式设备尽可能的进入休眠状 态来延长电池的续航时间.这篇文章就详细介绍一下Linux中休眠/唤醒是如何工作 的, 还有Android中如何把这部分和Linux的机制联系起来的.国际化 版本信息Linux Kernel: v2.6.28 Android: v2.0对于休眠(sus转载 2012-02-23 10:43:36 · 1247 阅读 · 0 评论 -
程序分text, data (initialized), bss, stack, heap几个段
根据APUE,程序分为下面的段:.text, data (initialized), bss, stack, heap。data/bss/text: text段在内存中被映射为只读,但.data和.bss是可写的。bss是英文Block Started by Symbol的简称,通常是指用来存放程序中未初始化的全局变量的一块内存区域,在程序载入时由内核清0。BSS段属于静态内存分配转载 2013-08-27 14:48:38 · 1219 阅读 · 0 评论 -
Linux I2C驱动完全分析
本文用到的一些资源: 1. Source Insight软件 2. mini2440原理图。 下载地址http://wenku.baidu.com/view/0521ab8da0116c175f0e48fe.html 3. S3C2440 datasheet 4. AT24C08 datasheet 5. Bq27200 datashee转载 2013-03-01 16:49:17 · 1019 阅读 · 0 评论 -
Linux ALSA声卡驱动之八:ASoC架构中的Platform
1. Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上,ASoC有把Platform驱动分为两个部分:snd_soc_plat转载 2013-01-09 10:58:14 · 725 阅读 · 0 评论 -
pm_runtime
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原创 2012-12-11 16:28:51 · 2150 阅读 · 0 评论 -
Linux设备模型
本文从四个方面来总结一些内容:1.底层数据结构:kobject,kset.2.linux设备模型层次关系:bus_type,device,device_driver.3.集成:PCI设备驱动模型实例及设备,设备驱动注册源码的简单分析.4.面向对象的思想在linux设备模型中的应用分析.一、底层数据结构:kobject,kset先说说模型的意义: 总体来说是为原创 2012-08-17 16:44:27 · 893 阅读 · 0 评论 -
DMA_ZONE、dma_mask、coherent_dma_mask和dma bounce相关问题的澄清
本文针对ARM体系结构,参考的内核版本是2.6.32。1. 为什么存在DMA ZONE?原因是某些硬件的DMA引擎不能访问到所有的内存区域,因此,加上一个DMA ZONE,当使用GFP_DMA方式申请内存时,获得的内存限制在DMA_ZONE的范围内,这些特定的硬件需要使用GFP_DMA方式获得可以做DMA的内存;如果系统中所有的设备都可选址所有的内存,那么DMA ZONE覆转载 2012-08-03 13:46:28 · 3066 阅读 · 0 评论 -
Linux内存线性地址空间布局解析
Linux内存线性地址空间布局解析适用平台:i386 Linux内存线性地址空间大小为4GB,分为2个部分:用户空间部分(通常是3G)和内核空间部分(通常是1G)。在此我们主要关注内核地址空间部分。内核通过内核页全局目录来管理所有的物理内存,由于线形地址前3G空间为用户使用,内核页全局目录前768项(刚好3G)除0、1两项外全部为0,后256项(1G)用来管理所有转载 2012-08-03 10:53:55 · 804 阅读 · 0 评论 -
linux的物理内存空间与线性地址空间的的对应关系
在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。物理存储空间布局Linux的物理存储空间布局与处理器相关,详细情况可以从转载 2012-08-03 10:53:03 · 1176 阅读 · 0 评论 -
linux CPU动态调频
针对sep4020的linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。 cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。转载 2012-04-19 10:21:08 · 8708 阅读 · 1 评论 -
SPI协议分析
SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。 SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序原创 2012-03-15 10:07:08 · 971 阅读 · 0 评论 -
kmalloc与vmalloc区别
kmalloc, vmalloc分配的内存结构对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4转载 2012-03-31 11:01:53 · 1622 阅读 · 0 评论 -
android screen睡眠唤醒机制
在android中,屏幕(framebuffer)被看成为一个device,文件/sys/power/wait_for_fb_sleep和/sys/power/wait_for_fb_wakeup被kernel用来通知framework屏幕挂起或恢复了。在framework中有两个线程,一个是画图的主线程,在循环中它会首先检查kernel的事件通知信号并设置framebuffer是否可画,下面是示转载 2012-02-29 15:19:58 · 2655 阅读 · 0 评论 -
展讯8825分区表
展讯SC8825的分区表是放在uboot中,路径如下:u-boot/原创 2014-08-14 09:41:07 · 2624 阅读 · 0 评论