こんにちは私は私のcharデバイスドライバからシリアルポートttyS0にデータを渡したいです。
私は読み書きをする簡単なcharドライバーモジュールを作成しました、そしてそれはそれをする私の最初のtymです..私はdebianゲストOSを使用しています...
例えば
echo "hello"> / dev / mydev
/ dev / mydevがデータを受信すると、文字列を「hellotoo」のようなものに変更します。これは私のシリアルポート/ dev/ttyS0に渡されます。
文字列を変更するにはどうすればよいですか?.. mydev内でifステートメントを使用することは可能ですか?
例えば
if(string=="hello"){
alterstringTO: hello to;
pass "hello to" /dev/ttyS0;
like echoing in terminal..
echo "hello to" > /dev/ttyS0
}
それは可能ですか?...またはそれを行う他の方法はありますか?
ここにいくつかのコードがあります。
ssize_t dev_read(struct file *filp, char *buf, size_t clen, loff_t *f_pos){
short cnt =0;
while(clen && (msg[Pos]!=0))
{
put_user(msg[Pos],buf++);
cnt++;
clen--;
Pos++;
}
return cnt;
}
ssize_t dev_write(struct file *filp, const char *buf, size_t clen, loff_t *f_pos){
short dec = clen-1;
short cnt=0;
memset(msg,0,50);
Pos=0;
while(clen>0)
{
msg[cnt++] = buf[dec--];
clen--;
}
return cnt;
}
前もって感謝します..