- 博客(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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人