工作点滴记录

1.解压
tar -xjvf sox-14.4.2.tar.bz2

先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包 
2.压缩
tar -cjf all.tar.bz2 *.jpg

tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar

3.subcore log生成地址
subcore/build/tcc8050-sub/tmp/log

4.三方工具是在source_mirror 目录
checksum是在.bb文件下 poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.1.bb

5.加入编译项
meta-telechips/meta-subcore/template/tcc805x/local.conf.sample    修改该文件,local.conf 就会有install选项

./meta-telechips/meta-subcore/template/tcc803x/local.conf.sample
 
6.kernel dts status = "disabled"; 
status:okay表示设备正常运行;disabled设备不可操作,但是后面可能恢复工做;fail发生了严重错误;fail-sss发生了严重错误,sss表示错误信息

7. 查看当前系统的声卡
cat /proc/asound/cards
/proc/asound/Card # cat pcm0p/sub0/status   可以查看每个音轨的状态

8.数字音量增益   Gains.cpp
DbToAmpl():db转换成振幅
stream Volume流音量
整个流程即是数字音量增益调节的流程,纯数字实现,与底层音频codec无关
DbToAmpl  的值最终设置到
AudioFlinger::PlaybackThread::mixer_state AudioFlinger::MixerThread::prepareTracks_l(){
    mAudioMixer->setParameter(name, param, AudioMixer::VOLUME1, (void *)vr);
}

VolumeCurve::volIndexToDb
-->
audioMixer章节里面,
我们介绍过在audioMixer的实际操作函数是track__16BitsStereo这种函数,
对track__16BitsStereo的分析中,我们可以看到根据音量对PCM data进行实际的缩放
不再继续赘述了。


9.killall AVM


10.git push origin HEAD:refs/for/FX12_TDM
git push origin HEAD:refs/for/FX12_HiCar_Cert

11.编译仪表中间件
make distclean
source  ../../toolchain/environment-setup-aarch64-telechips-linux
sh -x ./build.sh 2


12.subcore 缺少libff.so
libffi.so.7()(64bit)加到如下配置
RPROVIDES_${PN} +="libglib-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libffi.so.7()(64bit)


13. mid_ware 打log
char sinfo[128];
    sprintf(sinfo, "--wucai option=%d, level=%d \n", option, level);
    printf(sinfo);

    MID_WARE_ERR(AUDIO_RESOLUTION, sinfo);
    日志在/tmp/mi**.log
    
14. 关掉腾讯语音识别
adb shell am force-stop com.tencent.supercar    

15. gcc test.c -lm  -o test

16.carlife   设备节点   iphone
/dev/bus/usb/006/001
echo 0 > /sys/devices/platform/11da0100.dwc_otg_phy/mcu_switch
echo 1 > /sys/devices/platform/11da0100.dwc_otg_phy/mcu_switch
cat /sys/devices/platform/11da0100.dwc_otg_phy/mcu_switch

17.循环播放
for i in `seq 3`;do aplay 05_Safety_Belt_W_1HZ.wav;done
18. usb native_bulk_request
./base/core/jni/android_hardware_UsbDeviceConnection.cpp
echo 1 > /sys/module/usbcore/parameters/usbfs_snoop   开启日志
echo 0 > /sys/module/usbcore/parameters/usbfs_snoop
echo test_j > testmode
echo test_k > testmode
echo test_se0_nak > testmode
echo test_packet > testmode
echo test_force_enable > testmode
echo 0 > /sys/devices/platform/11da0100.dwc_otg_phy/mcu_switch
echo test_packet > /sys/kernel/debug/usb/ehci/ehci-mux.0/testmode
USB20H_PCFG1 = 0xE31C2433 

cat dwc_host_mux_pcfg1                                                         <
U20DH_HST_PCFG1 = 0xE31C2432
/sys/devices/platform/11980000.dwc_otg
echo 0xE31C2433 > dwc_host_mux_pcfg1

19.线下设置
am start -n com.igentai.autoengineeringmode/.ui.MainActivity
把外置功放设置成关
再回到系统设置
input keyevent 4

20. ps -ef
ps -T -p <process_id>
  查看指定进程中已经起的线程

  -T 查看线程

  -p 指定进程ID

  示例:ps -T -p 85371


######## kernel log level
echo 8 > /proc/sys/kernel/printk
echo "file drivers/usb/core/*.c +p" > /sys/kernel/debug/dynamic_debug/control
echo "file drivers/usb/gadget/function/*.c +p" > /sys/kernel/debug/dynamic_debug/control
echo "file drivers/usb/gadget/*.c +p" > /sys/kernel/debug/dynamic_debug/control
echo "file drivers/usb/dwc2/*.c +p" > /sys/kernel/debug/dynamic_debug/control

########
把IGN线给断开,就是D2
把ACC和IGN线断开,就是D3

#######
李远芳 11-9 14:06:26
01是麦克风

李远芳 11-9 14:06:35
345是参考信号

李远芳 11-9 14:07:17
播放媒体和报警通道参考通道 34 有信号,播放导航是345都有信号
fm_fm1388

#######
/sys/class/gpio/export
echo  214  > /sys/class/gpio/export
cd gpio214
echo out > direction 
echo 0 > value

####### 解析xlog
sudo apt-get install python-pip
pip install zstandard

#######  将dma interrupt换到其它cpu
echo 2 > /proc/irq/134/smp_affinity


#######
adb logcat -v threadtime > D:\logcat.txt

