class_device_creat和device_creat問題

 我在linux-2.6.25的內核中編寫驅動實例,爲驅動自動創建設備節點時使用device_creat()

   globalmem_class = class_create(THIS_MODULE, "globalmem_sys_class");       
    if (IS_ERR(globalmem_class))   
        return PTR_ERR(globalmem_class);   
     
    globalmem_class_dev = device_create(globalmem_class, NULL, MKDEV (globalmem_major,0),NULL, "globalmem_dev");      
    if (unlikely(IS_ERR(globalmem_class_dev)))   
        return PTR_ERR(globalmem_class_dev);


編譯的時候出現警告如下,當時就沒怎麼管,但是在insmod模塊時出現段錯誤

沒辦法只好求助於谷歌大神,最後發現問題是linux在2.6的某個版本之後才使用device_creat這個函數,我這裏得使用class_device_creat纔行,具體哪個版本劃分的我就不太清楚了,反正2.6.25包括之前的肯定要使用帶class的函數咯,換了之後就ok啦,注意註銷的函數也是一樣,嘿嘿!!

 

後來找了下

在2.6.27中變爲:
device_create()
device_destroy()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章