[高通SDM450][Android9.0]debug串口转通用串口

本文档介绍了在SDM450芯片、Android 9.0系统的设备上,由于USB转串口的不稳定性,决定将debug串口转换为通用串口使用。通过提供针对kernel 4.9的补丁,修改BoardConfig.mk文件和kernel配置,实现了debug口到普通串口的转换。调试过程中发现波特率设置问题,并调整为9600以确保正常通信。
摘要由CSDN通过智能技术生成

开发平台基本信息

芯片: SDM450
版本: Android 9.0
kernel: msm-4.9

问题描述

由于硬件起初设计的时候,没有预留通用串口,而usb转串口又不是特别稳定,经常会挂死,虽然可以通过上、下电U口节点去恢复串口功能,但是,效果仍然不如直接使用串口好。刚好,在设备上有一个debug串口,平时是驱动调试功能用的,业务就提出将debug串口转为通用串口使用,解决u转串不稳定的问题。

解决方法

debug口转普通串口补丁

diff --git a/device/qcom/msm8953_64/BoardConfig.mk b/device/qcom/msm8953_64/BoardConfig.mk
index 61d3034..676ea13 100755
--- a/device/qcom/msm8953_64/BoardConfig.mk
+++ b/device/qcom/msm8953_64/BoardConfig.mk
@@ -182,8 +182,10 @@ BOARD_VENDOR_KERNEL_MODULES := \
 
 endif
 
-ifeq ($(strip $(TARGET_KERNEL_VERSION)), 4.9)
-    BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 androidboot.bootdevice=7824900.sdhci earlycon=msm_serial_dm,0x78af000 firmware_class.path=/vendor/firmware_mnt/image androidboot.usbconfigfs=true loop.max_part=7
+ifeq ($(strip $(TARGET_KERNEL_VERSION))_$(D2_NoNeed_DebugSerial), 4.9_true)
+    BOARD_KERNEL_CMDLINE := user_debug=31 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 androidboot.bootdevice=7824900.sdhci earlycon=msm_serial_dm,0x78af000 firmware_class.path=/vendor/firmware_mnt/image androidboot.usbconfigfs=true loop.max_part=7
+else ifeq ($(strip $(TARGET_KERNEL_VERSION)), 4.9) 
+       BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 androidboot.bootdevice=7824900.sdhci earlycon=msm_serial_dm,0x78af000 firmware_class.path=/vendor/firmware_mnt/image androidboot.usbconfigfs=true loop.max_part=7
 else ifeq ($(strip $(TARGET_KERNEL_VERSION)), 3.18)
     BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 androidboot.bootdevice=7824900.sdhci earlycon=msm_hsl_uart,0x78af000 firmware_class.path=/vendor/firmware_mnt/image loop.max_part=7
 endif
 
 
 diff --git a/kernel/msm-4.9/arch/arm64/configs/msm8953-telpo-D2-perf_defconfig b/kernel/msm-4.9/arch/arm64/configs/msm8953-telpo-D2-perf_defconfig
index 7e0a3d0..1540b98 100755
--- a/kernel/msm-4.9/arch/arm64/configs/msm8953-telpo-D2-perf_defconfig
+++ b/kernel/msm-4.9/arch/arm64/configs/msm8953-telpo-D2-perf_defconfig
@@ -339,8 +339,8 @@ CONFIG_INPUT_UINPUT=y
 # CONFIG_LEGACY_PTYS is not set
 # CONFIG_DEVMEM is not set
 # CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_MSM_HS=y
-CONFIG_SERIAL_MSM_SMD=y
+#CONFIG_SERIAL_MSM_HS=y
+#CONFIG_SERIAL_MSM_SMD=y
 CONFIG_DIAG_CHAR=y
 CONFIG_DIAG_USES_SMD=y
 CONFIG_HW_RANDOM=y
@@ -701,9 +701,9 @@ CONFIG_USB_SERIAL_PL2303=y
 CONFIG_USB_SERIAL_FTDI_SIO=y
 
 CONFIG_SERIAL_MSM_HSL=y
-CONFIG_SERIAL_MSM_HSL_CONSOLE=y
+#CONFIG_SERIAL_MSM_HSL_CONSOLE=y
 CONFIG_SERIAL_MSM=y
-CONFIG_SERIAL_MSM_CONSOLE=y
+#CONFIG_SERIAL_MSM_CONSOLE=y
 
 CONFIG_SENSORS=y
 CONFIG_SWITCH=y
diff --git a/kernel/msm-4.9/arch/arm64/configs/msm8953-telpo-D2_defconfig b/kernel/msm-4.9/arch/arm64/configs/msm8953-telpo-D2_defconfig
index 8a468b8..b113cc4 100755
--- a/kernel/msm-4.9/arch/arm64/configs/msm8953-telpo-D2_defconfig
+++ b/kernel/msm-4.9/arch/arm64/configs/msm8953-telpo-D2_defconfig
@@ -347,9 +347,9 @@ CONFIG_INPUT_UINPUT=y
 # CONFIG_DEVMEM is not set
 # CONFIG_DEVKMEM is not set
 CONFIG_SERIAL_MSM=y
-CONFIG_SERIAL_MSM_CONSOLE=y
+#CONFIG_SERIAL_MSM_CONSOLE=y
 CONFIG_SERIAL_MSM_HS=y
-CONFIG_SERIAL_MSM_SMD=y
+#CONFIG_SERIAL_MSM_SMD=y
 CONFIG_DIAG_CHAR=y
 CONFIG_DIAG_USES_SMD=y
 CONFIG_HW_RANDOM=y
@@ -767,7 +767,7 @@ CONFIG_USB_SERIAL_PL2303=y
 CONFIG_USB_SERIAL_FTDI_SIO=y
 
 CONFIG_SERIAL_MSM_HSL=y
-CONFIG_SERIAL_MSM_HSL_CONSOLE=y
+#CONFIG_SERIAL_MSM_HSL_CONSOLE=y
 
 CONFIG_SENSORS=y
 CONFIG_SWITCH=y


注:修改完之后进行调试,用AT指令工具打开串口,发生指令没有接收到返回,原因是波特率设置为115200,改为9600就能正常收到返回数据了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值