################
if [ $? -ne 0 ]
then
echo "---------make kernel error!---------"
exit 1
fi

cd ..
rm  -rf $ANDROID_PRODUCT_OUT/system
make   -j32

if [ $? -ne 0 ]
then
echo "---------make system error!---------"
exit 1
fi


######有线 dhcp超时
D nearby  : UsbNcmChannel:NcmLoadedState-CMD_DHCP_TIMEOUT

####投屏成功
[HiCarApp] HiCarBaseActivity$1:  (HiCarBaseActivity.java:88)  onDeviceServiceChange onDeviceChange display1 event:207

#####代码路径
frameworks/opt/net/wifi/service/java/com/android/server/wifi

#####蓝牙状态
CallbackDoCallbackBluetooth 300=off  301=turn_on 302=on 303=turn_off

logcat -G 256M 
logcat -v threadtime > /data/logcat.txt&

setprop persist.vendor.hicarsdk.debug 1 //打开hicar调试日志

#########
pm list package
adb shell dumpsys package XXX                               查看某个包的具体信息(前提是需要知道包名是什么)      appActivity

##########
 ip route show
 

###### cpu id 
cat /sys/devices/platform/14200290.cpu-id/chip_id 

####### monkey 压测
monkey --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes -s 10 --throttle 500 --pct-touch 30 --pct-motion 20 --pct-nav 20 --pct-majornav 20 --pct-syskeys 0 --pct-appswitch 0 --pct-anyevent 5 --ignore-crashes -v -v -v 2000000
adb shell monkey -p com.semisky.autolauncher -p com.igentai.autoairconditioner -p com.igentai.autoengineeringmode -p com.cowin.autoenergy -p com.igentai.autonewenergy -s 100 --throttle 1000 --pct-touch 55 --pct-motion 25 --pct-appswitch 10 --pct-anyevent 10 -v -v -v 9999999 --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes
adb shell monkey -p com.android.launcher3 -s 100 --throttle 1000 --pct-touch 55 --pct-motion 25 --pct-appswitch 10 --pct-anyevent 10 -v -v -v 9999999 --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes
adb shell monkey -p com.semisky.autolauncher -s 100 --throttle 1000 --pct-touch 55 --pct-motion 25 --pct-appswitch 10 --pct-anyevent 10 -v -v -v 9999999 --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes
####### 循环点击某位置
for i in `seq 100`;do input tap 1086 344;sleep 3s;done
for i in `seq 100`;do sleep 2s;ifconfig wlan0 down;sleep 2s;ifconfig wlan0 up;done
for i in `seq 1000`;do input tap 295 235;sleep 0.3s;done
for i in `seq 5000`;do input tap 1101 245;sleep 5s;done
for i in `seq 100`;do echo 0 > pwrtest;sleep 3s;echo 1 > pwrtest;done

for i in `seq 1000`;do echo $i;input tap 15 1051;sleep 3s;input tap 1503 547;sleep 5s;done
for i in `seq 1000`;do echo $i;input tap 15 1051;sleep 3s;input tap 1503 547;sleep 6s;input tap 1045 1035;sleep 3s;done
for i in `seq 100`;do date;sleep 2s;done
for i in `seq 100`;do logcat -g;done

i=1; 
while [ $(($i)) -le 10 ]; 
do i=$(($i + 1)); 
echo $i; 
echo 0 > pwrtest;
sleep 5;
echo 1 > pwrtest;
done;


i=15; 
while [ $(($i)) -le 255 ]; 
do i=$(($i + 1)); 
echo $i > brightness; 
sleep 0.2;
done;


i=0; 
while [ $(($i)) -le 1000 ]; 
do i=$(($i + 1)); 
rm -rf /mnt/media_rw/udisk0/tmp;
mkdir  /mnt/media_rw/udisk0/tmp;
cp -r /system/app/kwplay.apk /mnt/media_rw/udisk0/tmp;
echo "~~$i" > /mnt/media_rw/udisk0/tmp/test.txt;
cat /mnt/media_rw/udisk0/tmp/test.txt;
sleep 0.1;
done;

i=0; 
while [ $(($i)) -le 100 ]; 
do i=$(($i + 1)); 
rmmod himax_mmi;
insmod /system/lib/modules/himax_mmi.ko
sleep 3;
done;

i=0; 
while [ $(($i)) -le 100 ]; 
do i=$(($i + 1)); 
input tap 324 196;
echo "$i exit hicar"
sleep 2;
input tap 234 227;
echo "$i enter hicar"
sleep 5;
done;

cat /proc/net/rtl8821cs/wlan0/btcoex >> /data/bwcotex.log;

while true; do
echo ">>>>>>>>>>>>>>>>>>>>>"
 filename=`date +"%Y-%m-%d-%H-%M-%S"`;
 echo $filename;
 logcat -G 1M;
 logcat -D -f $filename.log
 logcat -c; 
 date +"%Y-%m-%d-%H-%M-%S";
echo "<<<<<<<<<<<<<<<<<<<<<"
done;
###########发送文本内容,不能发送中文
adb shell input text test123456

while true; do
echo "--"
logcat -c;
sleep 1s;
done;


i=1; 
while [ $(($i)) -le 1000000 ]; 
do j=$(($i * 3)); 
echo $j; 
i=$i+1;
echo 0 >> /sdcard/pwrtest;
cat /sys/class/thermal/thermal_zone0/temp
done;


#######发送文本内容,不能发送中文
adb shell input keyevent KEYCODE_HOME

