高通平台实现桥接功能Bridge_Service

一、桥接功能:
PC通过USB数据线将数据传输到SP控制器中,这个过程中数据的传输需要通过桥接来实现。

二、桥接实现的过程:

在这里插入图片描述

PC端通过usb driver将数据传输给Android设备的虚拟串口ttyGS0,上层应用Bridge_Service操作ttyGS0将数据吞入,再通过串口ttyHS0吐出给SP的串口,SP接收并处理数据。
桥接成功后,PC可以给SP发送指令进行调试,给SP下载系统或固件等实现相关的一系列操作。

三、调试过程:
参考代码:svn://10.10.1.173/MSM8953_LA.UM.7.6.2/
在kernel中创建虚拟串口ttyGS0和串口ttyHS0:
1.ttyGS0:
驱动文件:driver/usb/gadget/function/u_serial.c(文件内有该虚拟串口的说明)
修改路径:(1)device/qcom/common/rootdir/etc/init.msm.usb.configfs.rc
添加以下内容:可参考
在这里插入图片描述

有些项目的此修改内容路径是device/qcom/common/rootdir/etc/init.qcom.usb.rc,这需要视不同模块平台而定。
(2)device/qcom/common/rootdir/etc/init.qcom.usb.rc
在这里插入图片描述

将此修改编译烧录后,/dev目录下生成ttyGS0节点,可手动输入指令设置属性,切换到ttyBridge模式:
adb root
adb shell setprop sys.usb.config ttybridge,adb

2.检测ttyGS0是否调通:
先切换桥接模式,然后在终端使用WIFI模式,通过指令cat dev/ttyGS0 打开该虚拟串口(该指令会先打开节点再读内容),使用串口助手打开设备COM口,发送数据,可以返回同样数据即可(类似串口回环)。

User版本需要增加修改:
在这里插入图片描述

3.ttyHS0:
(1)驱动文件路径:drivers/tty/serial/msm_serial_hs.c
(2)需要修改:
在这里插入图片描述

(3)检测ttyHS0是否调通:首先确认/dev/ttyHS0存在,然后通过硬件回环,短接uart的TX,RX; 在终端1输入指令cat dev/ttyHS0,再开一个终端2输指令echo testtty > dev/ttyHS0,如果终端1读到testtty字符串,则该串口调通,如果没有读到目标字符串或者dev/ttyHS0不存在,就需要从硬件开始检测问题;使用万用表测TX的电压,使用示波器测TX有没有数据发送,从这些方面着手。

四、Bridge_Service
该服务为中间层程序,主要获取ttyGS0的数据,然后转发给ttyHS0。有打开串口和切换到桥接模式的功能。源码路径:packages/odm/apps/BridgeService/

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值