自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 watch dog

这么多个timeout ,  头都晕了!.......最后知道为什么看不懂了,有部份代码没权限看......if ( timer == 警告的门限) {    这边有个关键的地方 : 辅助cpu设置了重启时间为 15s, 同时向主cpu 发警告中断。    在警告中断里面 通知应用层的 watch dog守护进程,让它查下应用层重要进程是否活着。    if (一切ok,那么重

2013-05-30 15:52:08 1679

转载 常用命令集锦

1、 文件//文件夹加密  zip -e linuxzgf.zip linuxzgf 即可出现输入密码的提示,输入2次密码。 此文件即被加密解压时候是需要密码的  文件夹加密:  zip -re linuxzgf.zip linuxzgf 即可出现输入密码的提示,输入2次密码。 此文件即被加密解压时候是需要密码的2、 文件//文件夹解密  unzip linuxzg

2013-05-30 14:59:44 602

转载 call_chain & dump_trace

调用链是剖析工具中常备的一种显示方式,可以为用户呈现明确的函数调用关系,在perf中,可以根据调用链分析主函数的sample分布到了哪些子函数中。在内核调试中,根据调用链可以得到出错函数的上层调用者是谁。调用链的实现其实很简单,就是遍历函数栈,在x86中,bp寄存器指向的内存位置存放的是旧栈帧基地址,这个位置之上(高地址处)是函数返回地址,因此在函数返回时pop %ebp,就是把旧栈帧地址

2013-05-27 16:24:52 1739

原创 dump_stack 和 trigger_all_cpu_backtrace

182 /* 183  * The architecture-independent dump_stack generator184  */185 void dump_stack(void)     186 {  187     unsigned long bp;     188     unsigned long stack;  189

2013-05-27 10:55:57 2317

转载 linux completion接口

http://blog.csdn.net/a254373829/article/details/8461178头文件/* * struct completion - structure used to maintain state for a "completion" * * This is the opaque structure used to maintain the

2013-05-24 20:03:14 2622

转载 模块参数

当编写一个内核模块时,可以指定一个变量为模块的参数,在模块被加载的时候指定模块参数的值,这样可以动态的改变模块的行为。在内核中,模块参数是通过以下宏来定义的           module_param(name, type, perm);             module_param_array(name, type, &num, perm);  //这里第三个参数为可选的整形变量的

2013-05-24 20:00:12 705

转载 ram console && loglevel

问题:  当cmdline中的loglevel为7时, ram console不能保存用loglevel为7的日志。       解决方法: 1)设置命令行参数的loglevel为大于7的数。 adb pull /d/osip/cmdline. ==> modify loglevel ===> adb push cmdline /d/osip/

2013-05-24 19:58:27 954

转载 linux信号处理函数的可重入性

linux信号处理函数的可重入性在信号处理函数中,尽量使用可重入的函数接口(即操作的数据都是在堆栈上,不涉及全局变量),否则会引起数据的崩溃。一个简单的演示程序可以说明这点。#include #include int a=0;void  handleSig5(int num, siginfo_t * info, void * no_use

2013-05-24 19:56:33 1017

转载 mmap()函数基本用法

#include      // 参数可分为三组:void * mmap(void *addr,  size_t  length,   //进程地址空间相关的参数(即地址分配的起点(为0则由系统决定起始地址)和长度)  int   prot,  int   flags,            //权限和标志相关参数(prot指定地址空间的访问权限,flags指定映射标志,eg  pri

2013-05-24 19:50:34 742

转载 ps -aux中STAT列的标志位

$ps aux 输出结果中的STAT列的可能标志S 睡眠。通常是在等待某个事件的发生,如一个信号或有输入可用R       运行。 严格来说,应是“可运行”,即在运行队列中,处于正在执行或即将运行状态D       不可中断的睡眠(等待)。通常是在等待输入或输出完成T       (terminate)停止。通常是被shell作业控制所停止,或者进程正处于调试器的控制之下Z

2013-05-24 19:49:15 666

转载 Android蓝牙通信

这里使用的是RFCOMM协议,RFCOMM是一个简单的串行线性仿真协议,此协议提供RS232控制和状态信号。也就是一个串口(COM)传输协议,波特率为9600,8位数据。所以手机蓝牙可以与另外的蓝牙设备进行通信。两个设备进行通信,需要建立一个服务端和一个服务端,客户端连接上服务端之后,就可以收发数据。源代码下载地址:http://download.csdn.net/deta

2013-05-24 19:46:14 895

转载 MTk屏幕切换效果的制作

学习MTK三四个月了,总要写点东西出来才行,这里简单说说,怎么制作屏幕切换效果。一些基本的概念,我就不说了,图层的原理和对图层操作的一些函数,至少要了解。 进入主题,说一下我的思路:首先,在进入新屏幕之前,把旧屏幕保存起来;其次,在画新屏幕之前,把屏幕锁住,不给新屏幕显示出来;再次,等到新屏幕画完,又把新屏幕保存起来。好了,现在得到了两个屏幕,就可以执行我们的切换效果了。 要把新旧

2013-05-24 19:40:45 897

转载 MTK socket天气预报

http://blog.csdn.net/menghnhhuan/article/details/6009092#comments首先要在mtk上实现socket连接,需要用到以下函数: 1.        创建socket连接kal_int8 soc_create(kal_uint8  domain,                    socket_type_

2013-05-24 19:38:44 867

转载 linux 刚创建一个空文件时快速扩展文件的大小

转载:http://www.cppblog.com/luckycat/archive/2010/03/01/108694.html1>使用lseek系统调用更改文件指针  lseek(fd, offset, SEEK_SET);2> 使用write系统调用向当前文件的偏移量写入一个任意值, write(fd, "aa", strlen("aa")); 这将导致原来SEEK_CUR和当前偏移

2013-05-24 19:32:32 867

转载 linux pm runtime

pm runtime核心只提供机制(功能), 什么的时候上电/掉电等策略应由driver去实现。 driver里实现的pm runtime的call back函数被runtime 核心封装了起来,会暴露一些API接口来间接的调用这么Call back函数。pm runtime利用了一个工作队列pm_wq来负责具体的电源事务,上电和下电有同步和异步之分:设备状态在PM runtime中的表示

2013-05-24 19:31:28 3676 8

转载 New device resource allocate function

The root cause is that irq is freed after XXXisp_pci_remove, as pci_disable_msifunction will check whether irq has been freed or not, if not, it'll call BUG_ONto trigger panic. so devres functions

2013-05-24 19:30:32 810

转载 伙伴系统算法中的伙伴

一个块的伙伴究竟是位于该块的前面还是后面,取决于oder的值:buddy_idx = page_idx ^ (1 如果page_idx的值大于1page_idx = 32, order = 2时, buddy_idx = 36                            order = 3时, buddy_idx = 40

2013-05-24 19:28:45 927

转载 get_mm_rss(mm)

get_mm_rss函数用于获取一个进程当前所占用的物理内存的字节数。rss : resident set size, the non-swappend physical memory that a task has used in.

2013-05-24 19:25:52 1735

转载 获取pt_regs结构的宏

arch/x86/include/asm/processor.hstruct pt_regs * task_pt_regs(struct task_struct *p);

2013-05-24 19:24:22 2134

转载 linux 启动参数指定HIGHMEM 区的大小

在命令行参数添加highmem=XX[KMG] 可以指定高端内存的大小,如 highmem=10M, 则高端内存只有10M可用,就算你的内存有2G的大小,系统能用的内存也只有低端内存+10M的空间, 就1G还不到吧

2013-05-24 19:23:32 751

转载 /proc/iomem

/proc/iomem这个文件记录的是物理地址的分配情况,内存只占用4G(32位CPU)物理地址的一部分,一般从地址0开始,每一行都代表一个资源(地址范围和资源名), 可用物理内存的资源名为“System RAM”,如01000000-35aeffff : System RAM这个是由e820表中的 E820_RAM类型的表项通过insert_resource这个API注册到iomem

2013-05-24 19:22:22 1824

转载 android ram console

http://blog.csdn.net/a254373829/linux inotify:inotify 接口 -----监视文件系统事件, 可以用来监视单个文件或者一个目录(该目录本身或者目录中的文件 )所发生的事件,相比于select 或 poll 等系统调用接口,事件可以更加细粒度的来进行监视。 相关的API接口:int   inotify_init(void);

2013-05-24 19:17:48 2825

转载 get memory corruptions earlier

0 - adb root && adb shell1 - mount -t debugfs /d /d2 - cd /d/osip3 - cat cmdline # copy the current command line4 - echo slub_debug=FPZU > cmdline5 - cat cmdline # check that it finishes with "s

2013-05-24 16:08:21 1091

转载 irq come after suspend

防止中断来后访问掉电的设备。staticint xx_runtime_suspend(struct device*dev){drvdata->xx_suspended= 1;disable_irq(pdev->irq);}staticint xx_runtime_resume(struct device*dev){drvd

2013-05-24 15:00:26 1292

转载 mod_timer 详解

mod_timerPrev Delaying, scheduling, and timer routines NextNamemod_timer — modify a timer's timeoutSynopsisint fsfuncmod_timer (struct timer_list * time

2013-05-23 09:59:22 8060 4

原创 soft lockup

static void dump_softlock_debug(unsigned long data);DEFINE_TIMER(softlock_timer, dump_softlock_debug, 0, 0);init_timer(&softlock_timer);static void dump_softlock_debug(unsigned long da

2013-05-23 09:11:24 3626

转载 linux hard lockup

hard lockup的发生是由于禁止了CPU的所有中断超过一定时间(几秒)这种情况下,外部设备发生的中断无法处理,内核认为此时发生了所谓的hard lockup. 由于NMI( Non Mask Interrup)中断是不可屏蔽的中断,因此可以用来检测是否发生了hard lockup,   NMI中断是周期性发生的,在相应的中断处理函数中检测一个全局变量的值(这个全局变量的值是由CPU本地定时器

2013-05-17 10:04:57 1389

原创 panic

objdump -Sdl从  esp 知道栈顶指针,从panic堆栈知道里面的数据。EBP: edxxxf90 ESP: edxxxf5cEDX: 0000040fESI: 00000008Stack:00000082 00004000 0000d170 99214984 00000410 edc9fb74 992198f4 00000030c173ab36

2013-05-14 13:45:37 713

转载 linux内核中打开文件 及属性控制

<!--@page {margin:0.79in}p {margin-bottom:0.08in}a:link {}-->共两篇文章:还可以参考linux那些事linx_sysfs==================================================================================

2013-05-09 15:35:58 1674

转载 使用 inotify 监控文件系统的活动

系统管理就像日常生活一样。就像刷牙和吃蔬菜一样,日常的维护能保持机器的良好状态。您必须定期清空废物,比如临时文件或无用的日志文件,以及花时间填写表单、回复电话、下载更新和监控进程等。幸好自动化 shell 脚本、使用 Nagios 等工具进行监控、通过常见的 cron 进行任务调度可以减轻这个负担。但奇怪的是,这些工具没有一个具有响应性。当然,您可以安排一个频繁运行的 cron 任务来监控

2013-05-09 14:52:19 936

转载 I/O空间-----I/O端口和I/O内存

I/O空间-----I/O端口和I/O内存   首先上图,如下:外设中的寄存器被称为I/O端口,外设中的内存被称为I/O内存。二者合起来统称为I/O空间。                                   设备驱动程序要直接访问外设或其接口卡上的物理电路,这部分通常都是以寄存器的形式出现。外设寄存器称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根

2013-05-07 19:18:25 934

Android OpenglEs samples

在 eclipse下直接可以运行的 openGL代码实例,要装 android sdk.

2011-07-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除