1. 字符设备 close 中的最后一条数据一直报错,有没有人知道怎么回事
ssize_t pinpong_control_uart_write(char *buf, size_t len){
int ret = 0;
uint8_t recv[50] = {0};
kernel_read(filp, 0, recv, 50); // 相当于错误处理,读出之前缓冲的字符串,保证下一个字符串正常
ret = kernel_write(filp, buf, len, filp->f_pos);
// while(1){
// if(ret > 0){
// break;
// }
// msleep(2000);
// ret = kernel_write(filp, buf, len, filp->f_pos);
// kernel_read(filp, 0, recv, 1);
// printk("buf = %d %d %d %d %d %d\n", buf[0],buf[1],buf[2],buf[3],buf[4],buf[5]);
// printk("len = %d ++++++++write error ret = %d \n",len ,ret);
// }
return ret;
}
ret 一直等于 -512 ,内核中也没有这个错误码啊!!!! 最后使用共享队列解决
2.python 中在代码中开辟了线程,必须使用两次ctrl+c才能释放,使用守护线程,随主线程释放而释放