########发送按键事件,KeyEvent.java
--模拟按下 Home 键 ,源码里面有定义:
--public static final int KEYCODE_HOME = 3;

######## 滑动
adb shell input swipe 900 500 100 500


######## am start com.android.settings/.Settings
 am start -n com.android.settings/com.android.settings.SubSettings -e :android:show_fragment com.android.settings.DevelopmentSettings


######## 禅道问题 id 44559
fsck.exfat block住了,出问题时,check ok和check failed都没打印出来
status_t Check(const std::string& source) {
    std::vector<std::string> cmd;
    cmd.push_back(kFsckPath);
    cmd.push_back(source);

    int rc = ForkExecvp(cmd, nullptr, sFsckUntrustedContext);
    if (rc == 0) {
        LOG(INFO) << "Check OK";
        return 0;
    } else {
        LOG(ERROR) << "Check failed (code " << rc << ")";
        errno = EIO;
        return -1;
    }
}
fsck.exfat的代码目录
external/exfatprogs/fsck
device/telechips/common/ufsd/arm64/utils/v4_14  只有ntfs相关


######## hicar pin码问题
12月31的版本,蓝牙服务没有间隔13s,应该会有时拿到mac,有时拿不到
1月4日   0563的版本 蓝牙服务没有间隔13s,应该会有时拿到mac,有时拿不到,第一次拿到了mac地址,但是也需要输入pin码,可能是蓝牙没有配对造成的
0564   拿到mac也是正常的


######## 打印log
logcat -v threadtime > /data/`date +"%Y-%m-%d-%H-%M-%S-%3N"`.log & \r\n


####### 设置时间
date 021118052023.22 set

#######对比两个分支某文件的差异
git diff Android_h12_v21p_f_240x320_T5 Android_h12_v21p_f_240x320_T5_new device/


#####flash 读写速度
dd if=/storage/emulated/0/ddDog/testspeed of=/dev/null bs=209715200   //read
dd if=/dev/zero of=/storage/emulated/0/ddDog/testspeed  bs=209715200 count=1 //write
busybox dd if=/data/testspeed of=/dev/null bs=209715200
busybox dd if=/dev/zero of=/data/testspeed  bs=209715200 count=1


#####autolinux -c configure    3 5 6 7

###### autosetting 编译不过
C:\Program Files\Java\jdk1.8.0_311

######
am force-stop com.huawei.dmsdpdevice

####### hicar 华为社区
https://uniportal.huawei.com/uniportal/?redirect=https://workplace.cbgcpm.huawei.com/#/group/smart-selection/Issue_Collaboration_Issue_Details?problemNo=CPM20221206023757
账号 fumeitao.jintu.hicar 密码 1234.semisky


################
U38
IP:192.168.1.38
平台:i.max6 android4.4.2
Linux账号及samba账号统一为:
用户:shanaibing
密码:1234.igentai


################ notepd 与的搜索方式
AA 55 .* 02 01 .*|AA 55 .* 08 01 .*

##########  nxp官网
https://www.nxp.com
zhanghui@igentai.com
1234@SEMISKY


####### hh11
1.方控键vol-   mode   语音同时按
2.上电
3.串口输入download_mode
4.烧录工具   把编译生成的img放到工具所在目录 Profiles\MX6DL Linux Update\OS Firmware\files\android
5.start


#######  gpio debug
CONFIG_GPIO_SYSFS=y    打开这个宏可以看到/sys/class/gpio/
CONFIG_DEBUG_FS=y      sys/kernel/debug/gpio    gpio_request  的申请可以看到

####### 串口写数据
echo -e "AT+BTEN=1\r\n" > /dev/bw_serial 


######## hh11  切换adb
echo 1 > /proc/driver/usbroleswitch/0/mode
setprop sys.usb.config adb

######## H11 飞易通 bw121eb
1脚是2.4wifi
position 2 是2.4G BT + 5G wifi
 ----------------
| O position 2   |
|                |
| o 1脚          |
|                |
|                |
|                |
 ----------------
 
 
 
######### PADS
z6 7   看第6层和第7层
po   去掉或者铺上地线
工具->覆铜管理器->灌注    铺上铜皮


######## uart dce mode   dte mode
IMX6ULL UART DCE模式,主要TX用于发送,RX用于接收
IMX6ULL UART DCE模式,主要TX用于接收,RX用于发送


####### 120 服务器
xieyonghui
1234.semisky


####### 
192.168.1.102
账号 zhoupeng 密码 a123456
frameworks/base/core/carlife_proto_2.6

#######
./camera_app_960  --videoinput=6 --preview_method=0 --foreground_ovp=16 --background_ovp=28 --switch=0 --recovery=0  --preview_width=1280 --preview_height=720

######  A53 uboot 抓日志的ram地址
ctrl + y 进uboot
grep __log_buf work/tcc8050_sub-telechips-linux/linux-telechips/4.14.232-r0/linux-telechips-4.14.232/System.map
7F C800 0000   // 差值
md 0x40c74750    ffffff8008c74750
ffffff8008b4c750 md 0x40b4c750
ffffff8008c4d750 b __log_buf md 0x40c4d750
A53的起始地址是40000000

######## A72 uboot 抓日志的ram地址
7F E800 0000 // 差值   ffffff8009521c74 b __log_buf
md 0x21521c74
A72 kernel起始地址是2000000

