linux 驱动调试 bug 记录

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才能释放,使用守护线程,随主线程释放而释放

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值