1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【展讯平台】Android 驱动(Kernel) 系统(framework) 定制 调试日志 持续更新中..

【展讯平台】Android 驱动(Kernel) 系统(framework) 定制 调试日志 持续更新中..

时间:2019-06-17 22:16:37

相关推荐

【展讯平台】Android 驱动(Kernel) 系统(framework) 定制 调试日志 持续更新中..

前言

【展讯平台】Android 4.4 驱动(Kernel)、系统(framework) 定制,调试日志

正文

1:提高串口日志等级

查看

adb shell cat /proc/sys/kernel/printk

修改

adb shell echo 8 >/proc/sys/kernel/printk

在dts利配置:

chosen {

stdout-path = &uart1;

bootargs = "earlycon=sprd_serial,0x70100000,115200n8 console=ttyS1,115200n8loglevel=7init=/init root=/dev/ram0 rw androidboot.hardware=sp9820e_2h10";

};

等级为:1~7

2:默认LCD配置

kernel\arch\arm\boot\dts\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,否则会出现卡顿的情况

2:驱动U-boot -IO配置

U-boot路径:u-boot15/board/spreadtrum/xxx/pinmap-xxx.c

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休眠时高阻

按键

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>;

gpio和ldo调试

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

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

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

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

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

gpios = <&ap_eic 12 1>;

3:展讯平台耳机驱动调试

kernel / arch/arm/boot/dts/sp7731e-common.dtsi

gpio-trigger-levels = <1 1 1 1 1>; //对应硬件电压值

kernel/sound/soc/sprd/codec/sprd/sc2721/sprd-headset-sc2721.c

4:展讯SC9820E驱动配置之LCD配置

android平台的LCD配置主要配置两个方面:Uboot配置及Kernel.

一.Uboot配置

1.增加驱动文件,以st7789v2为例.添加lcd_st7789v2_spi.c在如下路径:

u-boot15/drivers/video/sprdfb/lcd/lcd_st7789v2_spi.c

2.增加编译规则

在u-boot15/drivers/video/sprdfb/lcd/Makefile文件中增加

obj-$(CONFIG_FB_LCD_ST7789V2_SPI) += lcd_st7789v2_spi.o

3.配置LCD编译选项LCD尺寸

#define CONFIG_SPI

#define CONFIG_SPRD_SPI

#define CONFIG_FB_SWDISPC

//#define CONFIG_FB_LCD_GC9305_SPI

#define CONFIG_FB_LCD_ST7789V2_SPI(添加LCD宏开关)

#define CONFIG_FB_LCD_DUMMY_SPI

#define CONFIG_BACKLIGHT_WHTLED

4.关联到内核

extern struct panel_spec lcd_st7789v2_spi_spec;

#ifdef CONFIG_FB_LCD_ST7789V2_SPI

{

.lcd_id = 0x7789,

.panel = &lcd_st7789v2_spi_spec,

},

#endif

二.Kernel配置

1.增加LCD dts文件

kernel/arch/arm/boot/dts/sprd/lcd/目录下参考已有的lcd驱动文件(lcd_gc9305_spi_qvga.dtsi),copy rename添加一份新的,注意里面的 lcd id格式,要和uboot里面传过来的值保持一致,增加lcd_st7789v2_spi_qvga.dtsi文件.

2.引用LCD dts文件

在kernel/arch/arm/boot/dts/sp9820e-common.dtsi中添加如下代码:

1).#include "lcd/lcd_st7789v2_spi_qvga.dtsi"

2)在panel-drivers里添加lcd_st7789v2_spi_qvga如下:

panel-drivers = <

&lcd_gc9305_spi_qvga

&lcd_gc9306_spi_qvga

&lcd_st7789v2_spi_qvga

&lcd_dummy_spi

>;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。