關於linux decice drivers 中open的問題

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

關於linux decice drivers 中open的問題

文章akdsy » 週一 12月 25, 2006 12:58 am

代碼: 選擇全部
int scull_open(struct inode *inode, struct file *filp)

{

    struct scull_dev *dev; /* device information */

    dev = container_of(inode->i_cdev, struct scull_dev, cdev);

    filp->private_data = dev; /* for other methods */

    /* now trim to 0 the length of the device if open was write-only */

    if ( (filp->f_flags & O_ACCMODE) =  = O_WRONLY) {

        scull_trim(dev); /* ignore errors */

    }

    return 0;          /* success */

}


以上是linux device drivers裡,所給得code
可是呢,我現在不知要如何去測試他是否是正確的
請問要如何寫測試呢?

感謝您的回答....
akdsy
可愛的小學生
可愛的小學生
 
文章: 1
註冊時間: 週一 12月 25, 2006 12:51 am

Re: 關於linux decice drivers 中open的問題

文章kotzen » 週五 3月 02, 2007 3:46 pm

akdsy 寫:
代碼: 選擇全部
int scull_open(struct inode *inode, struct file *filp)

{

    struct scull_dev *dev; /* device information */

    dev = container_of(inode->i_cdev, struct scull_dev, cdev);

    filp->private_data = dev; /* for other methods */

    /* now trim to 0 the length of the device if open was write-only */

    if ( (filp->f_flags & O_ACCMODE) =  = O_WRONLY) {

        scull_trim(dev); /* ignore errors */

    }

    return 0;          /* success */

}


以上是linux device drivers裡,所給得code
可是呢,我現在不知要如何去測試他是否是正確的
請問要如何寫測試呢?

感謝您的回答....


http://www.oreilly.com.tw/product_linux.php?id=a184
O'Railly網站有範例程式可以下載
下載解開之後
cd scull
make
insmod scull.ko
lsmod 就可以看到scull模組已被載入
想移除的話就用rmmod
;-) have hun!
kotzen
可愛的小學生
可愛的小學生
 
文章: 1
註冊時間: 週五 3月 02, 2007 3:33 pm

文章giantbicycle » 週日 7月 08, 2007 12:51 pm

可再配合撰寫一個 User application去呼叫 scull module提供的 function
ex:
open()
read()
write()
close()

8-)
giantbicycle
可愛的小學生
可愛的小學生
 
文章: 23
註冊時間: 週六 7月 07, 2007 4:16 pm


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客