###### 飞易通   bw105 编译
make clean && make CLANG_TRIPLE=aarch64-linux-gnu- CC=/home/shanaibing/work/tdm/Telechips_TCC8050_v3.0/maincore/prebuilts/clang/host/linux-x86/clang-r353983c/bin/clang -j16 2>&1 |tee build.log


###### tcc8050   gpio 值
tcc8050_53-pinctrl.dtsi
gpio0 = &gpa;
                gpio32 = &gpb;
                gpio61 = &gpc;
                gpio91 = &gpe;
                gpio111 = &gpg;
                gpio122 = &gph;
                gpio134 = &gpk;
                gpio153 = &gpma;
                gpio183 = &gpmb;
                gpio215 = &gpmc;
                gpio245 = &gpmd;
                gpio263 = &gpsd0;
                gpio278 = &gpsd1;
                gpio289 = &gpsd2;

####### lspci 命令 设备为空
&pcie {
       wl_en-gpio = <&gpmd 10 0>;
       ep_pwr-gpio = <&gpmd 11 0>;
        reset-gpio = <&gpa 11 0>;   //查看reset是否配置正确
       //status = "okay";
       status = "okay";
};

########  mount a53
mount -o rw,remount /
 free -h -s 1 一秒打印一次
 
 
 ####### A53 mount
 mount /dev/mmcblk0p11 /mnt
 
 ###a72 mount
 mount -o remount,rw /system
 
 #####   每10s打印一次
 free -m -s 10
 
 
 
 
 #######
 killall  -9 DMS
 
 
 ######## show 某进程的线程 资源占用情况
 top -H -p 478
 
 
 
 ########
 i2cdetect -l
 i2cdetect -y -r 6
 i2ctransfer -f -y 2 w2@0x47 0x00 0x00 r32
 i2cdump -f -y 2 0x47
 
 
 ########cat /proc/clocks
 
 
 ####### open  /dev/videox 的调用流程
    dump_backtrace+0x0/0x1a0
    show_stack+0x14/0x20
    dump_stack+0xa0/0xc0
    tccvin_fop_open+0x2c/0xc8
    v4l2_open+0xe4/0x178
    chrdev_open+0xa4/0x198
    do_dentry_open.isra.0+0x118/0x328
    vfs_open+0x44/0x78
    path_openat+0x350/0x10d8
    do_filp_open+0x78/0xf8
    do_sys_open+0x168/0x260
    SyS_openat+0x10/0x18
    el0_svc_naked+0x34/0x38

##### chatgpt
https://chat.wuguokai.cn/s/chatgpt#/chat/1688526792152    

##### 工厂模式密码
4S店:Cowin--2022
工厂:Intreteck--2022
开发:Igentai.123RD

########
执行dlsym()函数出现: undefined symbol
当这个问题出现的时候,可以检查产生so文件的cpp文件,看看是否已经用 extern C{ /* code here */} 把C++的函数包裹起来。

######## nm -Do system/lib/libdabplug.so    查看符号表


####### fx11 升级
这个里面包含了img 烧录包和U盘升级包,解压后得到update.zip升级包
U盘升级操作步骤:
1. 在u盘根目录下创建一个update目录,把升级包update.zip放入
2. 然后创建一个update_note.txt文件,里面设置android版本(ANDROID_VERSION=00.01.33),只要和设备上的版本不同就可以
3. 把u盘插入到设备,会弹出升级提示,点击升级

####### system/init/core/   下的代码log打印在kernellog中,打印之前要设置log level
klog_set_level(6);


am start -n com.sw.radioclient/.MainActivity
 tinycap /sdcard/dab.wav -D 4 -d 0 -c 2  -r 48000
 
 
 
###### alogv  打印log
#undef LOG_TAG
#define LOG_TAG "AutoServiceNative"
#define LOG_NDEBUG 0 


###### kernel 比较   过滤生成的文件
*.o
*.cmd
*.old
image
uimage
zimage
*.lzo
*.s
*.builtin
*.gz


####### dmesg 打印时间
dmesg -T 如果不打印时间,有两种方法可以实现

1.echo Y >/sys/module/printk/parameters/time
2.CONFIG_PRINTK_TIME=y

######  addr2line
./prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-addr2line -f -e kernel_imx/vmlinux c0040028

###### bootchart
tar -czf bootchart.tgz *
scp bootchart.tgz zhangbaixiang@192.168.1.60:/home/zhangbaixiang/projects/tmp/

########## bootanim 结束的流程  property_set("service.bootanim.exit", "1");
Launcher启动,注册一个Idler空闲处理器到ActivityThread中;
Launcher主线程空闲的时候就会调用Idler。queueIdle()方法;
Idler.queueIdle() 通过Binder通信调用了ActivityManagerService.activityIdle()方法
调用ActivityStackSupervisor.activityIdleInternalLocked()方法;
调用ActivityManagerService.enableScreenAfterBoot()方法;
调用WindowManagerService.enableScreenAfterBoot()方法;
调用WindowManagerService.performEnableScreen()方法;
performEnableScreen 通过Binder通信发送 BOOT_FINISHED 消息给 ISurfaceComposer
调用ISurfaceComposer 收到 BOOT_FINISHED 消息后调用SurfaceFlinger::bootFinished 函数设置动画结束标志。

am start -n com.semisky.test/.MainActivity
am start -n com.autoai.m01cbu.dab/com.autoai.m01cbu.dab.DABActivity
logcat -v time |busybox tee /sdcard/nopull.log |grep -Ei "perip|SPI|DABAPP"

