首页 > 技术知识 > 正文

1. 前言

由于全志平台的电源管理模块功能比较强大,驱动也比较复杂,调试起来比较费劲; 另外还有CPU和系统一些常用的调试命令; 这里主要总结一些平时用的比较多的调试方法

2. /sys/class/axppower 调试目录

(1) /sys/class/axppower/axpdebug

echo 1 > /sys/class/axppower/axpdebug //打开电池管理部分debug信息 echo 2 > /sys/class/axppower/axpdebug //打开regulator部分debug信息 echo 4 > /sys/class/axppower/axpdebug //打开中断部分debug信息 echo 8 > /sys/class/axppower/axpdebug //打开充电部分debug信息 echo 0 > /sys/class/axppower/axpdebug //关闭debug信息

(2) /sys/class/axppower/regdebug

// 追踪axp寄存器是否被读写 例如: echo 5c > /sys/class/axppower/regdebug

(3) /sys/class/axppower/longkeypoweroff

// 打开关闭 power on reset 功能 echo 1 > /sys/class/axppower/longkeypoweroff // 打开 echo 0 > /sys/class/axppower/longkeypoweroff // 关闭

(4) /sys/class/axppower/out_factory_mode 不知道什么用 (5) /sys/class/axppower/vbuslimit // 提供usb充电关闭限流 max_A = 2500mA

echo 0 > /sys/class/axppower/vbuslimit // 关闭usb充电限流 max_A = 2500mA echo 1 > /sys/class/axppower/vbuslimit // 打开usb充电限流 3. /sys/bus/platform/devices/axp81x_board/

(1)axp-regulator.x 文件节点

(2)axp81x-supplyer.x 文件节点

(3) axp81x_reg 读写单个寄存器的调试节点

读寄存器的方法: 写: echo 寄存器地址 > axp81x_reg 读: cat axp81x_reg 写单个寄存器的方法: 写: echo 寄存器地址+值 > axp81x_reg (寄存器地址+值:16进制,例如向0x0寄存器写入0x11,则echo 011 > axp81x_reg) 读: cat axp81x_reg

(4) axp81x_regs 读多个寄存器的调试节点

读寄存器的方法: 写: echo 寄存器地址 个数 > axp81x_regs 读: cat axp81x_regs 写多个寄存器的方法: (最多才两个寄存器,还是连续的递增) 写: echo 寄存器地址1+值1+值2 > axp81x_regs (值2: 向寄存器地址1+1写入值2) 读: cat axp81x_regs 4. /sys/bus/platform/devices/reg-81x-cs-xxxx

(这些节点存在目的是为了方便调试)

例如: /sys/bus/platform/devices/reg-81x-cs-dcdc4/ — max_microamps // 设置电流最大值,只是和dcdc4 max value对比一下,用做检测作用 –min_microamps // 设置电流最小值,只要写入新的值,实质电流 = min_microamps echo 电流(毫安) > /sys/bus/platform/devices/reg-81x-cs-dcdc4/min_microamps // 生效的前提是min_microamps < max_microamps –max_microvolts // 电压和电流同理 –min_microvolts // 电压和电流同理 echo 电压(毫伏) > /sys/bus/platform/devices/reg-81x-cs-dcdc4/min_microvolts 5. Cpu最小频点锁定配置

分别为800Mhz、1080Mhz和1200Mhz

echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq echo 1080000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 6. Cpu 关闭开关核策略、 锁定当前online数目

分别为锁定2核、3核和4核在线

echo 0 > /sys/kernel/autohotplug/enable echo 2 > /sys/kernel/autohotplug/lock echo 3 > /sys/kernel/autohotplug/lock echo 4 > /sys/kernel/autohotplug/lock 或者 echo 1 > /sys/kernel/autohotplug/boost_all 7. 恢复动态开关核 echo 1 > /sys/kernel/autohotplug/enable echo 0 > /sys/kernel/autohotplug/lock echo 0 > /sys/kernel/autohotplug/boost_all 8. 温度相关的节点 sys/devices/virtual/thermal/thermal_zone/mode enabled 打开 和 disabled 关闭温控 echo disabled > /sys/devices/virtual/thermal/thermal_zone0/mode /sys/devices/virtual/thermal/thermal_zone/temp 温度数据 ./sys/class/thermal 和 sys/devices/virtual/thermal是一样的 ./sys/kernel/debug/tracing/events/thermal 9. 查看内存大小 cma: cat /sys/kernel/debug/ion/cma carveout: cat /sys/kernel/debug/ion/carveout cat /proc/sunxi_ion GPU内存: cat /sys/kernel/debug/mali/memory_usage 10. 刷cache方法 刷free pagecache echo 1> /proc/sys/vm/drop_caches 刷free pagecache, dentries and inodes echo 3> /proc/sys/vm/drop_caches 11.循环打印shell命令 adb shell “while true;do dumpsys meminfo com.android.systemui;sleep 1; echo ======================================================= ;done” adb shell “while true;do cat /sys/class/thermal/thermal_zone0/temp ;sleep 1;done” adb shell “while true;do cat /sys/kernel/debug/ion/cma;sleep 1;done” echo 1 > /sys/kernel/debug/tracing/events/kmem/enable echo 1 > /sys/kernel/debug/tracing/events/vmscan/enable echo > /sys/kernel/debug/tracing/trace cat /sys/kernel/debug/tracing/trace > /data/trace.log

猜你喜欢