将dtb反编译成dts

【将dtb反编译成dts, 使用命令如下:】

1> ./out/target/product/$Project/obj/KERNEL_OBJ/scripts/dtc/dtc -h
2> ./out/target/product/$Project/obj/KERNEL_OBJ/scripts/dtc/dtc -I dtb -O dts -o $Project.dts  out/target/product/$Project/obj/KERNEL_OBJ/arch/arm64/boot/dts/$Project.dtb
3> vim $Project.dts 

 

 

    
【kernel-3.5 外部中断不需要清中断,内部中断需要清中断】

static irqreturn_t kpd_irq_handler(int irq, void *dev_id)
{
    /* use _nosync to avoid deadlock */
    disable_irq_nosync(kp_irqnr);
    tasklet_schedule(&kpd_keymap_tasklet);
    
    return IRQ_HANDLED; //中断函数返回成功
    
    return IRQ_NONE; //中断函数返回失败
}

in_interrupt(); // 判断中断上下文 有可能睡眠的函数 不能再中断 上下文调用 kzalloc (会休眠)

软中断(数量有限 只有 32 个,linux 本身已经使用一些了)、tasklet、workqeue

软中断: 修改内核源码,加入自己的软中断号 --> 软中断函数 (中断上下文)
tasklet : (不能多个 cpu 同时执行),不允许被中断打断 irq_action (中断上下文),链表 中的每一个 tasklet 只能出现一次。
workqeue :


if (!test_and_clear_bit(TASKLET_STATE_SCHED, &t->state)) 
// 将状态设置为: TASKLET_STATE_SCHED 已经被调度,将要被执行,并且返回原来的状态若 1:表示被调用过,不能再执行; 0: 表示没被调用过,能再执行。
    BUG();
    
 BUG(); kernel 表示异常 停止往下执行。

 

adb shell am 命令手动叫起mobile log这个apk:

adb shell am start -n com.mediatek.mtklogger/com.mediatek.mtklogger.MainActivity


    
kehup 
01-01 08:03:50.793   955  1058 I WindowManager: notifyLidSwitchChanged(1), newLidState:0, old:1, mSystemBooted:true


adb input keyevent 26

定义的平台板级信息,与 DTS 描述的板级设备匹配。comptaible
./kernel-3.18/arch/arm/include/asm/mach/arch.h:94:#define DT_MACHINE_START(_name, _namestr)        \

./kernel-3.18/arch/arm/mach-mediatek/core.c:25:DT_MACHINE_START(MT6580_DT, "MT6580")


dts 文件转换 

dts --> dtb --> device_node --> platform_node --> platform_device

1. 哪一些  device_node --> platform_node 可以完成转换 ?
    @1 : 具有 compatible 属性,根节点除外;
    i2c : 节点转换 i2c_client
    spi : 节点转换 spi_device
    

压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for Linux

zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar –xZvf file.tar.Z   //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip

总结
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

sudo patch -R -p1 < ../patch-3.15.4

grep -e ro.product.model -e ro.product.brand -e ro.board.platform out/target/product/${PROJECT}/vendor/build.prop out/target/product/${PROJECT}/system/build.prop

 

 

 

shell常用语法:

-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真 
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真 
-w filename 如果 filename可写,则为真 
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
[ -z STRING ] “STRING” 的长度为零则为真。
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于

    
rename -v "s/sp250amipiraw/sp2508mipiraw/g" vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor/sp2508_mipi_raw/*.*
rename -v "s/sp250amipiraw/sp2508mipiraw/g" vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor/sp2508_mipi_raw/A*/*.*
sed -i "s/sp2609mipiraw/sp2508mipiraw/g" vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor/sp2508_mipi_raw/*.*


rename -v "s/GC2385MIPIRAWRAW/GC2385FMIPIRAWRAW/g" vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor_metadata/sp2508_mipi_raw/*.*
sed -i "s/SENSOR_DRVNAME_SP2609_MIPI_RAW/SENSOR_DRVNAME_SP2508_MIPI_RAW/g" vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor_metadata/sp2508_mipi_raw/*.*
sed -i "s/GC2385MIPIRAWRAW/GC2385FMIPIRAWRAW/g" vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor/gc2385f_mipi_raw/*.*

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值