#######查看cpu负载
cat /proc/loadavg
5.19 5.14 4.51 1/462 1547
前三个数分别是 1分钟、5分钟、15分钟的平均进程数。第四个的分子是正在运行的进程数,分母是进程总数;最后一个是最近运行的进程ID号。

busybox uptime
命令查看平均负载

08:24:29 //当前时间
up 19:34 //运行时间
0 users //当前的用户数量
load average: 6.00, 6.00, 6.00 //分别是 1分钟、5分钟、15分钟的平均进程数
17:45:38 up  1:46,  0 users,  load average: 5.15, 5.12, 4.55


####### 打开触摸报点
adb shell settings put system show_touches 1   触摸
adb shell settings put system pointer_location 1    xy轴

####### 模拟导航工具
1、手机端打开开发者模式-》打开USB调试-》手机与电脑通过数据线连接上选择传输文件
2、adb install D:\Desktop\模拟导航工具\NaviTracker-8.0.apk          下载apk到手机
3、adb push "D:\Desktop\模拟导航工具\NaviTracker" "/storage/emulated/0/NaviTracker"       push txt文件到手机目录
4、push完成后关掉手机usb调试开关


#########
FX11系统
系统版本——》系统软件版本号——》连续点击5次——》输入密码
输入密码
1. 1234.cowin  ——  原生系统设置
2. dev.cowin   ——  开发者选项设置
3. tool.cowin  ——  日志工具    这个给他们改成1111
4. usb.cowin  ——  USB模式切换
5. test.cowin  ——  工厂测试工具
5. auto.cowin  ——  工厂自动化测试工具 


########  AT+PROFILE=1160
AT+PROFILE=1184   //关闭HFP
AT+PROFILE=1160   //关闭A2DP
AT+PROFILE=1132   //AVRCP
AT+HFPCONN
AT+A2DPCONN
echo -e "AT+PROFILE=1160\r\n" > /dev/bw_serial
echo -e "AT+A2DPCONN\r\n" > /dev/bw_serial
DC0D30328FFB

######### carlife 手机日志 的关键字
MSG_CMD_HU_INFO
MSG_CMD_VIDEO_ENCODER_INIT_DONE   连接成功
send video data   投屏
CarlifeActivity DISCONNECT   断开

label: 用户单次联机使用时长 
duration: 81429 ms


#########  notepad 替换
^.*time=    time=字符之前的全部替换


########### hh11电源模式
1 工作状态
2 10分钟
3 待机
4 休眠


########### 虚拟机重启
AndroidRuntime: Shutting down VM

######### 发送mode、vr按键消息
dumpsys KeyService mode
dumpsys KeyService vr


######## 蓝牙电话没声音
other input already started


######## vpu 打印日志
echo 10497 > /sys/module/vpu/parameters/debug_mask   日志级别
echo 1 > /sys/module/vpu/parameters/use_prtk  日志打开/关闭

####### patch -p0 < omx.patch

########isMonotonic   
CLOCK_MONOTONIC是monotonic time,而CLOCK_REALTIME是wall time。
monotonic time字面意思是单调时间,实际上它指的是系统启动以后流逝的时间,这是由变量jiffies来记录的。系统每次启动时jiffies初始化为0,每来一个timer interrupt,jiffies加1,也就是说它代表系统启动后流逝的tick数。jiffies一定是单调递增的,因为时间不够逆嘛!
wall time字面意思是挂钟时间,实际上就是指的是现实的时间,这是由变量xtime来记录的。系统每次启动时将CMOS上的RTC时间读入xtime,这个值是"自1970-01-01起经历的秒数、本秒中经历的纳秒数",每来一个timer interrupt,也需要去更新xtime。

######## echo c > /proc/sysrq-trigger 手动panic


######## fx12 fastboot flash 方法
1.断电;(必须是断电开机,否则识别不到usb)
2.开机;
3.reboot bootloader
4.插usb线
5.fastboot devices看下是否有设备
6.fastboot flash boot ??\boot.img &&  fastboot flash dtb ??\dtb.img && fastboot flash dtbo ??\dtbo.img &&  fastboot flash vbmeta ??\vbmeta.img


####### last_kmsg
/sys/fs/pstore


##### drm & fb
a72 用drm,drm更复杂
a53 用fb
两个互斥 

###### uuid
cat /resources/produceMode.json
UUID:7913012P23000086
序列号:QGYZV5SPVTM5FR7EW9QHJJDA
激活码:YR9X5QN6WRVE3MHSSG2D5WSW


####### 隐藏pki证书下载失败的悬浮框
adb uninstall --user 0 com.cowin.messagecenter


####### 日志上传
https://uat-inc-center.kayyi.com/app-tsp/log/fx12PhevLog
test
123456Ab*


