首页 > 其他分享 >uart loglevel和pr_debug的区别

uart loglevel和pr_debug的区别

时间:2024-09-18 18:23:30浏览次数:11  
标签:pr UART uart loglevel debug 日志 DEBUG

pr_debug 是 Linux 内核中用于打印调试信息的宏,它的行为会根据编译时的配置有所不同。如果定义了 CONFIG_DYNAMIC_DEBUG 配置选项,pr_debug 会扩展为 dynamic_pr_debug,这允许在运行时动态地控制调试信息的输出。如果没有定义 CONFIG_DYNAMIC_DEBUG,但定义了 DEBUG,则 pr_debug 等同于使用 KERN_DEBUG 日志级别的 printk。如果两者都没有定义,pr_debug 不会产生任何输出。

UART(Universal Asynchronous Receiver/Transmitter,通用异步接收/发送器)是一种常用的串行通信协议,它用于在设备之间传输数据。UART 协议定义了数据传输的格式,包括起始位、数据位、可选的奇偶校验位和停止位。UART 通信是异步的,意味着发送和接收设备使用不同的时钟信号,因此它们必须约定相同的波特率(数据传输速率)以确保数据的正确传输。

pr_debugUART 日志级别(loglevel)的主要区别在于它们的用途和工作方式:

  1. pr_debug 是一个条件编译宏,用于内核开发中的调试信息输出,而 UART loglevel 是 UART 驱动程序或设备中用于控制日志输出级别的设置。

  2. pr_debug 的输出可以通过内核的动态调试功能在运行时开启或关闭,而 UART loglevel 通常在系统启动时通过内核参数或设备驱动配置设置。

  3. pr_debug 输出的日志级别默认为 KERN_DEBUG,但可以通过定义 DEBUG 或使用动态调试功能来改变。UART 日志级别则根据实际的设备或驱动程序的实现来确定,可能包括不同的日志级别,如错误、警告、通知等。

  4. pr_debug 主要用于内核开发者在开发和调试过程中,而 UART 日志级别则用于监控和调试 UART 通信设备在运行时的状态。

在实际应用中,开发者可能会根据需要在内核代码中使用 pr_debug 来输出调试信息,而系统管理员或用户可能会通过调整 UART loglevel 来查看或控制 UART 设备的日志输出。

标签:pr,UART,uart,loglevel,debug,日志,DEBUG
From: https://www.cnblogs.com/linhaostudy/p/18419067

相关文章

  • 谷歌浏览器debugger突然不起作用了
    问题描述:vue项目,home页面添加debugger断点,点击页面刷新按钮好几次,每次都没起作用,但是debugger后边调用接口的代码却执行了,影响问题定位。 解决:打开浏览器,点击右上角三个点->更多工具->开发者工具(或者F12)设置(Settings)IgnoerList取消/node_modules/xxx前端的勾选......
  • 无限debugger的解决----(一)
    在尝试打开控制台时,遇到了这个问题,页面陷入无限debuuger。尝试(一)在debugger这一行点击Neverpausehere也就是从不在此处暂停,但之后发现没用,关掉一个又出现一个。之后我又尝试了设置进入断点的条件,这个可以在调试过程中,期望某个变量的值大于某个具体的值的时候才停......
  • 【SpringBoot】调度和执行定时任务--Quartz(超详细)
    Quartz是一个功能强大的任务调度框架,广泛用于在Java应用程序中定时执行任务,同时它支持Cron表达式、持久化任务、集群等特性。以下是Quartz的详细使用教程,包括安装、基本概念、简单示例和高级功能。1.安装Quartz首先,在你的项目中添加Quartz依赖。对于Maven项......
  • UART——通用异步接收发送器
    数字系统是以1和0的形式共享和存储信息。要与具有不同架构的多个设备共享此信息,我们需要一种通用的数据交换方法。这就是各种通信协议发挥作用的地方,其中之一就是通用异步接收器发送器(UART)。它是嵌入式电子产品中最常用的通信协议之一。它是一种串行、全双工、异步......
  • Managed Debugging Assistant 'ContextSwitchDeadlock' : 'The CLR has been unable t
    ManagedDebuggingAssistant'ContextSwitchDeadlock':'TheCLRhasbeenunabletotransitionfromCOMcontext0x28ab560toCOMcontext0x28ab4a8for60seconds.Thethreadthatownsthedestinationcontext/apartmentismostlikelyeitherdo......
  • android 删除系统原有的debug.keystore,系统运行的时候,重新生成新的debug.keystore,来完
    1、先上一个图:这个是keystore无效的原因之前在安装这个旧版本androidstudio的时候呢,安装过一版最新的androidstudio,然后通过模拟器跑过测试的demo。2、运行旧的项目到模拟器的时候,就报错了:Executionfailedfortask':app:packageDebug'.>Afailureoccurredwhilee......
  • 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明)
    十,SpringBoot的内容协商的详细剖析(附+Debug调试说明)@目录十,SpringBoot的内容协商的详细剖析(附+Debug调试说明)1.基本介绍2.准备工作3.内容协商的本质4.内容协商:注意事项和使用细节5.总结:6.最后:1.基本介绍根据客户端接收能力不同,SpringBoot返回不同媒体类型的数......
  • 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明)
    十,SpringBoot的内容协商的详细剖析(附+Debug调试说明)文章目录十,SpringBoot的内容协商的详细剖析(附+Debug调试说明)1.基本介绍2.准备工作3.内容协商的本质4.内容协商:注意事项和使用细节5.总结:6.最后:1.基本介绍根据客户端接收能力不同,SpringBoot返回不......
  • Linux下sysfs_procfs_debugfs使用
    1Linux下sysfs/procfs/debugfs使用Linux内核空间与用户空间的交互如何能透过文件系统这层关系,把需要参数写入文件中呢?当然有办法,linux内核提供了3种“内存文件系统”,分别是sysfs、debugfs、procfs,驱动工程师可以通过任意的一种文件系统向用户空间传递信息。Sysfs的挂载点为/s......
  • VScode python 调试深度学习项目 debugpy 库
    以前打OI,限于辣鸡NOILinux没有靠谱的IDE。只能用终端gdb来调试C++。gdb基本功能还是有的,但是每次启动,之前的东西(断点,监控变量)都会消失,需要重新输一遍。所以当时发现还是输出调试好,当然前置条件是写的两百行左右的程序编译时间短(1s左右),从头运行一遍也快(一个题规定的运......