CPU:RK3399

系统:Android 7.1

串口需求量大时,会选择使用 spi 转串口,但是数据量大或者波特率较高时,传输会丢包。

调试串口 ttyS2 也可以让出来,供上层使用,下面是将 ttyS2 改为普通串口。

1、在配置文件中关闭 FIQ

使用 rockchip_defconfig 文件,就在此文件中修改

diff --git a/kernel/arch/arm64/configs/rockchip_defconfig b/kernel/arch/arm64/configs/rockchip_defconfig
index dad111e..6d974cb
--- a/kernel/arch/arm64/configs/rockchip_defconfig
+++ b/kernel/arch/arm64/configs/rockchip_defconfig
@@ -, +, @@ CONFIG_SW_SYNC=y
CONFIG_SW_SYNC_USER=y
CONFIG_ION=y
CONFIG_ION_ROCKCHIP=y
-CONFIG_FIQ_DEBUGGER=y
-CONFIG_FIQ_DEBUGGER_NO_SLEEP=y
-CONFIG_FIQ_DEBUGGER_CONSOLE=y
-CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y
-CONFIG_FIQ_DEBUGGER_TRUST_ZONE=y
+# CONFIG_FIQ_DEBUGGER is not set
CONFIG_RK_CONSOLE_THREAD=y
CONFIG_POWERVR_ROGUE_N=y
CONFIG_COMMON_CLK_RK808=y

如果不用 rockchip_defconfig 文件,就直接修改 kernel 目录下的 .config 文件(与 rockchip_defconfig 相同),或者在 make menuconfig 中关闭

Device Drivers  --->

  [*] Staging drivers  --->

    Android  --->

      [ ] FIQ Mode Serial Debugger

2、dts 文件中关闭调试

diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi
index cdd464d..2de1631
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi
@@ -, +, @@
compatible = "rockchip,android", "rockchip,rk3399"; chosen {
- bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 coherent_pool=1m";
+// bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 coherent_pool=1m";
+ bootargs = "";
}; cpuinfo {
@@ -, +, @@
fiq_debugger: fiq-debugger {
compatible = "rockchip,fiq-debugger";
rockchip,serial-id = <>;
rockchip,wake-irq = <>;
rockchip,irq-mode-enable = <>; /* If enable uart uses irq instead of fiq */
rockchip,baudrate = <>; /* Only 115200 and 1500000 */
pinctrl-names = "default";
pinctrl- = <&uart2c_xfer>;
interrupts = <GIC_SPI IRQ_TYPE_LEVEL_HIGH >;
+ status = "disabled";
};

3、打开 ttyS2 串口,这样上层才能识别到 ttyS2

diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3399-mid--android.dts b/kernel/arch/arm64/boot/dts/rockchip/rk3399-mid--android.dts
old mode
new mode
index 60460be..57749a4
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3399-mid--android.dts
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-mid--android.dts
@@ -, +, @@
status = "okay";
}; +&uart2 {
+ pinctrl-names = "default";
+ pinctrl- = <&uart2c_xfer>;
+ status = "okay";
+};
+
&usb_host0_ehci {
status = "okay";
};

4、修改 ttyS2 权限

diff --git a/device/rockchip/common/ueventd.rockchip.rc b/device/rockchip/common/ueventd.rockchip.rc
index 8d5d28d..
--- a/device/rockchip/common/ueventd.rockchip.rc
+++ b/device/rockchip/common/ueventd.rockchip.rc
@@ -, +, @@
#/dev/ttyS2 bluetooth net_bt_stack
/dev/rtk_btusb bluetooth net_bt_stack +/dev/ttyS2 system system

此时开机进入 kernel 后,ttyS2 不会再输出打印信息,但是 u-boot 中的打印信息还在,但已经不影响上层使用。