###### uboot 下列出分区名
mmc part
Part    Start LBA    End LBA        Name
    Attributes
    Type GUID
    Partition GUID
  1    0x00000022    0x00001021    "bl3_ca72_a"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    c200bac1-c64a-0649-aa2d-c45db1c63ed1
  2    0x00001022    0x00002021    "bl3_ca72_b"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    80826341-8b26-4843-8ef5-40fa6b589fa5
  3    0x00002022    0x00003021    "bl3_ca53_a"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    c7973fe0-3833-3d41-9e6f-8401aaa4940c
  4    0x00003022    0x00004021    "bl3_ca53_b"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    e3b6ecb0-1181-0144-9f77-bd7627e0da4f
  5    0x00004022    0x00013021    "secure"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    e2ec4597-6914-144d-b29b-f5c4fef9c328
  6    0x00013022    0x00025021    "boot_a"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    20cb5e8c-287a-8742-b42a-1c30a690d1bc
  7    0x00025022    0x00037021    "boot_b"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    1e055df3-79e6-f043-b8f4-fb6fc91eeb91
  8    0x00037022    0x0123b021    "super"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    65fb95b2-d875-894a-a9c1-403710088bae
  9    0x0123b022    0x0123f021    "dtbo_a"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    4bb937ce-9dfb-ef48-beea-377d4c77b345
 10    0x0123f022    0x01243021    "dtbo_b"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    1d150900-9789-ce4c-a5f0-af30097ea27e
 11    0x01243022    0x0128e021    "cache"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    ae3a0d28-19fa-934c-bb76-61a2890c3d60
 12    0x0128e022    0x0128f021    "dtb_a"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    d438ae39-3b61-8542-b4fd-e3d634f4a228
 13    0x0128f022    0x01290021    "dtb_b"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    1db4f0c3-df25-9043-8cc4-2fb0ecbc24a8
 14    0x01290022    0x01290821    "env"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    68868384-b811-a840-9271-3d86b6486785
 15    0x01290822    0x01293021    "splash"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    a0f5ed9f-b0e0-9642-9e2e-47caaa0a8a4d
 16    0x01293022    0x01293821    "misc"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    c6c170ef-d4cd-4f4d-97b7-d9c2e242f89b
 17    0x01293822    0x01294021    "subcore_misc"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    efd10b93-290a-e844-941d-081fa75d28f8
 18    0x01294022    0x01294821    "tcc"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    7719b843-162b-e74b-8128-cf819193ed48
 19    0x01294822    0x01298821    "sest"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    d42968a7-2e16-2d4b-a78b-a276bffd22d1
 20    0x01298822    0x012ac821    "subcore_boot_a"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    5045d773-ab07-0348-a0c1-9965b89e8370
 21    0x012ac822    0x012c0821    "subcore_boot_b"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    1de6dda6-faee-b546-b330-19d784a13af4
 22    0x012c0822    0x014b4821    "subcore_root_a"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    d7a06778-f9b3-6747-b50c-f5df6563dd13
 23    0x014b4822    0x016a8821    "subcore_root_b"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    d5f7a61e-aab6-e54b-bf29-d20976e4c3f0
 24    0x016a8822    0x016a9021    "subcore_dtb_a"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    f0c8bcd7-c9c6-1b42-9285-71ac8929ef40
 25    0x016a9022    0x016a9821    "subcore_dtb_b"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    73614c94-79cf-364d-9d0d-ad595615a408
 26    0x016a9822    0x016aa021    "vbmeta_a"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    0a6f2d14-2528-9e40-8cee-f99cc276b626
 27    0x016aa022    0x016aa821    "vbmeta_b"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    f44c535e-56a5-e446-96ab-2aa2e0f1ac19
 28    0x016aa822    0x016ae821    "tamper_evidence"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    0c0bba5a-c3c1-7346-ac0c-2a764bf396e6
 29    0x016ae822    0x016b6821    "metadata"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    14dcd2af-c3f5-104c-a86e-400c8df0dfd4
 30    0x016b6822    0x016b7021    "subcore_env"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    f8213fab-9355-8e4f-8449-0625bc97fc03
 31    0x016b7022    0x016cb021    "subcore_splash"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    1f9f834d-a2a6-e34f-b51d-ae4d6000bc8c
 32    0x016cb022    0x01ecb021    "resources"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    36cd81a6-61c0-2b4c-9e42-188b5f7e38d5
 33    0x01ecb022    0x01f61021    "a53_resources"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    058e4881-939f-e94a-923c-c576c05ac3de
 34    0x01f61022    0x02561021    "logdata"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    98a90bb2-61d9-084a-87d1-fc4f7318070a
 35    0x02561022    0x026bf021    "a53_logdata"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    906ec4bc-61de-d84a-8217-d63d74280adf
 36    0x026bf022    0x07733fde    "userdata"
    attrs:    0x0000000000000000
    type:    0fc63daf-8483-4772-8e79-3d69d8477de4
    guid:    25bfeba8-bd17-6646-a9f8-230a54c9ee26
    
    
    
######## dtb 反编译为dts
kernel/scripts/dtc$ ./dtc -I dtb -O dts ../../../kernel/arch/arm64/boot/dts/tcc/tcc8050-android-lpd4x322_sv1.0.dtb -o 1.dts    


######## cat /proc/pmap   查看pmap reserve
######## cat /proc/iomem  查看所有内存的分配区域
########CMA是什么
CMA 全称是 Contiguous Memory Allocator(连续内存分配器)。顾名思义它是一种内存分配器,提供了分配、释放物理连续内存的功能。

CMA通过reserve一块大块连续内存,当设备驱动不用时,内存管理系统将该区域用于分配和管理可移动类型页面;当设备驱动使用时,此时已经分配的页面需要进行迁移,又用于连续内存分配;


######## 统计pss
grep Pss /proc/[1-9]*/smaps | awk '{total+=$2}; END {print total}'
pss 是把共享的内存按权重分配到各进程所占用的内存
rss 是单个进程跑起来实际用的内存,包括共享库占用的内存
所以rss 要大于pss


######## pidof
1|console:/ # pidof com.igentai.usercenter                                     
4677

######## 抓 bugreport
adb方式     adb bugreport
console方式   bugreportz -p

