RK3288调试串口
来源:互联网 发布:蛋壳公寓靠谱吗 知乎 编辑:程序博客网 时间:2024/06/07 12:07
RK3288芯片总共有5路串口,默认情况下:
UART_BB(串口1)、UART_BT(串口0)、UART_GPS(串口3)、UART_EXP(串口4)、UART_DBG(串口2)。默认使用串口2为调试串口,即UART_DBG,UART_DBG不支持自动流控制(auto flow-control,AFC),支持高达115200波特率的红外数据通信标准(SIR 1.0)。
有时需要的串口不够用,需要关闭串口调试,切换调试串口为普通串口:
调试串口就是将普通串口切换成了console来处理,rockchip调试串口的数据处理代码在arch/arm/mach-rockchip/rk_fiq_debugger.c中,其中dts默认参数如下:
fiq-debugger { compatible = "rockchip,fiq-debugger"; rockchip,serial-id = <2>; rockchip,signal-irq = <106>; rockchip,wake-irq = <0>; status = "disabled";};
rockchip,serial-id = <2>,指定调试串口的串口为串口2.
取消调试串口就是不加载编译这个代码,这样uart2就是默认的普通串口来使用。
因此,sed -i “s/CONFIG_FIQ_DEBUGGER=y/# CONFIG_FIQ_DEBUGGER is not set/g” .config即可
make menuconfig如下:
Device Drivers —>
[*] Staging drivers —>
Android —>
[ ] FIQ Mode Serial Debugger //不选中即可
[arch/arm/mach-rockchip/rk_fiq_debugger.c]
Rk_fiq_debugger.c代码是device代码,而在dts中的compatible = “rockchip,fiq-debugger”代表的就是设备是okay还是disabled,这也就解释了为何当时在测试时fiq-debugger置为disabled时recovery部分就会挂掉,因为在printk输出打印消息时,调试串口的console初始化是成功的,但是却没有对应的writr,read等函数去操作,如下函数最终会被printk,read,write等调用:
这样disabled串口的device时,rk_fiq_debugger部分结束:
而fiq debugger驱动仍然能够执行,当printk输出消息时,调用到uart_putc(debug_putc)时就会出错,因此不能只将fiq-debugger disabled。
RK提供的fiq debugger功能是将debugger功能和普通uart功能代码集成到了一起,代码中通过CONFIG_FIQ_DEBUGGER_CONSOLE宏来配置fiq debugger调试串口。
fiq_debugger_tty_init()函数进行调试串口的初始化。
CONFIG_FIQ_DEBUGGER宏:
#ifdef CONFIG_FIQ_DEBUGGER#define CONFIG_FIQ_DEBUGGER_NO_SLEEP#define CONFIG_FIQ_DEBUGGER_CONSOLE#define CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE#endif
[arch/arm/mach-rockchip/Makefile]
obj-$(CONFIG_FIQ_DEBUGGER) += rk_fiq_debugger.o
关闭调试串口只需要取消CONFIG_FIQ_DEBUGGER宏的配置。
参考:http://blog.csdn.net/kris_fei/article/details/53928650
- RK3288调试串口
- [RK3288][Android6.0] 调试笔记 --- 调试串口的更换
- [RK3288][Android6.0] 系统调试串口驱动流程小结
- [RK3288][Android6.0] 调试笔记 --- 普通串口的添加
- rk3288串口开发
- [RK3288][Android6.0] 调试笔记 --- user版本串口只有输出不能输入
- RK3288 uvc摄像头调试
- RK3288 UVC 摄像头调试
- RK3288 uvc摄像头调试
- rk3288之释放打印log的串口
- [RK3288][Android6.0] 串口驱动流程小结
- 串口调试
- 串口调试
- 串口调试
- 串口调试
- 串口调试
- 串口调试
- 串口调试
- RDD实现详解
- 纯代码搭建iOS三级结构(UITabbarController+UINavigationController+UIViewController)
- Exploit
- 如何使用一台手机和路由让整个办公室的人都能上网
- JDBC中利用主键返回和Batch插入多条数据
- RK3288调试串口
- android get请求数据
- 数组的形状操作
- 常用的 Android 架构
- 结对编程——四则混合运算生成
- N进制转M问题(理论上没有限制)
- 鸣冤叫屈的现在进行时和过去式
- POJ 1157 LITTLE SHOP OF FLOWERS
- 使用eclipse对比SVN提交两个版本代码差异