[Suzaku:00590] Re: キャラクタデバイスのドライバーの作成

Abe email@hidden
2006年 7月 13日 (木) 17:11:19 JST


yashi 様 ありがとうございます。

すみません。内容が理解できないでいます。

f_posは「・・ユーザーがアクセスしているファイルの位置を示す・・」と
ありましたので、seekで設定した値が反映されると思っていました。
ではseekは意味が無いと言う事なんでしょうか。

それと、
>    *(volatile unsigned long *)ADDRESS = VALUE;
>
> と書くと ADDRESSで指定した値で address busがドライブされ、data busでは
> VALUEの値がドライブされると思います。
ですが、
どのように関数の中に書けばよいのか分かりません。

申し訳ありませんが、再度お願いします。


----- Original Message ----- 
From: "Yasushi SHOJI" <email@hidden>
To: "SUZAKU general discussion list" <email@hidden>
Sent: Thursday, July 13, 2006 4:35 PM
Subject: [Suzaku:00589] Re: キャラクタデバイスのドライバーの作成


> At Thu, 13 Jul 2006 16:02:04 +0900,
> Abe wrote:
> [...]
>> 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と同じであることを確認しました。
>> しかし、ハードウェア上では、アクセスできていないことを
>> オシロスコープで確認しました。
>
> hardwareに accessしていないと思うのですが、どうでしょう?f_posはファイ
> ル内のオフセットが入っているだけですので、copy_from_userするとどこか壊
> してしまいますよ。
>
>    *(volatile unsigned long *)ADDRESS = VALUE;
>
> と書くと ADDRESSで指定した値で address busがドライブされ、data busでは
> VALUEの値がドライブされると思います。
> --
>      yashi
>
> _______________________________________________
> suzaku mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/suzaku
> 




suzaku メーリングリストの案内