MTK平台调试基础

1.代码的编译

部分私有的代码在modem中,参考平台对应的release_note(在vendor下),进行modem的编译和ap部分私有代码的拷贝。

编译preloader  make pl

编译lk  make lk

编译kernel make bootimage 

编译dtbo make dtboimage 

2.工程暗码

*#*#3646633#*#*,无相应的测试应用

3.调屏

用dct工具确认RST脚是否配置成LCM_RST,代码里直接控制相应的寄存器,如果配置不对,会导致rst脚无法拉高,默认应该是LCM_RST的,但笔者使用的工程偏偏是gpio模式,导致无法点亮屏幕。

默认只配置一款屏幕时lcm_compare_id函数不跑的,配置了两款屏幕以上才跑,如果读id都失败,会默认采取第一款屏的配置。

PLL_CLOCK的计算,参考FAQ11002

1、DSI video  mode下的数据速率data_rate的大致计算公式为:
Data rate= (Height+VSA+VBP+VFP)*(Width+HSA+HBP+HFP)* total_bit_per_pixel*frame_per_second/total_lane_num

2、DSI cmd mode下的数据速率data_rate的大致计算公式为:
Data rate= width*height*1.2* total_bit_per_pixel*frame_per_second/total_lane_num
参数注释:
data_rate : 表示的是数据速率
width,height  :屏幕分辨率
VSA VBP VFP :DSI vdo mode的vertical porch配置参数
HSA HBP HFP :DSI vdo mode的horizontal porch配置参数
total_bit_per_pixel :表示的是一个pixel需要用几个bit来表示,比如RGB565的话就是16个bit
frame_per_second :就是我们通常看到的fps,叫做帧率,表示每秒发送多少个帧,一般是60帧每秒
total_lane_num :表示的是data lane的对数。

 
  1. params->dsi.LANE_NUM = LCM_FOUR_LANE;

  2. params->dsi.data_format.format = LCM_DSI_FORMAT_RGB888;

  3. params->dsi.vertical_sync_active = 4;

  4. params->dsi.vertical_backporch = 16;

  5. params->dsi.vertical_frontporch = 40;

  6. params->dsi.vertical_active_line = 1440;

  7.  
  8. params->dsi.horizontal_sync_active = 20;

  9. params->dsi.horizontal_backporch = 80;

  10. params->dsi.horizontal_frontporch = 80;

  11. params->dsi.horizontal_active_pixel = 720;

  12. params->dsi.ssc_disable = 1;

  13.  
  14. params->dsi.PLL_CLOCK = 255; /* this value must be in MTK suggested table */

(4+16+60+1440)(20+80+80+720)*60*24%4%2=246240000=246M

4.TP

mtk自行设计了一套tp架构,看不出有什么作用,感觉简单的东西复杂化了。

5.矩阵按键

用dct工具配置引脚,并配置相应的按键功能,遇到按键无功能时,cat mt_gpio查看引脚状态,如果状态不对,可能是引脚被占用了。

6.dct工具

dct工具的用来辅助配置dts和配置引脚功能,最终生成dtbo.img。习惯了文本界面的编辑,一下子还真习惯不了这种方式,但最终会在out目录的dts文件夹下生成文本形式的dts,可直接查看。

7.mic没功能

默认mic为dcc模式,如果电路设计为acc模式,需修改audio_custom_exp.h

 
  1. #define PHONE_MIC_MODE (2)  //dcc

  2. #define PHONE_MIC_MODE (1)  //acc

  3. #define MAIN_REF_MIC_INVERSE 0

双mic

MTK_DUAL_MIC_SUPPORT = yes

mic翻转(这个配置比较人性化,遇到展讯平台硬件弄反的,搞了很久都没弄出来)

MTK_AUDIO_MIC_INVERSE = no

8.sensor配置

手机平台默认都采用的sensorhub架构,该方式能计步,功耗更低等。拿到相应的代码后,参考平台默认的代码都能移植编译过去,可参考https://blog.csdn.net/qq_22370409/article/details/104940127

实时查看scp log

while true; do cat /dev/scp;done

9.摄像头

摄像头移植部分和几年前变化不到,效果部分在hal文件夹,摄像头上电和驱动部分放置在kernel层。

