LINUX系统的调试信息是如何从串口输出的



(最近在调试安桌系统,发现安桌系统层的调试信息不能在串口终端上看到,但可以在ADB端的LOGCAT中看到,同时内核层LINUX的调试信息可以在串口终端中看到。不知道其中原因,因此决定来分析LINUX内核中PRINTK原理,以及安桌系统的LOG是怎么实现的。在此把源码分析过程记录在此方便日后查询。

注:参考了很多网友博文,由于参照和学习文章太多,在此不一一列出,感谢众大神的无私分享。)

 

相关源码版本:

LINUX内核源码版本:linux-3.0.86

UBOOT版本:uboot-2010.12.

Android系统源码版本:Android-5.0.2

 

串口调试信息如何输出这个话题太过宽泛,经过最近分析可以肢解为如下一些小知识点来理解串口调试信息的输出原理。分别是:

A:UBOOTLINUX内核传递参数的原理(其中就指定了我们用那个串口来输出调试信息,一般CPU都有几路串口,LINUX内核中会按照CPU介绍手册中分配的顺序来列出串口序号,根据UBOOT传入参数来决定调用那几路)

B:LINUX解析UBOOT传入参数的原理(会把传入的参数存一个字符串中)

C:LINUX如何来使用传入的参数(由CONSOLE来使用的,既在CONSOLE注册时利用传进来的参数,这个是LINUX内核层的CONSOLE,注意与安桌层及文件系统层的PRINTK的区别。内核层只需要实现输出功能,但前者必须要实现输入输出,以及更复杂的功能)

D:LINUX内核层PRINTK实现原理(最终调用上面注册的CONSOLE来输出调试信息)

E:安桌层及文件系统层的PRINTK输出原理(/device/console操控台原理分析,通过调用此操控台来输出信息,同时这儿涉及到/device/console调用TTY,然后TTY调用低层串口的分析)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值