1、首先硬件原理图上需要确认使用的是哪个串口,比如我这里使用的是串口uart4:

2、其次在kernel需要把对应串口的节点使能打开(dts或者dtsi文件中节点配置):
dts里面打开使能(文件:arch/arm64/boot/dts/rockchip/rk3399-box-rev2-hdmi.dts):

&uart4 {status = "okay";};

dtsi里面的资源描述(文件:./arch/arm64/boot/dts/rockchip/rk3399.dtsi):

         uart4: serial@ff370000 {compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";reg = <0x0 0xff370000 0x0 0x100>;clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;clock-names = "baudclk", "apb_pclk";interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;reg-shift = <2>;reg-io-width = <4>;pinctrl-names = "default";pinctrl-0 = <&uart4_xfer>;status = "disabled";};

3、驱动设备注册log
debug串口有以下log打印,说明驱动注册成功了。如果pinctrl跟其他驱动有冲突的话,会报pinctrl配置失败的log。

[    0.398206] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
[    0.398748] ff180000.serial: ttyS0 at MMIO 0xff180000 (irq = 36, base_baud = 1500000) is a 16550A
[    0.399227] ff370000.serial: ttyS4 at MMIO 0xff370000 (irq = 38, base_baud = 1500000) is a 16550A

3、测试验证uart是否通了
驱动起来后会注册ttySx设备。下面这个是对应的串口4

rk3399_all:/ # ls -l dev/ttyS4 //确认是否有串口节点crw-rw-rw- 1 system system 4, 68 1970-01-01 00:06 dev/ttyS4

驱动会根据aliase,来对应串口编号,如下: serial0最终会生成ttyS0,serial3会生成ttyS3设备。

{
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
serial3 = &uart3;
serial4 = &uart4;
};

验证方法: 镊子短接tx rx,然后在串口或者adb,敲入命令: echo “1234” > dev/ttyS4 && cat dev/ttyS4,可以实现数据自发自收(能够收发字符串:“1234”)!

rk3399_all:/ # echo "1234" > dev/ttyS4 && cat dev/ttyS4
1234

rk3399_android7.1调试串口uart功能和测试是否能通讯相关推荐

  1. 2.3 基于FPGA的UART协议实现(一)串口信号定义和接线方法-5针串口-9针串口-全功能串口

      通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART.它将要传输的资料在串行通信与并行通信之间加以转换.作为把并行输入信号 ...

  2. CSR8675 使用串口 UART 收发功能

    CSR8675 使用串口 UART 收发功能 CSR8675 实现 UART 功能有两种方式,一种是托管连接,另一种是直接连接. 托管连接:不直接操作 Stream,通过 VM 层创建 Source ...

  3. STM32 HAL库 UART 串口读写功能笔记

    https://www.cnblogs.com/Mysterious/p/4804188.html STM32L0 HAL库 UART 串口读写功能 串口发送功能: uint8_t TxData[10 ...

  4. 串口调试软件,功能强大,侦测,拦截,逆向分析串口通汛协议

    串口调试软件,功能强大,侦测,拦截,逆向分析串口通汛协议,是RS232 /422/485串行端口的专业工貝软件编号:436653364752811GUANXFENG

  5. 修改UBOOT和LINUX调试串口(TI达芬奇芯片--DM6467)

    Posted on 2011-10-31 10:53 jamiedu 阅读(889) 评论(0) 编辑 收藏 1.1 概述 TI针对DM6467提供的UBOOT和内核默认都是串口0作为调试串口输出的, ...

  6. ARM架构与编程(基于I.MX6ULL): 串口UART编程(七)

    文章目录 1.硬件知识 URAT硬件介绍 1.1.串口的硬件介绍 1.2.串口的参数 1.3.串口电平 1.4 串口内部结构 2. IMX6ULL UART操作 2.1. 串口编程步骤 2.1.1. ...

  7. 痞子衡嵌入式:嵌入式里串口(UART)自动波特率识别程序设计与实现

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式里串口(UART)自动波特率识别程序设计与实现. 串口(UART)是嵌入式里最基础最常用也最简单的一种通讯(数据传输)方式,可以说 ...

  8. 新唐nuc972更换uboot调试串口

    最近开新项目用到新唐的nuc972平台,由于硬件工程师为了方便布线,所以将原本用于调试口的uart0改成了485,需要将uart1更改为调试串口.最初从nuc972开发文档开始看,看uboot配置和修 ...

  9. STM32单片机实现DMA+ADC+UART功能

    突然想测试一下STM32单片机ADC采样速率问题,按照常规方法,可以通过ADC采样,然后将采样值打印出来.但是这种方法在处理和打印数据的时候会占用很多时间,导致处理数据的时间超过了ADC的采样时间.于 ...

  10. Esp8266 进阶之路25【高级篇】深聊下esp8266的串口 Uart 通讯中断编程,为您准备好了 NONOS 版本 和 RTOS 系统的串口驱动文件。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

最新文章

  1. java程序语句是_Java-语言编程
  2. Java多线程使用场景
  3. Spring工具类ToStringBuilder用法简介
  4. 疯子的算法总结(一) 位运算(快速幂、快速乘)
  5. python2转python3代码_Python2代码转成Python3代码
  6. CDialog中使用工具栏和状态栏
  7. 对Spring Boot还陌生吗?
  8. 2010年初的一点随想
  9. 如何用python计算年龄_python 实现年龄计算程序
  10. 易语言 文件捆绑机的原理【转载】
  11. 【无标题】【光纤光缆小知识】多模光纤的分类及应用
  12. 【三石jQuery视频教程】01.图片循环展示_重发
  13. MATLAB实现大家来找茬GUI程序
  14. 离散数学数理逻辑部分【1】
  15. 2021 46届icpc 南京
  16. matlab的exp函数学习
  17. Windows server 2008升级为 Windows server 2016
  18. 四招识卖假点卡网站 五大常见骗术显形(转)
  19. Windows10如何滑动关机(与以前不一样的方式)
  20. Oracle Exadata体系笔记

热门文章

  1. 《疯狂Java讲义》(七)---- 方法
  2. imos 学习笔记四 录像 c#
  3. Nginx 笔记与总结(4)配置 server 访问日志
  4. 足球——2011-2012意甲球队队标
  5. 如何查看mongo集合的数据类型
  6. 全球科研城市榜出炉:前二十强中国城市占6席,北京居首
  7. 如何写论文?看下这份《科研论文撰写策略》为你指点一二
  8. 每日算法系列【LeetCode 386】字典序排数
  9. 客户价值分析—RFM模型及变形
  10. AI公开课丨李楠博士带你入门集成学习(第二期)