CPU:RK3399

系统:Android 7.1

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

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

1、在配置文件中关闭 FIQ

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

  1. diff --git a/kernel/arch/arm64/configs/rockchip_defconfig b/kernel/arch/arm64/configs/rockchip_defconfig
  2. index dad111e..6d974cb
  3. --- a/kernel/arch/arm64/configs/rockchip_defconfig
  4. +++ b/kernel/arch/arm64/configs/rockchip_defconfig
  5. @@ -, +, @@ CONFIG_SW_SYNC=y
  6. CONFIG_SW_SYNC_USER=y
  7. CONFIG_ION=y
  8. CONFIG_ION_ROCKCHIP=y
  9. -CONFIG_FIQ_DEBUGGER=y
  10. -CONFIG_FIQ_DEBUGGER_NO_SLEEP=y
  11. -CONFIG_FIQ_DEBUGGER_CONSOLE=y
  12. -CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y
  13. -CONFIG_FIQ_DEBUGGER_TRUST_ZONE=y
  14. +# CONFIG_FIQ_DEBUGGER is not set
  15. CONFIG_RK_CONSOLE_THREAD=y
  16. CONFIG_POWERVR_ROGUE_N=y
  17. CONFIG_COMMON_CLK_RK808=y

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

Device Drivers  --->

  [*] Staging drivers  --->

    Android  --->

      [ ] FIQ Mode Serial Debugger

2、dts 文件中关闭调试

  1. diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi
  2. index cdd464d..2de1631
  3. --- a/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi
  4. +++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi
  5. @@ -, +, @@
  6. compatible = "rockchip,android", "rockchip,rk3399";
  7.  
  8. chosen {
  9. - bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 coherent_pool=1m";
  10. +// bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 coherent_pool=1m";
  11. + bootargs = "";
  12. };
  13.  
  14. cpuinfo {
  15. @@ -, +, @@
  16. fiq_debugger: fiq-debugger {
  17. compatible = "rockchip,fiq-debugger";
  18. rockchip,serial-id = <>;
  19. rockchip,wake-irq = <>;
  20. rockchip,irq-mode-enable = <>; /* If enable uart uses irq instead of fiq */
  21. rockchip,baudrate = <>; /* Only 115200 and 1500000 */
  22. pinctrl-names = "default";
  23. pinctrl- = <&uart2c_xfer>;
  24. interrupts = <GIC_SPI IRQ_TYPE_LEVEL_HIGH >;
  25. + status = "disabled";
  26. };

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

  1. diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3399-mid--android.dts b/kernel/arch/arm64/boot/dts/rockchip/rk3399-mid--android.dts
  2. old mode
  3. new mode
  4. index 60460be..57749a4
  5. --- a/kernel/arch/arm64/boot/dts/rockchip/rk3399-mid--android.dts
  6. +++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-mid--android.dts
  7. @@ -, +, @@
  8. status = "okay";
  9. };
  10.  
  11. +&uart2 {
  12. + pinctrl-names = "default";
  13. + pinctrl- = <&uart2c_xfer>;
  14. + status = "okay";
  15. +};
  16. +
  17. &usb_host0_ehci {
  18. status = "okay";
  19. };

4、修改 ttyS2 权限

  1. diff --git a/device/rockchip/common/ueventd.rockchip.rc b/device/rockchip/common/ueventd.rockchip.rc
  2. index 8d5d28d..
  3. --- a/device/rockchip/common/ueventd.rockchip.rc
  4. +++ b/device/rockchip/common/ueventd.rockchip.rc
  5. @@ -, +, @@
  6. #/dev/ttyS2 bluetooth net_bt_stack
  7. /dev/rtk_btusb bluetooth net_bt_stack
  8.  
  9. +/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. element-ui table 默认全选

    来自: https://juejin.im/post/5cf24f1ee51d4577583ddc77 侵删 this.deviceTableData = res.body || []; // con ...

  2. (二)react-native开发系列之windows开发环境配置

    之前写了react-native在mac上得环境搭建,但是如果只开发android的话,只要用windows系统就可以了,下面就来说下react-native的windows开发环境配置. 1.下载配 ...

  3. nginx的gzip模块详解以及配置

    文章来源 运维公会:nginx的gzip模块详解以及配置   1.gzip模块作用 gzip这个模块无论在测试环境还是生产环境都是必须要开启,这个模块能高效的将页面的内容,无论是html或者css.j ...

  4. DNS服务——正向查找区 和 逆向查找区

    前言 正向查找区,就是我们最熟知的DNS.即根据域名解析成IP 逆向查找区,即根据IP解析成域名. 他们之间的关系很像ARP和RARP 正向查找区 /etc/named.rfc1912.zones用于 ...

  5. Nginx access_log日志添加返回字段

    主要为方便单用户请求日志回溯分析   记录用户标记. 将用户信息打印在access_log 日志里. 步骤: 1.重写nginx 的log格式 一般是地址是  /etc/nginx/conf.d/ng ...

  6. HDU-5728-PowMod-求phi(i*n)前缀和+指数循环节

    HDU-5728-PowMod-求phi(i*n)前缀和+指数循环节 [Problem Description] 令\(k=\sum_{i=1}^m \varphi(i\cdot n)\ mod \ ...

  7. 【原创】SPFA判负环

    [定义与概念] 给定一张有向图,若其中存在一个环的所有权值之和为负数,这个环称为负环. [算法实现] 当然,负环的求解可以暴搜,但是时间复杂度就难以入眼了,我们回到求解单源最短路径算法上面,看看它们能 ...

  8. 常见的HTML5语义化标签

    ​ <title>:页面主体内容.<hn>:h1~h6,分级标题,<h1> 与 <title> 协调有利于搜索引擎优化.<ul>:无序列表. ...

  9. Python Scrapy 爬虫框架实例

    之前有介绍 scrapy 的相关知识,但是没有介绍相关实例,在这里做个小例,供大家参考学习. 注:后续不强调python 版本,默认即为python3.x. 爬取目标 这里简单找一个图片网站,获取图片 ...

  10. Nginx 做JavaWeb负载均衡

    随着用户量的增大,单台服务器已经满足不了用户的需求. 准备工作:安装 gcc.pcre-devel.zlib.OpenSSL 一下是在线   离线请戳这里 gcc 安装安装 nginx 需要先将官网下 ...