03 2014 档案

摘要:1 #include 2 #include 3 void print_trace(void); 4 void funcC() 5 { 6 /* 打印调用堆栈,看看谁调用了本函数 */ 7 print_trace(); 8 } 9 void funcB()10 {11 funcC();12 }13 void funcA()14 {15 funcB();16 }17 int main (void)18 {19 funcA();20 return 0;21 }22 void print_trace(void)23 {24 int i;25... 阅读全文
posted @ 2014-03-31 11:01 Watson 阅读(1530) 评论(0) 推荐(0)
摘要:root@user:/ # lsofCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEinit 1 root exe ??? ??? ??? ??? /initinit 1 root 0 ??? ??? ??? ??? /dev/__null__ (deleted)init 1 root 1 ??? ??? ??? ??? /dev/__null__ (deleted)init 1 root 2 ??? ??? ??? ??? /dev/__null__ (deleted)init 1 root 3 ??? ??? ??? ??? /dev/_ 阅读全文
posted @ 2014-03-25 10:32 Watson 阅读(459) 评论(0) 推荐(0)
摘要:grep foo . -rn 在当前目录下的所有文件中查找foo字符串grep -C 5 foo file 显示file文件中匹配foo字串那行以及上下5行grep -B 5 foo file 显示foo及前5行grep -A 5 foo file 显示foo及后5行 阅读全文
posted @ 2014-03-19 09:16 Watson 阅读(336) 评论(0) 推荐(0)
摘要:当我们在链表添加/修改多个节点后,我们最终是要通过查找链表中的某一个节点并对其数据进行操作,我们将逐一分析kernel/include/linux/list.h中关于链表遍历的接口。1,list_entry用于获取struct list_head结构体指针所在结构体变量的首地址。@ptr:指向我们要求首地址的结构体内的struct list_head成员变量,ptr的类型也为struct list_head。@type:要求首地址的结构体类型,即struct list_head变量所在的结构体的类型。@member:要求首地址结构体类型内struct list_head变量的变量名。/** . 阅读全文
posted @ 2014-03-11 15:08 Watson 阅读(24416) 评论(0) 推荐(0)
摘要:Linux内核链表的操作定义在kernel/include/linux/list.h中,我们将逐一分析此文件中关于链表操作的接口。1,struct list_head的定义在kernel/include/linux/types.h中:struct list_head { struct list_head *next, *prev;};struct list_head类型的结构体包含了两个指向struct list_head结构类型的成员指针next和prev,因此我们可以看出struct list_head类型的变量可以进行双向链表的操作。2,静态初始化链表头节点:/* * Si... 阅读全文
posted @ 2014-03-10 23:50 Watson 阅读(716) 评论(0) 推荐(0)
摘要:深入分析Linux内核源码参考网址:http://oss.org.cn/kernel-book/Linux 设备驱动 Edition 3参考网址:http://oss.org.cn/kernel-book/ldd3/Git参考网址:http://www.open-open.com/lib/list/81?pn=8http://blog.csdn.net/wh_19910525/article/details/7438183git log --pretty=onelinegitshow某次的提交哈希值文件名 阅读全文
posted @ 2014-03-10 14:42 Watson 阅读(326) 评论(0) 推荐(0)
摘要:RTC是Real Time Clock的简称,它在硬件电路上单独供电,当系统关机时,CPU和其他外部硬件设备全部掉电,但是RTC仍然继续工作. HWCR (Hibernate Wakeup Control Register)是一个控制休眠唤醒的寄存器,如果我们要使用休眠状态下RTC唤醒的功能,我们需要打开它的第0位ELAM(RTC Alarm Wakeup enable),当ELAM置1时,使能ELAM功能。 RTCSR (RTC Second Registe)是一个32位的寄存器,它的值以1Hz的频率加1,即每秒自动加1。 RTCSAR (RTC Second Alarm Regi... 阅读全文
posted @ 2014-03-07 16:59 Watson 阅读(18087) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示