亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 4025 | 回復(fù): 5
打印 上一主題 下一主題

[驅(qū)動(dòng)] insmod驅(qū)動(dòng)模塊時(shí) 內(nèi)核會(huì)自動(dòng)重啟 提示:kernel BUG at kernel/timer.c:662! [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-08-27 17:56 |只看該作者 |倒序?yàn)g覽
本帖最后由 牡丹巖 于 2014-08-27 17:59 編輯

# insmod inputk2_drv.ko    Linux內(nèi)核2.6.35.7 加載驅(qū)動(dòng)模塊時(shí)直接導(dǎo)致系統(tǒng)自動(dòng)重啟,請(qǐng)教為何?

有高手請(qǐng)速回!小弟急死了。。。
input: gec_input as /devices/virtual/input/input1
kernel BUG at kernel/timer.c:662!
[ 1051.330588] Unable to handle kernel NULL pointer dereference at virtual address 00000000

論壇徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16賽季CBA聯(lián)賽之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金雞報(bào)曉
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年紀(jì)念徽章
日期:2016-11-09 13:19:1015-16賽季CBA聯(lián)賽之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-03 06:20:002015七夕節(jié)徽章
日期:2015-08-21 11:06:17IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-09 06:20:002015亞冠之吉達(dá)阿赫利
日期:2015-07-03 08:39:42
2 [報(bào)告]
發(fā)表于 2014-08-28 08:49 |只看該作者
這是kernel通過(guò)BUG()打印出來(lái)的,你看看源代碼。也可對(duì)比主線上的代碼,可能問(wèn)題已經(jīng)修復(fù)了

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2014-08-28 13:26 |只看該作者
本帖最后由 牡丹巖 于 2014-08-28 13:30 編輯

這是我的bug代碼,不是每次insmod都會(huì)出錯(cuò)的,問(wèn)題真心難找,麻煩各位大仙看看!謝過(guò)~
  1. [size=6][size=5][code]
  2. #include <linux/module.h>
  3. #include <linux/init.h>
  4. #include <linux/input.h>
  5. #include <linux/interrupt.h>
  6. #include <asm/gpio.h>
  7. #include <linux/timer.h>


  8. static struct input_dev *p_button_dev = NULL;//定義輸入設(shè)備

  9. struct timer_list my_timer;//定義定時(shí)器


  10. //定義定時(shí)器超時(shí)處理函數(shù)
  11. void timer_func(unsigned long data)
  12. {
  13.         int key_value = gpio_get_value(S5PV210_GPH2(0));

  14.         //上報(bào)事件給input核心層
  15.         input_report_key(p_button_dev, KEY_A, !key_value);//按下為1,釋放為0

  16.              //告訴input子系統(tǒng)上報(bào)已經(jīng)完成
  17.         input_sync(p_button_dev);
  18. }

  19. //中斷處理函數(shù)
  20. static irqreturn_t button_interrupt(int irq, void *dev_id)
  21. {
  22.              mod_timer(&my_timer, jiffies + 5);//啟動(dòng)定時(shí)器以及設(shè)置超時(shí)時(shí)間
  23.    
  24.         return IRQ_HANDLED;
  25. }

  26. //初始化按鈕
  27. static int __init button_init(void)
  28. {
  29.         int ret;
  30.         ret = gpio_request(S5PV210_GPH2(0), "key2");
  31.         if (ret)
  32.              {
  33.                 printk(KERN_ERR "gpio_request Failed to register device\r\n");

  34.                           goto error1;
  35.         }
  36.    
  37.              //為新輸入設(shè)備分配內(nèi)存并初始化
  38.         p_button_dev = input_allocate_device();
  39.         if (!p_button_dev)
  40.              {
  41.                 printk(KERN_ERR "can't allocate input mem!\r\n");

  42.                          goto error2;
  43.         }
  44.    
  45.         p_button_dev->name = "gec_input";
  46.         p_button_dev->id.bustype = 0x1;
  47.         p_button_dev->id.product = 0x2;
  48.         p_button_dev->id.vendor  = 0x3;
  49.         p_button_dev->id.version = 0x4;
  50.         p_button_dev->evbit[BIT_WORD(EV_KEY)] = BIT_MASK(EV_KEY);       
  51.              p_button_dev->keybit[BIT_WORD(KEY_A)] = BIT_MASK(KEY_A);   
  52.              //注冊(cè)一個(gè)輸入設(shè)備
  53.         ret = input_register_device(p_button_dev);
  54.         if (ret)
  55.              {
  56.                 printk(KERN_ERR "Failed to register device\r\n");

  57.                           goto error3;
  58.         }
  59.    
  60.                //申請(qǐng)中斷注冊(cè)中斷處理函數(shù)
  61.         ret = request_irq(IRQ_EINT(16), button_interrupt,
  62.                                  IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING | IRQF_DISABLED,
  63.                                       "button", NULL);
  64.         if (ret)
  65.         {
  66.                 printk(KERN_ERR "Can't request irq %d\r\n", IRQ_EINT(16));

  67.                           goto error4;
  68.         }   
  69.    
  70.         //定時(shí)器
  71.         init_timer(&my_timer);//初始化定時(shí)器
  72.         my_timer.function = timer_func;//注冊(cè)定時(shí)器超時(shí)處理函數(shù)

  73.          return 0;
  74.    

  75. error4:
  76.             free_irq(IRQ_EINT(16), NULL);//釋放分配給已定中斷的內(nèi)存
  77.          input_unregister_device(p_button_dev);
  78.    
  79. error3:
  80.             input_free_device(p_button_dev);

  81. error2:
  82.            ret = -ENOMEM;

  83. error1:
  84.            gpio_free(S5PV210_GPH2(0));
  85.    
  86.            return ret;
  87. }

  88. static void __exit button_exit(void)
  89. {
  90.         gpio_free(S5PV210_GPH2(0));       
  91.         free_irq(IRQ_EINT(16), NULL);
  92.         input_unregister_device(p_button_dev);
  93.         del_timer(&my_timer);//刪除內(nèi)核定時(shí)器
  94. }

  95. module_init(button_init);
  96. module_exit(button_exit);

  97. MODULE_LICENSE("Dual BSD/GPL");
  98. MODULE_LICENSE("GPL");

復(fù)制代碼
[/code]

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2014-08-28 13:54 |只看該作者
應(yīng)該先初始化定時(shí)器,然后再注冊(cè)中斷處理函數(shù)
如果注冊(cè)完中斷,中斷就來(lái)了,這個(gè)時(shí)候定時(shí)器還沒(méi)初始化,就會(huì)出錯(cuò)

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2014-08-28 15:48 |只看該作者
zszkismet 發(fā)表于 2014-08-28 13:54
應(yīng)該先初始化定時(shí)器,然后再注冊(cè)中斷處理函數(shù)
如果注冊(cè)完中斷,中斷就來(lái)了,這個(gè)時(shí)候定時(shí)器還沒(méi)初始化,就 ...


我的中斷是通過(guò)按按鍵產(chǎn)生的,不太可能出現(xiàn)你說(shuō)的情況哦。
insmod 導(dǎo)致自動(dòng)重啟的情況 也不是每次都會(huì)出現(xiàn),這是最蛋碎的地方,
等測(cè)試確定了再交流!
謝了!

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2014-09-04 09:14 |只看該作者
回復(fù) 4# zszkismet


    說(shuō)的有道理,或者終端注冊(cè)完成以后,先把irq disable掉,等timer初始化以后再enable irq。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP