答,通过内核的系统时钟,因为它是由定时器中断产生的,每隔一定时间便会触发一次,所以当CPU一直在某个进程中时,我们便在中断函数中打印该进程的信息
1.先来回忆下
在之前的第5章内核中断运行过程:分析过...发生中断前的各个寄存器基地址(=sp基地址)
1.2其中pt_regs结构体成员如下图所示,用来保存各个寄存器内容的数组:
2.所以本节目的,修改asm_do_IRQ()函数,添加如下内容:
1)判断irq若等于系统时钟的...因为此时的PC是返回地址,而PC-4才是CPU运行的地址)
3.首先来找到系统时钟的中断号irq
输入#cat /proc/interrupt,如下图所示:
其中中断号来自 linux-2.6.22.6...\include\asm-arm\arch-s3c2410\Irqs.h
而S3C2410 Timer Tick,就是我们的系统时钟计数值,在内核中就是jiffies这个全局变量,每隔一段时间+1。.../进程号
static int cnt=0; //计数值
if(irq==30) //判断irq中断号,是否等于系统时钟