[Suzaku:00588] キャラクタデバイスのドライバーの作成
Abe
email@hidden
2006年 7月 13日 (木) 16:02:04 JST
abeと言います。
CPUからFPGAに構築したロジック(opb_emcをI/Fとした)に
アクセスするためのデバイスドライバーを作成しています。
使用する関数は s_llseek()、s_read() および s_write() です。
これらは”LINUXデバイスドライバ”を参考にしています。
loff_t s_llseek(struct file *filp, loff_t f_pos, int whence)
{
loff_t new_pos;
switch(whence){
case 0: // SEEK_SET
new_pos = f_pos;
break;
case 1: // SEEK_CUR
new_pos = filp->f_pos + f_pos;
break;
case 2: // SEEK_END
new_pos = 0;
break;
default:
new_pos = 0;
}
filp->f_pos = new_pos;
return new_pos;
}
返り値がwhenceと同じであることを確認しました。
ssize_t s_write(struct file *filp, const char *buf, ssize_t count, loff_t
*f_pos)
{
ssize_t retval;
if(copy_from_user(f_pos, buf, count)){
retval = -EFAULT;
}else{
retval = count;
}
return retval;
}
返り値がcountと同じであることを確認しました。
しかし、ハードウェア上では、アクセスできていないことを
オシロスコープで確認しました。
また、hermitのコマンドで、ハードウェアにアクセスできることも確認しています。
どなたか、ご教示頂けると助かります。
よろしくお願いします。
suzaku メーリングリストの案内