- 博客(91)
- 资源 (9)
- 收藏
- 关注
转载 Andriod PM suspend&resume
源出处:http://www.61ic.com/Mobile/Android/201102/29414.htmlAndroid 的电源管理还是比较简单的 , 主要就是通过锁和定时器来切换系统的状态 , 使系统的功耗降至最低 , 整个系统的电源管理架构图如下 : ( 注该图来自 Steve Guo) 1 、初始化 suspend
2012-11-27 11:55:27
1347
原创 EXPORT_SYMBOL 与 extern的区别
这两种方法都可以让被 修饰的函数 能被内核其他程序调用。简单地说说区别,EXPORT_SYMBOL是通过宏,建立一个新的这个函数的入口,包括它址,名称。这个函数会被放到kernel image的__ksymtab section中。当用到这个函数的模块在runtime时被加载的时候,loader就会从__ksymtab section解析这个函数。extern 是将 非
2012-08-31 15:16:35
3733
转载 宏(#define),枚举型(enum)和const常量
源出处:http://eetimes.com/discussion/programming-pointers/4023858/Symbolic-ConstantsThere's more than one way to define symbolic constants in C and C++. It helps to know what all of your choices
2012-08-23 15:39:32
3000
原创 【整理】struct device的初始化
/** * struct device - The basic device structure * @parent: The device's "parent" device, the device to which it is attached. * In most cases, a parent device is some sort of bu
2012-08-17 15:11:24
1838
原创 英语写作, 句子
support...so that...be adequately served... 例句:A single chip package(SCP) is a package that supports a single microelectronic device so that its electrical, mechanical, thermal, and chemical p
2012-08-16 09:03:29
1084
原创 自旋锁使用的注意点
1. 自旋锁保护的临界区里,不能有引起睡眠的函数,如kmalloc,copy_from_user等。 因为如果某进(线)程获得锁并进入了临界区,但它却在临界区里睡着了,那么别的需要这把锁的进(线)程将可能要等待一段很久的时间,最坏的情况是死锁。 所以,在自旋锁里的临界区代码应是原子性的,不可睡眠的。2. 在LDD3里说到这样的一种情况: 在单CPU环境里,如果某进(线)程获
2012-08-14 11:27:01
1525
转载 解析Linux内核的同步与互斥机制(七)
源出处:http://www.startos.com/linux/tips/2011011921499_7.html5.3 手工休眠的具体函数执行流 特殊睡眠要求程序员手动处理所有上面的步骤. 它是一个繁琐的过程, 包含相当多的易出错的样板式的代码. 程序员如果愿意还是可能用那种方式手动睡眠。 (1)创建和初始化一个等待队列。常由宏定义完成: DEFINE_
2012-08-10 15:11:49
1781
转载 解析Linux内核的同步与互斥机制(六)
源出处: http://www.startos.com/linux/tips/2011011921499_6.html4.2 wake_up 的实现细节 \kernel \sched.c /* * The core wakeup function. Non-exclusive wakeups (nr_exclusive == 0) just
2012-08-10 15:10:57
1846
转载 解析Linux内核的同步与互斥机制(五)
源出处:http://www.startos.com/linux/tips/2011011921499_5.html/** * wait_event_interruptible - sleep until a condition gets true * @wq: the waitqueue to wait on * @condition: a C expres
2012-08-10 15:09:48
913
转载 解析Linux内核的同步与互斥机制(四)
源出处:http://www.startos.com/linux/tips/2011011921499_4.html2.3.3 prepare_to_wait和finish_wait /* * Used to distinguish between sync and async io wait context: * sync i/o typical
2012-08-10 15:08:50
1257
转载 解析Linux内核的同步与互斥机制(三)
源出处:http://www.startos.com/linux/tips/2011011921499_3.html在决定调用sleep_on系列函数到真正调用schedule系列函数期间,若等待的条件为真,若此时继续schedule,相当于丢失了一次唤醒机会。因此sleep_on系列函数会引入竞态,导致系统的不安全。 另外对于interruptible系列函数,其返
2012-08-10 15:08:06
1533
转载 解析Linux内核的同步与互斥机制(二)
源出处:http://www.startos.com/linux/tips/2011011921499_2.html全局或者在栈中定义一个wait_queue_t类型变量的同时对其初始化,这保证了系统的可靠性,避免因用户忘记初始化时导致的问题。通用的初始化宏,tsk为任意指针。分两步: 1) 内部宏__WAITQUEUE_INITIALIZER初始化相应成员;当wq内嵌在别的结构
2012-08-10 15:07:21
1462
转载 解析Linux内核的同步与互斥机制(一)
源出处:http://www.startos.com/linux/tips/2011011921499.html1 休眠与同步 一个驱动当它无法立刻满足请求应当如何响应? 一个对 read 的调用可能当没有数据时到来, 而以后会期待更多的数据。或者一个进程可能试图写, 但是你的设备没有准备好接受数据, 因为你的输出缓冲满了。调用进程往往不关心这种问题; 程序员只希望调用 read
2012-08-10 15:06:25
970
原创 linux内核常用头文件作用简介
与framebuffer相关的宏定义如FB_EVENT_BLANK, extern一些常用的函数如fb_blank(), 结构体定义如 struct fb_fix_screeninfo,fb_var_screeninfo 定义了一些用于判断某一个字符是否为大写字母、小写字母、数字、控制字符、标点符号等宏,如,isdigit(c)判定参数c是否为数字,此外还有大小写转换宏,如tolower(c)
2012-08-10 13:42:55
5406
原创 雅思技巧(True , False , Not given)
True , False , Not given中心词概念在范围,限定,时间前后,动作状态,肯定与否定情形,如果是对,答案是False, 如果是irrelevant,答案是NOT GIVEN。绝对不考整篇文章都有的NOT GIVEN,考原文中的一句话。NOT GIVEN不等于没有提到,中心词在概念,在范围限定之间无关。According to the aut
2012-07-14 22:17:16
1684
原创 git rebase 的活用
转载请注明出处:Alvin Lee的博客:http://blog.youkuaiyun.com/lihaoweiVgit rebase 命令的功能很强大, 在《git 权威指南》一书里,改变提交(commit)的顺序,书中教了一种很复杂的方法,运用了git reset ... git cherry-pick...等等命令。但如果用git rebase 命令,则一下就搞定。以下面的例子来讲解
2012-07-12 14:21:04
14073
转载 VIM/VI 查找与替换
出处:http://blog.sina.com.cn/s/blog_40cccb2f0100nwi3.html查找命令:要自当前光标位置向上搜索,请使用以下命令:/pattern Enter其中,pattern 表示要搜索的特定字符序列。要自当前光标位置向下搜索,请使用以下命令:?pattern Enter按下 Enter 键后,vi 将搜索指定的
2012-07-11 17:18:56
1098
原创 basename 与 basename_r 函数
此函数是获得directory中的basename, 比如basename(“android/system/core"),返回的是"core" 37 basename(const char* path) 38 { 39 static char* bname = NULL; 40 int ret; 41 42 if
2012-07-06 09:56:48
2800
原创 LINUX 标准 错误号(ERRNO)
此内容位于头文件: include/asm-generic/errno.h#ifndef _ASM_GENERIC_ERRNO_H#define _ASM_GENERIC_ERRNO_H#include #define EDEADLK 35 /* Resource deadlock would occur */#define E
2012-05-14 18:47:59
1608
转载 CONST整理
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://endyion.blogbus.com/logs/75483089.html作者:康建东 一 const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:int b = 500;const int* a = &b; [1]int const *a =
2012-04-27 13:18:45
725
转载 如何在vim里面把空格缩进改为tab缩进
源出处:http://www.2cto.com/os/201110/107286.html有些同学喜欢用空格做缩进。因此很多代码的行首都带有连续重复的空格,有些是四个空格,有些甚至是八个空格。真是叔叔可忍婶婶不可忍。 vim有一些retab之类的选项可以对所有vim处理的文档做缩进转换,不过那太野蛮了,我们不打算让vim自动处理所有文件。 因此比较合
2012-04-26 10:19:23
1146
原创 英文单词,短语
data - manupulateinstruction - executedistinguish: Distinguish between instruction and data.occur: Instruction and data fetches can occur concurrentlytransfer: 可作名词,电子转移,迁移
2012-04-22 14:14:43
694
转载 什么是上拉电阻,什么是下拉电阻?它们的作用是什么?
出处:http://www.elecfans.com/dianzichangshi/2009062872843.html什么是上拉电阻,什么是下拉电阻?它们的作用是什么?上拉电阻一般是一端接电源,一端接芯片管脚的电路中的电阻,下拉电阻一般是指一端接芯片管脚一端接地的电阻。如下图的两个Bias Resaitor 电阻就是上拉电阻和下拉电阻。图中,上部的一个Bias Resaito
2012-04-13 09:32:41
1592
转载 GPIO驱动分析 & GPIO使用方法 -- S5PC110
[参考http://hi.baidu.com/macroliu%5F/blog/item/8025218db64008a50e244477.html]参考文件:arch\arm\mach-s5pv210\include\mach\gpio.h , \drivers\gpio\gpiolib.c , arch/arm/plat-s3c/include/plat/gpio-core.h , arc
2012-04-13 09:19:41
2874
转载 电器元件
SINGLE-BIT DUAL-SUPPLY BUS TRANSCEIVER 总线收发器This single-bit noninverting bus transceiver uses two separate configurable power-supply rails. The A port isdesigned to track VCCA. VCCA accept
2012-04-13 09:02:00
1715
原创 杂记,整理
MMU的作用: 提供虚拟地址和物理地址的映射, 内存访问权限保护和Cache缓存控制等硬件支持。TLB: Translation Lookaside Buffer,转换旁路缓存,TLB是MMU的核心部件,它缓存少量的虚拟地址与物理地址的转换关系,是转换表的cache,因此也经常被称为"快表"TTW: Translation Table Walk, 转换表漫游,当TLB中没有缓冲对应的地址转
2012-03-20 09:22:33
726
转载 Android的Linux内核的电源管理:Early Suspend
1. 用户空间的接口 在kernel/power/main.c中,定义了一组sysfs的属性文件,其中一个定义是: power_attr(state); 把这个宏展开后:? ?<span style="color:
2012-03-15 16:32:58
1934
转载 Browsing programs with tags
When editing programs, there is often a need to jump to another location, for example, to see how a function is defined. To help, Vim uses a tags file that lists each word you are likely to want, and
2012-03-14 14:55:21
962
原创 在公司学到的东西
1. 做事严谨 (韩振求,姜熙成)2. 做事认真负责到底(李尚贤)3. 为人宽容,和善(李一浩)4. 学会勤奋工作,适应加班生活5. 体验到在一个大公司里,如何和其他部门合作做一个项目6. 如何忍耐,即使上司说得不对,再用行动证明他是错的,而不是用说话来反驳。 因为他教训你的时候,他已经认定这件事情是你的错而他是对的了,你说再多的话也不能根本上改变他眼前的看法。说话反
2012-01-31 09:46:40
1220
转载 浅析linux内核驱动的代码风格
源出处:http://top.akaedu.org/index.php/index/bookdetail/id/2890最近在向Linux内核提交一些驱动程序,在提交的过程中,发现自己的代码离Linux内核的coding style要求还是差很多。当初自己对内核文档里的CodingStyle一文只是粗略的浏览,真正写代码的时候在很多细节上会照顾不周。不过, 在不遵守规则的程序员队伍里,
2012-01-20 09:30:55
1247
转载 函数参数的传递问题(一级指针和二级指针)
出处:http://www.newsmth.net/pc/pccon.php?id=10002501&nid=337392原以为自己对指针掌握了,却还是对这个问题不太明白。请教! 程序1: void myMalloc(char *s) //我想在函数中分配内存,再返回 { s=(char *) malloc(100); }
2011-11-30 15:59:32
1564
转载 指针使用前应先初始化
使用未初始化的指针是非常危险的。通过一个未初始化的指针会很容易覆盖随机的内存区域。造成的损害取决于如何倒霉,所以初始化指针不仅仅是一个好主意。通过指向一个已经被定义变量的地址 很容易初始化一个指针。以下可以看到,通过使用运算符 & 及变量的名称来用变量number的地址对指针pnumber进行初始化:int number = 0; // Initializ
2011-11-30 15:48:46
16445
原创 各种常用头文件的作用(转载整理)
stdio.hstdio 就是指 “standard buffered input&output" 意思就是说带缓冲的标准输入输出! 所以了,用到标准输入输出函数时,就要调用这个头文件!stdio.h中的标准输入输出函数 int getchar() //从标准输入设备读入一个字符,显示 int putchar() //向标准输出设备写一个字符 i
2011-11-30 15:24:14
1369
转载 Android/linux(earlysuspend、lateresume)睡眠唤醒机制简介
本文属于原创!!如要转载,请注明来源处 http://blog.sina.com.cn/s/blog_759dc36b0100stax.html 背景介绍:睡眠/唤醒是嵌入式Linux非常重要的组成部分,因为优秀的睡眠唤醒机制可以是嵌入式设备尽可能的进入休眠状态,来延长电池的续航时间(这在移动终端消费类电子设备中是非常重要和有意义的!!)。但标准的Linux睡眠唤醒机制有其自身的
2011-11-25 09:30:14
1588
转载 新版linux系统设备架构中关于电源管理方式的变更
出处:http://blog.youkuaiyun.com/coolraining/article/details/6678759新版linux系统设备架构中关于电源管理方式的变更based on linux-2.6.32 一、设备模型各数据结构中电源管理的部分 linux的设备模型通过诸多结构体来联合描述,如struct device,struct device_type,
2011-11-24 12:20:00
900
转载 Run-time PM 详解
源出处:http://blog.youkuaiyun.com/coolraining/article/details/6677901Run-time PM. 每个device或者bus都会向run-time PM core注册3个callbackstruct dev_pm_ops {...int (*runtime_suspend)(struct device
2011-11-24 12:19:01
1095
原创 嵌入式linux中关于device的电源管理
在platform_device_register()中调用device_initialize(),在device_initialize()中调用device_pm_init(),device_pm_init() 在drivers/base/power/main.c里, 详细如下:/** * device_pm_init - Initialize the PM-related pa
2011-11-24 09:28:58
3197
原创 early suspend 过程
在wakelock.c中声明了一个工作队列suspend_work_queue struct workqueue_struct *suspend_work_queue;然后创建它,这个工作队列是earlysuspend的核心 suspend_work_queue = create_singlethread_workqueue("suspend");在ear
2011-11-24 08:42:06
3047
原创 三星SOC的显示控制器及framebuffer驱动s3c-fb.c中probe函数分析
三星SOC芯片上集成了显示控制器(有称作fimd的,Fully Interactive Mobile Display)。它的驱动分为mainline版本的和legacy版本的,mainline版本的是通用的,由Ben Dooks 管理着的,代码比较规范。下面我们来分析一下这个驱动,这个驱动在driver/video/里,文件名是s3c-fb.c 与其相关的,主要还有arch/arm/plat-s
2011-11-18 15:59:18
4787
1
转载 Linux内核通知链 notifier chain
源出处:http://fangjian0518.blog.163.com/blog/static/5591965620118295401816/1.内核通知链表简介(引用网络资料) 大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知
2011-11-14 12:21:16
2470
Principles of mobile communication second edition
2008-10-09
数字信号处理 原理 算法 与应用
2008-09-30
NeXt generation/dynamic spectrum access/cognitive radio wireless networks
2008-09-20
计算机程序设计艺术(第二卷)
2008-09-16
数字通信—基础与应用 答案
2008-09-15
数字通信—基础与应用(第二版)
2008-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人