嗨,我想将数据从我的 char 设备驱动程序传递到串行端口 ttyS0 ..
我创建了一个简单的 char 驱动程序模块,它可以读写,这是我第一次这样做.. 我正在使用 debian guest os ......
例如
回声“你好”> /dev/mydev
现在,当 /dev/mydev 接收到数据时,它会将字符串更改为类似于“hello too”的内容,并传递给我的串行端口 /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;
}
提前致谢..