I2C调试 I2C调试busybox devmem在Linux系统,如果我们想要访问某个寄存器,就需要写一个驱动程序,在驱动中映射寄存器地址,转为虚拟地址后就可以访问。但有时候,我们只是单纯想知道某个寄存器的值,不想这么麻烦,怎么办呢?Linux早就想到这一点了,于是提供了一个工具devmem,通过devmem就可以直接读写寄存器,devmem是一个命令,在shell中输入devmem命令就可以非常方便的读 2024-07-17 debug #debug #i2c
ioctl ioctl在驱动程序的ioctl函数体中,实现了一个switch-case结构,每一个case对应一个命令码,case内部是驱动程序实现该命令的相关操作。 ioctl的实现函数要传递给file_operations结构体中对应的函数指针,函数原型为 123#include <linux/ioctl.h>long (*unlocked_ioctl) (struct file * fp, 2024-07-10 ioctl #ioctl
S3 问题根因分析技术文档 S3 问题根因分析技术文档问题背景 x86 1070 5.10 联想昭阳k4e-iml 待机自动唤醒 首先我们看一下日志 我们可以看到在准备Disabling non-boot CPUs 的时候检测到wakeup事件了(wake up pending),abort CPU freeze 一般这个wakeup事件产生可能是某些设备下电的时候出现异常,或者此时外部设备来了一个中断,打断S3的操作 2024-07-10 Power Management #bug #Power Management
内存寻址 内存寻址内存地址 逻辑地址:用来指定一个操作数或一条指令的地址,段(segment)+偏移量(offset | displacement),偏移量指明了从段开始的地方到实际地址之间的距离 线性地址:也称作虚拟地址,32位无符号整数,通常用十六位进制数表示,值的范围从0x00000000~0xffffffff 物理地址:内存芯片级内存单元寻址 在内存寻址中,我们通常以字节为单位 段选择 2024-07-10 内存寻址 #内存寻址
Suspend (kernel 5.10) Suspend (kernel 5.10) state_store pm_suspend enter_state valid_state suspend_prepare sleep_state_supported pm_notifier_call_chain_robust suspend_freeze_processes freeze_processes freeze_kern 2024-06-20 Power Management #Power Management
linux工具 USBcat_usb_device_power_wakeup.sh12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#!/bin/bash# author: TomfileName=""productName=""for 2024-05-20 script #script
crash Crash一个用于分析 Linux 内核转储文件的工具。它提供了一个交互式的环境,让用户能够检查内核转储文件中的信息,包括进程栈、内核数据结构等 进入crash环境12sudo -scrash /lib/debug/vmlinux btbacktrace打印内核栈回溯信息,bt pid 打印指定进程栈信息 1234567891011121314151617181920212223242526 2024-05-10 debug #debug
gdb gdb编译程序加参数时生成调试信息 g 和 -ggdb 都是令 gcc 生成调试信息,但是它们也是有区别的 选项 解析 g 该选项可以利用操作系统的“原生格式(native format)”生成调试信息。GDB 可以直接利用这个信息,其它调试器也可以使用这个调试信息 ggdb 使 GCC为GDB 生成专用的更为丰富的调试信息,但是,此时就不能用其他的调试器来进行调试了 (如 ddx 2024-05-10 debug #debug
kdump Kdumpkdump是在系统崩溃、死锁、或者死机的时候用来转储内存为vmcore保存到磁盘的一个工具和服务 相关配置12345678910111213CONFIG_KEXEC=yCONFIG_KEXEC_FILE=y //两者选其一,或者都选也可以,对应两个版本的kexec接口CONFIG_CRASH_DUMP=y //内核支持系统崩溃转储功能,即能够生成 vmcore 文件以便进行故障诊 2024-05-10 debug #debug
perf Perf工具编译安装下载download: https://cdn.kernel.org/pub/linux/kernel/tools/perf/ 先下载对应内核版本的perf源码 编译安装1234567tar -xvf perf-5.10.0.tar.gz cd perf-5.10.0cd tools/perf/makesudo cp perf /usr/local/bin/usr/loc 2024-05-10 debug #debug