Android8.1系统修改串口节点

Android8.1系统修改串口节点,第1张

        应客户需求,需要将Android系统里面的串口4(/dev/ttyS4)节点名称修改为/dev/ttyS9。

        由于设备节点都是在驱动里面注册生成的于是查看串口驱动。根据log信息找到了系统串口驱动\kernel\drivers\tty\serial\8250\8250_dwc中的注册函数dw8250_probe。该函数中找到serial8250_register_8250_port,这个是注册设备节点的函数。然后查看serial8250_register_8250_port函数定义(kernel\drivers\tty\serial\8250\8250_corec),找到了后续注册节点的函数uart_add_one_port,继续查看该函数(位于kernel\drivers\tty\serial\serial_corec)定义,该函数又是调用tty_port_register_device_attr进行注册的,继续跟踪该函数(kernel\drivers\tty\tty_portc),该函数又是调用了tty_register_device_attr(位于kernel\drivers\tty\tty_ioc)进行注册。添加log分析得知串口节点的名字获取是由tty_line_name产生的。于是查看tty_line_name的实现:

static ssize_t tty_line_name(struct tty_driver driver, int index, char p)

{

if (driver->flags & TTY_DRIVER_UNNUMBERED_NODE)

return sprintf(p, "%s", driver->name);

else

return sprintf(p, "%s%d", driver->name,

  index + driver->name_base);

}

}

通过打印得知串口节点设备名称是由驱动名称 driver->name和串口序号index 组成的,于是添加判断 driver->name是否为"ttyS",index是否为4,如果是就替换。

1、首先,不能用虚拟机,不须用真机

2、可以查找周围蓝牙设备,当搜索到你要连接到的蓝牙设备,停止discovering,然后就自动连接。或者是,如果你确定手机和蓝牙设备已经配对成功过,那也可以用 getBundedDevice指令,获取配对成功的蓝牙设备,在配对成功的蓝牙设备里查找到后实现连接。这两种方法后者会比较好一些,一般时间相差3到4秒。

这样配对连接成功后就可以尝试输入输出流来实现数据发送接收了

以上就是关于Android8.1系统修改串口节点全部的内容,包括:Android8.1系统修改串口节点、安卓手机监测不到串口设备、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9501806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存