当前位置:  技术问答>linux和unix

为什么jiffies在系统重启后为赋值?求高手解答

    来源: 互联网  发布时间:2017-03-09

    本文导语:  代码很简单 static int __init hello_init(void) { printk(KERN_EMERG"hello_init jiffies = %ld.n", jiffies); return 0; } static void __exit hello_exit(void) { printk(KERN_EMERG"hello_exit jiffies = %ld.n", jiffies); } linux系统是Red Hat Enterprise Linux 5...

代码很简单
static int __init hello_init(void)
{
printk(KERN_EMERG"hello_init jiffies = %ld.n", jiffies);
return 0;
}

static void __exit hello_exit(void)
{
printk(KERN_EMERG"hello_exit jiffies = %ld.n", jiffies);
}

linux系统是Red Hat Enterprise Linux 5,内核是2.6.27.62。
1.命令行下[root@localhost hello]# reboot
2.插入模块[root@localhost hello]# insmod hello.ko 
[root@localhost hello]# 
Message from syslogd@ at Tue Aug 14 09:56:20 2012 ...
localhost kernel: hello_init jiffies = -55129.
3.卸载模块[root@localhost hello]# rmmod hello.ko 
[root@localhost hello]# 
Message from syslogd@ at Tue Aug 14 09:56:43 2012 ...
localhost kernel: hello_exit jiffies = -49387.

两次打印jiffies的值都为负数,jiffies不是应该从0开始的吗?而且内核里面是extern unsigned long volatile __jiffy_data jiffies;jiffies应该是无符号数啊,怎么会变成负数了呢?求解,@高手大大们

|

由于某设备缺少一个模块,需要对原来代码中的jiffies(系统时钟节拍)进行移植,做成一个.ko,方法如下:
#include   
#include  
MODULE_LICENSE("Dual BSD/GPL");
module_param(jiffies,ulong,444) 
static int hello_init(void)  
{  
        printk(KERN_ALERT "Hello, world/n");  
        return 0;  
}  
static void hello_exit(void)  
{  
        printk(KERN_ALERT "Goodbye, cruel world/n");  
}  
module_init(hello_init);  
module_exit(hello_exit);

makefile如下:
obj-m := hello.o  
KERNELDR := /usr/src/linux-2.6.26  
PWD := $(shell pwd)  
modules:  
    $(MAKE) -C $(KERNELDR) M=$(PWD) modules  
moduels_install:  
    $(MAKE) -C $(KERNELDR) M=$(PWD) modules_install  
clean:  
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions 
使用make命令,编译成一个.ko文件,在LINUX下执行insmod hello.ko
然后在sys文件夹下可以找到hello这个模块,打开会找到programme,再                                                                                                                         打开就会找到jiffies,用cat就可以查看,module_param就是钥匙,444表示
LINUX的root,group及usr的权限



看看上面模块里面传递参数。
http://blog.csdn.net/chris_xi/article/details/7540747

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • vmlinux.lds.S中的jiffies = jiffies_64问题
  • larm 时间已经过期(alarm<jiffies)是什么意思?
  • jiffies的含义
  • 如何调用clock_t_to_jiffies函数
  • 怎样编程实现打印出jiffies的值
  • 关于jiffies_64的问题
  • 内核里如何得到tick,用哪个函数,不是jiffies,要tick
  • jiffies到底是多长时间?(总分值120分!!!)
  • 关于 jiffies 的回绕 ,时钟 - 回绕 - 安全 ,timer - wraparound - safe


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3