必威体育Betway必威体育官网
当前位置:首页 > IT技术

展讯调试总结

时间:2019-11-04 07:44:30来源:IT技术作者:seo实验室小编阅读:82次「手机版」
 

展讯

1.IO配置

u-boot15/board/spreadtrum/xxx/pinmap-xxx.c

{REG_PIN_SDA2,                          BITS_PIN_AF(0)},
{REG_MISC_PIN_SDA2,                     BITS_PIN_DS(1)|BIT_PIN_WPUS|BIT_PIN_WPU|BIT_PIN_SLP_AP|BIT_PIN_SLP_WPU|BIT_PIN_SLP_Z},

REG_PIN_(管脚名字)       如gpio88,查找pinmap表格,就可以知道相应的管脚名。 

BITS_PIN_AF(n) n=0,1,2,3功能  具体功能可参考SCxxxx_GPIO_Spec_Vxxx.xlsx

BITS_PIN_DS                     驱动能力(ata测试中导线长或者高速信号可以调整)

BIT_PIN_WPUS     强上拉(强是指电流,选择阻值较小的电阻)

BIT_PIN_NULL       没强上拉

BIT_PIN_WPU      上拉(初始电平为高)

BIT_PIN_WPD      下拉(初始电平为低)

BIT_PIN_NUL        既不上拉也不下拉

BIT_PIN_SLP_AP                  跟随AP休眠

BIT_PIN_SLP_ALL               可能是跟随BP休眠

BIT_PIN_SLP_NONE           不休眠

BIT_PIN_SLP_NUL        休眠时既不上拉也不下拉

BIT_PIN_SLP_WPD       休眠时下拉

BIT_PIN_SLP_WPU       休眠时上拉

BIT_PIN_SLP_OE       休眠时输出

BIT_PIN_SLP_IE         休眠时输入

BIT_PIN_SLP_Z         休眠时高阻

2.按键

gpio作为按键

配置为BITS_PIN_DS(1)|BIT_PIN_NULL|BIT_PIN_WPU|BIT_PIN_SLP_AP|BIT_PIN_SLP_WPU|BIT_PIN_SLP_IE},这个配置出错可能导致低电流大

keypad模块的按键

KEYIN作为为列

KEYOUT作为行

如KEYOUT0,KEYIN2,那么

sPRD,row = <0>;

sprd,column = <2>;

3.lcd

xxx-common.dtsi包含的使用的默认屏

u-boot15/drivers/video/sprdfb/lcd/makefile

u-boot15/drivers/video/sprdfb/sprdfb_panel.c

u-boot15/drivers/video/sprdfb/sprdfb_spi.c(spi的可能需要修改这里的SPI_RS(选择发数据还是命令)脚)

u-boot15/include/configs/xxxx.h

如果使用spi类型的屏,spi这个展讯这里默认是收发用一根线的,当然也可配置成标准的SPI线

如果开启了te脚检测spi_te_gpio,屏也要开启te,否则会出现卡顿的情况

4.增大音量,工具Audiotester,可参考

https://wenku.baidu.com/view/e454011a580216fc700afdf3.html

5.当按键或触摸屏不好用时,可安装应用Vysor来控制屏幕(ubuntu系统可以在谷歌浏览器安装Vysor插件)

6.调整分区大小

直接修改device/sprd/sharkle/xxx/xxx.xml中size的大小(这里单位是M),同时修改BoardConfig.mk镜像的大小。

7.编译与烧写

编译uboot  make bootloader

烧写uboot fastboot flash uboot u-boot-sign.bin

 烧写system sudo fastboot -S 100M flash system system.img

Android9.0出现了dtb和dtbo镜像,编译方法make dtbimage ,make dtboimage ,烧写方法

fastboto flash dtb dtb.img,fastboot flash dtbo dtbo.img

也可以使用展讯工具ResearchDownload,勾选fdl1和fdl2和相应的镜像,来烧写相应的镜像。

8.gpio和ldo调试

cat /d/gpio可以查看引脚状态,包括gpio_request有没有申请成功,引脚现在的状态(输入或输出,高电平或低电平)

gpio-49  (                     |xxxx1                 )   in(输入)  hi(高电平)

  gpio-138 (                    |xxxx2                  )out(输出) lo(低电平)

