Linux内核睡眠唤醒调试

Linux内核睡眠唤醒调试,第1张

本文基于 RockPI 4A 单板 Debian 系统 Linux4.4 内核介绍下睡眠唤醒( suspend/resume )的一些调试方法。

1、关闭串口睡眠

在Linux内核睡眠过程中,会先调用 suspend_console() 函数使串口进入睡眠状态,这样会导致后续设备驱动的睡眠过程不可见。可以在boot启动参数中增加 no_console_suspend 参数,显示设备驱动睡眠日志。

2、修改串口日志等级

修改串口日志打印等级,显示更多调试信息。

3、打开设备睡眠唤醒时间

设置 pm_print_times 参数,可以显示设备驱动睡眠唤醒时间,方便调试时查看哪个函数处理占用时间过长。

在调试Linux内核睡眠唤醒功能时,可以使用 RTC 做唤醒源,在系统睡眠5秒后,自动唤醒系统。

在 arch/arm64/configs/rockchip_linux_defconfig 文件中配置宏 CONFIG_PM_TEST_SUSPEND 。

唤醒日志如下:

在 Linux 系统下面,不同的语言有不同的调试方法。如果是对用户自己编写的 C 语言源程序(*.c)进行调试,一般使用 gcc 编译器对 *.c 为后缀的源文件进行高级调试。例如:语法错误、数组越界错误、内存溢出错误等,但是这类错误,用户无法进行底层调试,只能够根据出错的原因,对源程序进行修改,然后再使用 gcc 编译器对源程序进行重新编译、运行;如果是对机器级的可执行代码进行底层调试,那还需要专门的对底层进行调试的工具软件才行。

方法:

_hell提供了一些用于调试脚本的选项,如:

?1.-n :读一遍脚本中的命令但不执行,用于检查脚本中的语法错误。

?2.-v :一边执行脚本,一边将执行过的脚本命令打印到标准错误输出。

?3.-x :提供跟踪执行信息,将执行的每一条命令和结果依次打印出来。该选项有三种常见的使用方法:

?1.在命令行提供参数。如:itcast@itcast$ sh -x ./script.sh

?2.在脚本开头提供参数。如:#! /bin/sh -x

_诮疟局杏_et命令启用或禁用参数。如:set -x 和 set +x分别表示启用和禁用-x参数,这样可以只对脚本中的某一段进行跟踪调试。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/7096748.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存