[RK3399] 调试串口ttyS2改为普通串口的更多相关文章

  1. C#串口操作类,包括串口读写操作

    串口进行操作的类,其中包括写和读操作,类可设置串口参数.设置接收函数.打开串口资源.关闭串口资源,操作完成后,一定要关闭串口.接收串口数据事件.接收数据出错事件.获取当前全部串口.把字节型转换成十六进 ...

  2. 串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧

    串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧 本例程中用51单片机作为Modbus从机,从机的设备地址为2,从机有4个寄存器, ...

  3. 小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口

    有些人,学习一样东西时候,喜欢现成的例子.很多人学习一门技术,都喜欢现成的例子开始,比如学单片机的啊,最开始都是修改的例子吧,学语言的也是.最开始都是模仿.这个年头看书上的理论知识太浪费时间了.所以啊 ...

  4. .NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯,flyfire.CustomSerialPort 的使用

    目录 1,前言 2,安装虚拟串口软件 3,新建项目,加入 flyfire.CustomSerialPort 4,flyfire.CustomSerialPort 说明 5,开始使用 flyfire.C ...

  5. 迅为iTOP-4418开发板串口虚拟控制台配置为普通串口

    如何将 iTOP-4418 的串口控制台配置为普通串口.在最终的产品中,如果需要额外的串口,可以将调试用的控制台串口作为普通串口使用,因为交付给最终用户手中的产品,一般不需要调试串口.屏蔽串口控制台需 ...

  6. 转载 C#开发串口总结,并提炼串口辅助类到公用类库中

    C#开发串口总结,并提炼串口辅助类到公用类库中 开发C#相关的项目有很多年了,一直没有接触串口的开发,近期由于工作的需要,需要了解熟悉对硬件串口的开发,通过对串口的深入了解,串口也不再是什么神秘的东西 ...

  7. windows串口编程Win32,PComm串口开发

    https://blog.csdn.net/u011430225/article/details/51496456 https://blog.csdn.net/eit520/article/detai ...

  8. C#串口图片传输以及对串口缓冲区的简单理解

    第一次接触串口,写点东西加深自己对串口的印象: 通过参考一些网上的实例,我明白了串口怎么简单的进行通信交流,但是我所需要的还是图片等大文件在串口中的传输,串口传输是通过二进制位进行单位传输的,所以传输 ...

  9. Linux下串口ttyS2,ttyS3不能用的问题解决办法

    PC104,Xlinux下,突然发现串口3,4不能用... 以为是硬件的问题,换成wince后,3,4工作正常,排除电路问题 在linux下查看dmesg: serial8250: ttyS0 at ...

随机推荐

  1. Linux查找文件之Find命令

    Linux系统文件中常用属性包括以下内容:名称,大小,权限,属主,属组,修改时间,访问时间等.在庞大的Linux系统中查询文件,需要借助查找工具来实现,依此可以查询相同或指定属性的文件,本文所讲的查询 ...

  2. js入门之内置对象Date

    一. Date对象 Math和Date对象的区别 Math对象和Date对象的区别 Math不是一个构造函数,里面提供的是静态成员 Date是一个构造函数 首先要通过new Date() 来创建日期实 ...

  3. 简述FTP的主动模式与被动模式(精简)

    一.主被动 主动: 客户端从任意一个大于1024的端口现在假设为1234(非特权端口)连接到服务端的21端口(命令端口),随之客户端监听端口(N+1)即为1235端口(可以理解为这是客户端认定的数据端 ...

  4. 2. 软件有很多种,也有各种分类办法: ShrinkWrap (在包装盒子里面的软件,软件在CD/DVD上); Web APP (基于网页的软件); Internal Software (企业或学校或某组织内部的软件); Games (游戏); Mobile Apps (手机应用); Operating Systems (操作系统); Tools

     选取对你最相关的一类软件,  请回答:(web app)  1) 此类软件是什么时候开始出现的, 这些软件是怎么说服你(陌生人)成为他们的用户的?  他们的目标都是盈利么?  他们的目标都是赚取用户 ...

  5. Thrift使用入门---RPC服务

    https://blog.csdn.net/zkp_java/article/details/81879577 RPC基本原理 大部分的RPC框架都遵循如下三个开发步骤: RPC通信过程如下图所示 通 ...

  6. 6. kafka序列化和反序列化

    https://blog.csdn.net/weixin_33690963/article/details/91698279 kafka序列化: 生产者在将消息传入kafka之前需要将其序列化成byt ...

  7. 【二叉搜索树】PAT-天梯赛- L2-004. 这是二叉搜索树吗?

    大致题意: 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点,    其左子树中所有结点的键值小于该结点的键值:    其右子树中所有结点的键值大于等于该结点的键值:    其左右子树 ...

  8. vim快捷操作记录

    1. ctrl+v 去选中代码块,按下=号,代码块对齐 命令行模式下 输入:1,16 left会左对齐

  9. [转]对于BIO/NIO/AIO,你还只停留在烧开水的水平吗

    原文:https://www.javazhiyin.com/40106.html https://coding.imooc.com/class/381.html ------------------- ...

  10. 20 区分webpack中导入vue和普通网页使用script导入Vue的区别

    回顾包的查找规则: 1.找项目根目录中有没有node_modules的文件夹 2.在node_modules中根据包名,找对应的vue文件夹 3.在vue文件夹中,找一个叫做package.json的 ...