10.串口

默认的串口波特率为921600,默认Android启动完成后,会关掉串口log,可输入如下命令重新打开

echo 1 > /proc/mtprintk

11.nv修改

nv位置mcu/pcore/custom/modem,每次修改nv后,需要重新编译代码,这个比较不人性化,因为需要驱动工程师去编译,但nv是射频工程师去配置的。像展讯平台,nv能直接修改,并烧写进系统,不需要编译。

12.sim热插拔

这部分比较简单,如果不支持热插拔,直接关掉该引脚功能,支持热插拔,配置plugout电平高低就行。

13.镜像打包

打包脚本可参考

 
  1. #!/bin/sh

  2. if [ -d "image" ]; then

  3. rm -rf image

  4. mkdir image

  5. else

  6. mkdir image

  7. fi

  8. mkdir image/apdb

  9. echo "start copy image"

  10. cp out/target/product/k65v1_hdp_ref/obj/KERNEL_OBJ/vmlinux image/

  11. cp out/target/product/k65v1_hdp_ref/preloader_k65v1_hdp_ref.bin image/

  12. cp out/target/product/k65v1_hdp_ref/lk.img image/

  13. cp out/target/product/k65v1_hdp_ref/dtbo.img image/

  14. cp out/target/product/k65v1_hdp_ref/logo.bin image/

  15. cp out/target/product/k65v1_hdp_ref/boot.img image/

  16. cp out/target/product/k65v1_hdp_ref/md1img.img image/

  17. cp out/target/product/k65v1_hdp_ref/super.img image/

  18. cp out/target/product/k65v1_hdp_ref/userdata.img image/

  19. cp out/target/product/k65v1_hdp_ref/MT6765_Android_scatter.txt image/

  20. cp out/target/product/k65v1_hdp_ref/scp.img image/

  21. cp out/target/product/k65v1_hdp_ref/spmfw.img image/

  22. cp out/target/product/k65v1_hdp_ref/sspm.img image/

  23. cp out/target/product/k65v1_hdp_ref/tee.img image/

  24. cp out/target/product/k65v1_hdp_ref/vbmeta.img image/

  25. cp out/target/product/k65v1_hdp_ref/vbmeta_system.img image/

  26. cp out/target/product/k65v1_hdp_ref/vbmeta_vendor.img image/

  27. cp vendor/mediatek/proprietary/modem/XXX/MDDB.META.ODB_MT6765_S00* image/

  28. cp out/target/product/k65v1_hdp_ref/vendor/etc/apdb/* image/apdb/

  29. echo "stop copy image"

  30. time=$(date "%Y%m%d_%H%M")

  31. zip -r XXX_$time.zip image

14.下载

在linux和windows下,都有对应的下载工具。点击下载,插上usb就行,电池也可以不接,这点比较方便。

下载到userdata镜像时,如果工具报镜像太大(ERROR:STATUS_TOO_LARGE(-1073479676)),可适当减少BOARD_MTK_USERDATA_SIZE_KB的值

15.兼容emmc和ddr

修改custom_MemoryDevice.h,MemoryDeviceList_MTXXX.xls,如果MemoryDeviceList_MTXXX.xls没有该型号的emmc,到官网下载最新的,更新到MemoryDeviceList_MTXXX.xls。

16.加大CONFIG_LOG_BUF_SHIFT

增大CONFIG_LOG_BUF_SHIFT的值,可以保存更多的内核log。

17.外置audio PA

在Ext_Speaker_Amp_Change函数中加入控制PA的函数,二合一喇叭可参考FAQ20649,更多常见音频问题参考Audio常用配置.docx。

18.双卡改单卡

MTK_MULTI_SIM_SUPPORT = dsds 改为 MTK_MULTI_SIM_SUPPORT = ss

19.网络制式

六模C/Lf/Lt/W/T/G

 
  1. C-->CDMA/CMDA2000

  2. Lf-->FDD

  3. Lt-->TDD

  4. W-->WCDMA

  5. T-->TD_SCDMA(移动)

  6. G->GSM

L代表LTE(4G),有FDD和TDD两种

2G:CDMA,GSM

3G:WCDMA,CDMA2000,TD_SCDMA

4G:TDD,FDD

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值