/d/regulator可查看ldo的使用情况,以及配置的最大和最小电压

9.暗码

*#*#83781#*#*,还有一个*#*#83782#*#*,进入工程模式(EngineerMode.apk)

*#*#83789#*#*,测试模式

*#*#2266#*#*,进入sgps测试,选择INF,打开sgps switch,可在SA见到卫星信号。

10.cat /proc/meminfo只能看到部分内存容量(有部分没算在这)

11.展讯网站

提问题http://222.66.158.139:2008/cqweb/#

资料https://isupport.spreadtrum.com/iSupport/APPly/faq_list#tab-

12.EXINT的管脚有硬件去抖的功能,如使用EXINT12,pinmap配置成EXINT12,

  gpiOS = <&ap_eic 12 1>;

13.刚开机,串口打印一点就停止输出了,找到对应的dts文件,将loglevel=1改成loglevel=8或者adb shell,

echo 8 >/proc/sys/kernel/printk

14.测试休眠底电流的时候,userdebug版本要关闭modem log,否则无法正常休眠。

15.展讯平台sysdump https://blog.csdn.net/mike8825/article/details/85039187

16.射频和通话参数存放于sharkle_pubcp_customer_Feature_Phone_nvitem.bin(可ota差分升级),校准参数存放于product分区。

17.进入USB下载方式(这里的加号是短路的意思)

   1.KEYIN0+KEYOUT0;2.KEYIN0+GND;3.U1TXD+GND

18.spi串口屏可以读寄存器来实现esd protect,可以让展讯提供补丁 。

19.配置内核kuconfig/kmconfig/kdconfig

20.展讯工具介绍https://blog.csdn.net/qq_23922117/article/details/81144364

21.pwma,pwmb,pwmc的基地址分别是0x40260000,0x40260020,0x40260040,dts默认只配置了一路

   pwma有多个引脚可以设置,但只能选其中一个作为pwma,pwmb,pwmc类似,要参考sprd背光pwm来使用,否认会出现休眠死机的情况。对于背光使用非默认pwm,需要进行修改uboot,路径u-boot15/board/spreadtrum/xxx/sprd_bl.c,默认是这样

#define PWM_INDEX  1

__raw_bits_or(((PWM_INDEX << 1) << 4), REG_AON_APB_APB_EB0); //PWMx EN

即第一路pwm,假如要使用第0路,需配置成

#define PWM_INDEX  0

__raw_bits_or(((1 << PWM_INDEX) << 4), REG_AON_APB_APB_EB0);m

参考

22.抓取modem日记的时候,由于sdcard的log会丢失,可以用展讯的Logel_for_TD工具来抓取(该工具在源码压缩包下,进入工程模式,打开pc service,然后通过连接手机,复现现象,保存log即可)23.

23.摄像头移植https://blog.csdn.net/mike8825/article/details/89056310

24.在虚拟机上运行bBAT工具

由于平常在linux工作,bbat工具只能在window上运行,先运行bbat工具,手机断电接usb,见出现的usb未知设备(virtualbox会提示未知设置,不能分配到虚拟机)分配到虚拟机上即可。

25.EXINT有0~15共16个中断口可以选用,其中

EXINT0~7:支持电平中断具有debounce功能,时钟源是RTC_1K(1ms),所以只有1ms的脉冲才能触发中断,普通中断应用建议接EXINT0~7 

EXINT8~15:支持边沿和电平中断 具有debounce/lat/async/sync mode4种模式,一般uS级的窄脉冲使用latch mode来触发,如某些指纹IC中断信号

            async mode:使用RTC_32K作为时钟源

            debounce mode:使用RTC_1K作为时钟源,有硬件去抖

            latch mode:不需要时钟源,直接锁存输入信号

            sync mode:使用PCLK作为时钟源

普通的gpio在深睡下,只能用低/高电平唤醒系统,可以用irq_set_irq_type来切换中断状态

对于按键来说,由于信号的不确定性,只能用EXINT或者pmic上的irq来唤醒系统,使用电平方式的gpio会导致系统死机

文章最后发布于: 2018-07-09 21:00:55

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读