######## bugreport 解析
java -jar chkbugreport.jar bugreport-h-MPU.02.01.08-2024-01-09-03-55-18.txt

########## meminfo 解释
Meminfo里面列出来很多项,只需要关注如下几条:

MemTotal: 总内存大小

MemFree: 可以直接使用的空闲的内存大小

MemAvailable: 可以使用的内存,包括MemFree和Cached/Buffers/Slab中可以回收的部分。

Buffers: 直接读写的块设备和文件系统元数据(如super block)所使用的内存。

Cached: 从磁盘读取的文件内容的缓存大小,另外也包含了Shmem内存页

Active(anon):匿名页内存,主要是用户模式下的堆、栈,以及shmem,最近访问过

Inactive(anon):匿名页内存,主要是用户模式下的堆、栈,以及shmem,最近没有访问过

Active(file):基于文件的内存页,包含cache和buffer,但是不包含Shmem内存页,最近访问过

Inactive(file): 基于文件的内存页,包含cache和buffer,但是不包含Shmem内存页,最近没有访问过

AnonPages:匿名页内存,但是不包括Shmem 。所以AnonPages大约等于Active(anon) + Inactive(anon) - Shmem

Mapped: 设备和文件等映射的大小,共享内存、可执行程序的文件、动态库、mmap的文件等都统计在这里

Slab: slab 分配器分配的内存,主要是内核中使用

SReclaimable:slab中可回收的内存。

SUnreclaim:slab中不可回收的内存。

如果机器在运行的过程中MemAvailable持续减小,就可以怀疑系统中存在内存泄漏。但是并不是MemAvailable减小就一定存在内存泄漏,还要进一步分析减少的内存被什么占用了。如果Active(anon)+Inactive(anon)所占用的内存增加,说明用户进程占用的内存增加。如果SUnreclaim所占用的内存增加,说明kernel占用的内存增加。知道了减少的内存是被用户进程还是kernel占用之后,要分析是哪个用户进程或内核哪部分占用了内存。


########## 编译userdebug版本
choosevariant 1 user 2 userdebug 3 eng

######### gpu 占用率
 cat /sys/kernel/debug/pvr/status


######### gpu debug
cat /sys/kernel/debug/pvr/debug_dump
cat /sys/kernel/debug/pvr/firmware_trace


######### 释放缓存
echo 1 > /proc/sys/vm/drop_caches

######### 内存压力测试
./QMESA_64st -startSize 8MB –endSize 8MB -totalSize 16MB -errorCheck T -secs 300 -numThreads 4 -M 512M -W >&1 > /data/local/tmp/qmlog1.txt 

./stressapptest -M 512m -s 60 -W


#######ddms
C:\Users\shanaibing\AppData\Local\Android\Sdk\tools


####### adb remount
$ adb root
$ adb disable-verity
$ adb reboot
$ adb wait-for-device
$ adb root
$ adb remount

####### dram 修改方法

修改后,执行下面脚本,生成新的bin文件
speed=3200  #主频改成1600
dram_param.py

生成目录 maincore/bootable/bootloader/u-boot/boot-firmware/prebuilt/dram_params.bin


####### hprof
"am dumpheap 1123 /data/local/tmp/myleakcanaryheapdump.hprof

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/766167.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

llama-factory训练RLHF-PPO模型

理论上RLHF&#xff08;强化学习&#xff09;效果比sft好&#xff0c;也更难训练。ppo有采用阶段,步骤比较多,训练速度很慢. 记录下工作中使用llama-factory调试rlhf-ppo算法流程及参数配置,希望对大家有所帮助. llama-factory版本: 0.8.2 一 rlhf流程 ppo训练流程图如下, 会…

【Linux】—Xshell、Xftp安装

文章目录 前言一、下载Xshell、Xftp二、安装Xshell三、使用XShell连接Linux服务器四、修改windows的主机映射文件&#xff08;hosts文件&#xff09;五、远程连接hadoop102/hadoop103/hadoop104服务器六、安装Xftp 前言 XShell远程管理工具&#xff0c;可以在Windows界面下来访…

Springboot整合RedisTemplate以及业务工具类示例

docker安装Redis参考我另一篇博客Docker安装Redis及持久化 一、Get-Started 依赖 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <dependency><groupId>org.springframework.boot</groupId>…

Java_多线程:线程池

1、线程池优点&#xff1a; 降低资源消耗&#xff1a;通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度&#xff1a;当任务到达时&#xff0c;任务可以不需要等到线程创建就能立即执行。提高线程的可管理性&#xff1a;线程是稀缺资源&#xff0c;如果无限…

Django 多对多关系

多对多关系作用 Django 中&#xff0c;多对多关系模型的作用主要是为了表示两个模型之间的多对多关系。具体来说&#xff0c;多对多关系允许一个模型的实例与另一个模型的多个实例相关联&#xff0c;反之亦然。这在很多实际应用场景中非常有用&#xff0c;比如&#xff1a; 博…

因版本冲突导致logback的debug日志不打印

因框架调整&#xff0c;降级了logback的版本号&#xff0c;由1.3.12降级为1.2.11&#xff08;因框架限制&#xff0c;只能采用1.2版本&#xff09;&#xff0c;降级后发现debug日志无法打印出来&#xff0c;logback.xml配置文件不生效。后排查发现是与slf4j的版本兼容问题 依赖…

搜维尔科技:数据手套为什么要选择SenseGlove

了解 SenseGlove SenseGlove 是一支由电子工程师、触觉研究人员和计算机视觉专家、XR 开发人员、UX 设计师和产品创新者组成的科幻爱好者团队&#xff0c;他们拥有丰富人类能力和赋予 Metaverse 意义的技能和热情。 推进触觉技术是我们实现这一目标的方式。 公司及产品背景 S…

基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建Kafka大数据运算环境---任务12:安装Kafka

任务描述 任务内容为安装和配置Kafka集群。 任务指导 Kafka是大数据生态圈中常用的消息队列框架 具体安装步骤如下&#xff1a; 1. 解压缩Kafka的压缩包 2. 配置Kafka的环境变量 3. 修改Kafka的配置文件&#xff0c;Kafka的配置文件存放在Kafka安装目录下的config中 4. 验证…

【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化及多领域案例应用

随着航空、航天、近地空间遥感平台的持续发展&#xff0c;遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升&#xff0c;呈现出大数据特征。这为相关研究带来了新机遇&#xff0c;但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域…

JDK动态代理-AOP编程

AOPTest.java&#xff0c;相当于main函数&#xff0c;经过代理工厂出来的Hello类对象就不一样了&#xff0c;这是Proxy.newProxyInstance返回的对象&#xff0c;会hello.addUser会替换为invoke函数&#xff0c;比如这里的hello.addUser("sun", "13434");会…

【驱动篇】龙芯LS2K0300之红外驱动

实验目标 编写HX1838红外接收器驱动&#xff0c;根据接收的波形脉冲解码红外按键键值 模块连接 模块连接&#xff1a;VCC接Pin 2&#xff0c;GND接Pin1&#xff0c;DATA接Pin16 驱动代码 HX1838 GPIO初始化&#xff0c;申请中断&#xff0c;注意&#xff1a;GPIO48默认是给…

vscode语言模式

1.背景 写vue3ts项目的时候&#xff0c;用到了volar插件&#xff0c;在单文件使用的时候&#xff0c;鼠标悬浮在代码上面会有智能提示&#xff1b; 但是最近volar插件提示被弃用了&#xff0c;然后我按照它的官方提示&#xff0c;安装了Vue-official扩展插件&#xff0c;但是…

Vue3 特点以及优势-源码解剖

Vue3 特点以及优势-Vue3.4源码解剖 Vue3 特点以及优势 1.声明式框架 命令式和声明式区别 早在 JQ 的时代编写的代码都是命令式的&#xff0c;命令式框架重要特点就是关注过程声明式框架更加关注结果。命令式的代码封装到了 Vuejs 中&#xff0c;过程靠 vuejs 来实现 声明式代…

剑神诀_单机架设_无需虚拟机_小白专用

前言 今天给大家带来一款单机游戏的架设&#xff1a;剑神诀&#xff0c;一键端 无需虚拟机 如今市面上的资源参差不齐&#xff0c;大部分的都不能运行&#xff0c;本人亲自测试&#xff0c;运行视频如下&#xff1a; 剑神诀 搭建教程 此游戏架设不需要安装虚拟机&#xff0c;…

爬虫cookie是什么意思

“爬虫 cookie”指的是网络爬虫在访问网站时所使用的cookie&#xff0c;网络爬虫是一种自动化程序&#xff0c;用于在互联网上收集信息并进行索引&#xff0c;这些信息可以用于搜索引擎、数据分析或其他目的。 本教程操作系统&#xff1a;Windows10系统、Dell G3电脑。 “爬虫…

SpringBoot 项目整合 MyBatisPlus 框架,附带测试示例

文章目录 一、创建 SpringBoot 项目二、添加 MyBatisPlus 依赖三、项目结构和数据库表结构四、项目代码1、application.yml2、TestController3、TbUser4、TbUserMapper5、TestServiceImpl6、TestService7、TestApplication8、TbUserMapper.xml9、MyBatisPlusTest 五、浏览器测试…

新鲜出炉!恭喜这 5 位同学中选 NebulaGraph 社区 2024 开源之夏项目!

开源之夏是中国科学院软件研究所发起的“开源软件供应链点亮计划”系列暑期活动&#xff0c;旨在鼓励高校学生积极参与开源软件的开发维护&#xff0c;促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区&#xff0c;针对重要开源软件的开发与维护提供项目开发任务&#xf…

stm32学习笔记---USART串口外设(理论部分)

目录 USART简介 USART的框图 串口的引脚 USART的基本结构 数据帧 起始位侦测 数据采样 波特率发生器 USD转串口模块的原理图 声明&#xff1a;本专栏是本人跟着B站江科大的视频的学习过程中记录下来的笔记&#xff0c;我之所以记录下来是为了方便自己日后复习。如果你…

个人微信二次开发

​ 由于自身在机器人方面滚爬多年&#xff0c;现在收藏几个宝藏机器人 推荐一下自己常用的机器人&#xff1a; 适合有技术开发的公司&#xff0c;可以自主开发所需要的功能&#xff01;十分齐全 测试问文档&#xff1a;https://www.wkteam.cn/ 有需要的兄弟可以看一下&#…

手写一个基于SpringBoot的MVC架构,默认实现CRUD和导入导出功能

文章目录 前言正文一、项目结构二、技术点三、部分核心代码3.1 core-tool 中的核心代码3.1.1 所有实体的通用父类 SuperEntity3.1.2 所有枚举的父接口 BaseEnum3.1.3 所有业务异常的父接口 BaseException 3.2 mvc-tool 中的核心代码3.2.1 CrudController 接口定义3.2.2 默认的C…