文章目录

  • 一、串口
  • 二、查看gpio的状态
  • 三、gpio的计算
  • 四、调试背光
  • 五、调试屏幕
  • 六、摄像头调试

一、串口

1、验证小系统是否跑起来,如果没反应,可以多尝试几个串口,有的串口可能不支持这个,注意看波特率,一般会在dts文件有个debugger函数。上面有这个波特率的说明,包含115200 1500000等。然后就看打印信息,查看TX、RX线对了吗。

二、查看gpio的状态

进入adb shell抓取gpio的状态
先要切换为su模式

cat sys/kernel/debug/gpio
或者在根目录下
cat /d/gpio

就能看到下面这些东西,对应的gpio的状态

k66_qls_cnt:/ # cat /d/gpio
gpiochip0: GPIOs 0-31, parent: platform/fdd60000.gpio, gpio0:gpio-5   (                    |vcc5v0_otg          ) out lo    gpio-13  (                    |gsl-irq-port        ) in  lo    gpio-14  (                    |gsl-wake-port       ) out hi       gpio-21  (                    |pwrg-int            ) out hi    gpiochip1: GPIOs 32-63, parent: platform/fe740000.gpio, gpio1:gpio-61  (                    |eeprom-wp           ) out lo    gpio-62  (                    |led_r               ) out lo    gpio-63  (                    |led_g               ) out hi    gpiochip2: GPIOs 64-95, parent: platform/fe750000.gpio, gpio2:gpio-73  (                    |reset               ) out lo    gpio-77  (                    |bt_default_rts      ) in  hi    gpiochip3: GPIOs 96-127, parent: platform/fe760000.gpio, gpio3:gpio-98  (                    |bat_det_gpio        ) in  lo    gpio-100 (                    |lte-usben           ) out hi

这些gpio都是通过pinctrl控制了的,我们不能通过命令行改变状态的。
还有一些gpio我们可以控制

rk66_qls_cnt:/ # cd sys/class/gpio/

在这个目录下有一些gpio我们可以通过以下命令控制

rk66_qls_cnt:/sys/class/gpio # ls
export  gpiochip0  gpiochip128  gpiochip255  gpiochip32  gpiochip64  gpiochip96  unexport

我们想要取控制gpio88就只需要去加载这个gpio

rk66_qls_cnt:/sys/class/gpio # echo 88 > export

当然这个gpio是通过刚才那个cat /d/gpio不能看到的

rk66_qls_cnt:/sys/class/gpio # ls
export  gpio88  gpiochip0  gpiochip128  gpiochip255  gpiochip32  gpiochip64  gpiochip96  unexport

可以看到在这个gpio下面多了一个gpio88我们进入这个gpio88
设置输入输出模式

rk66_qls_cnt:/sys/class/gpio/gpio88 # echo out/in > direction

设置高低电平

rk66_qls_cnt:/sys/class/gpio/gpio88 # echo 0/1 > value

再去测量板子上对应的gpio就会看到电平的变化

三、gpio的计算

在rockchip里面,gpio分组为32一组,每组4对,每队8个
举个例子:

GPIO0_B4 被描述为:<&gpio0 12 >
GPIO0对应gpio0,B4对应12。
计算公式:(x)*8+(y)=12这里的x对应GOIO的ABCD组(A为0,B为1,C为2,D为3)(y)是组数后面的数字,这里为4。
GPIO3_A3 = <&gpio3 3>;GPIO3_C5= <&gpio3 21>
之前说过的gpio100这个只需要把gpio换成对应的数字就好。
比如 <&gpio3 3>
gpio3的开头是96,所以GPIO3_A3也可以说是gpio99。
GPIO0_B4对应gpio12。

gpiochip0: GPIOs 0-31,
gpiochip1: GPIOs 32-63
gpiochip2: GPIOs 64-95
gpiochip3: GPIOs 96-127
gpiochip4: GPIOs 128-159

这里就是每组32个,每一组的开头和结尾都写出来了

四、调试背光

核对GPIO口,找到使能gpio.
相关代码

backlight: backlight {compatible = "pwm-backlight";pwms = <&pwm4 0 25000 0>;brightness-levels = <0  20  20  21  21  22  22  2323  24  24  25  25  26  26  2727  28  28  29  29  30  30  3131  32  32  33  33  34  34  3535  36  36  37  37  38  38  3940  41  42  43  44  45  46  4748  49  50  50  51  52  53  5455  55  56  57  58  59  60  6162  63  64  64  65  65  66  6768  69  70  71  71  72  73  7475  76  77  78  79  79  80  8182  83  84  85  86  86  87  8889  90  91  92  93  94  94  9596  97  98  99 100 101 101 102103 104 105 106 107 107 108 109110 111 112 113 114 115 115 116117 118 119 120 121 122 123 123124 125 126 127 128 129 130 130131 132 133 134 135 136 136 137138 139 140 141 142 143 143 144145 146 147 147 148 149 150 151152 153 154 155 156 156 157 158159 157 158 159 160 161 162 162163 164 165 166 167 168 169 169170 171 172 173 174 175 175 176177 178 179 180 181 182 182 183184 185 186 187 188 189 190 190191 192 193 194 195 196 197 197198 199 200 201 202 203 204 204205 206 207 208 209 209 210 211212 213 213 214 214 215 215 216216 217 217 218 218 219 219 220>;default-brightness-level = <200>;/*自己设置GPIO,也要看驱动里面使用没有这个GPIO,或者硬件怎么连接的*/enable-gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;        };

可以自己取通过cat对应的gpio的状态;然后看屏幕的背光是否亮起来。

五、调试屏幕

1)判断是mipi的屏幕还是lvds或者都要使用
如如果是mipi则需要向厂家要开屏指令

adb查看对应的驱动是否挂载
cat /sys/class/graphics/fb0 查看lvds的驱动是否挂载如果有则会出现fb0(目前来看是这样)
也可以在驱动里面增加打印信息,判断你的驱动是否加载,然后就看接口是否打开。
比如lvds_phy0或者lvds_phy1这些是的状态是okay还是disabled

首先你的屏幕亮起来在去看这个屏幕参数,出现花频闪屏就是参数有问题,如果屏幕都没亮就是gpio或者上电时序都没对,然后就可找硬件同事去查看电压对不对,最后调参数。

&lvds_phy0 {status = "okay";
};

屏幕参数的代码

panel@0 {compatible = "aoly,sl008pa21y1285-b00", "simple-panel-dsi";/* 这个一般是默认,不会改*/reg = <0>;backlight = <&backlight>;/*需要自己取核对IO口,注意是高有效还是低有效*/enable-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;reset-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_LOW>;pinctrl-names = "default";pinctrl-0 = <&lcd_enable_gpio>, <&lcd_rst_gpio>;/*这个是上电时序*/prepare-delay-ms = <120>;reset-delay-ms = <120>;init-delay-ms = <120>;stbyb-delay-ms = <120>;enable-delay-ms = <120>;disable-delay-ms = <120>;unprepare-delay-ms = <120>;/*屏幕的宽和高需要看对应的手册*/width-mm = <229>;height-mm = <143>;dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;dsi,format = <MIPI_DSI_FMT_RGB888>;dsi,lanes = <4>;/*如果是mipi的屏幕就需要原厂提供参数,如果是lvds则不需要*/panel-init-sequence = [23 00 02 B0 0123 00 02 C3 0F23 00 02 C4 0023 00 02 C5 0023 00 02 C6 0023 00 02 C7 0023 00 02 C8 0D23 00 02 C9 1223 00 02 CA 1123 00 02 CD 1D23 00 02 CE 1B23 00 02 CF 0B23 00 02 D0 0923 00 02 D1 0723 00 02 D2 0523 00 02 D3 0123 00 02 D7 1023 00 02 D8 0023 00 02 D9 0023 00 02 DA 0023 00 02 DB 0023 00 02 DC 0E23 00 02 DD 1223 00 02 DE 1123 00 02 E1 1E23 00 02 E2 1C23 00 02 E3 0C23 00 02 E4 0A23 00 02 E5 0823 00 02 E6 0623 00 02 E7 0223 00 02 B0 0323 00 02 BE 0323 00 02 CC 4423 00 02 C8 0723 00 02 C9 0523 00 02 CA 4223 00 02 CD 3E23 00 02 CF 6023 00 02 D2 0423 00 02 D3 0423 00 02 D4 0123 00 02 D5 0023 00 02 D6 0323 00 02 D7 0423 00 02 D9 0123 00 02 DB 0123 00 02 E4 F023 00 02 E5 0A23 00 02 B0 0023 00 02 BA 8F23 00 02 BD 6323 00 02 C2 0823 00 02 C4 1023 00 02 B0 0223 00 02 C0 0023 00 02 C1 0A23 00 02 C2 2023 00 02 C3 2423 00 02 C4 2323 00 02 C5 2923 00 02 C6 2323 00 02 C7 1C23 00 02 C8 1923 00 02 C9 1723 00 02 CA 1723 00 02 CB 1823 00 02 CC 1A23 00 02 CD 1E23 00 02 CE 2023 00 02 CF 2323 00 02 D0 0723 00 02 D1 0023 00 02 D2 0023 00 02 D3 0A23 00 02 D4 1323 00 02 D5 1C23 00 02 D6 1A23 00 02 D7 1323 00 02 D8 1723 00 02 D9 1C23 00 02 DA 1923 00 02 DB 1723 00 02 DC 1723 00 02 DD 1823 00 02 DE 1A23 00 02 DF 1E23 00 02 E0 2023 00 02 E1 2323 00 02 E2 0705 78 01 1105 32 01 29];panel-exit-sequence = [05 dc 01 2805 78 01 10];/*下面需要自己查看手册*/display-timings {native-mode = <&timing0>;timing0: timing0 {/* 时钟频率*/clock-frequency = <512000000>;/*这个就是屏幕的分辨率*/hactive = <1024>;vactive = <600>;/*对应的参数,需要修改*/hsync-len = <140>;hback-porch = <160>;hfront-porch = <160>;vsync-len = <20>;vback-porch = <23>;vfront-porch = <12>;/*默认低电平有效*/hsync-active = <0>;vsync-active = <0>;de-active = <0>;pixelclk-active = <0>;};};

2)、找到自己的屏幕的手册
其中以下参数根据屏的规格书填写:

hactive = <480>;        // 分辨率-宽
vactive = <854>;        // 分辨率-高hsync-len = <24>;       // 行同步肪冲宽度    单位:像素时钟周期    也有手册简称为HWH(HSYNC width)
hback-porch = <24>;     // 行可视范围前肩   HBP在每行或每列的象素数据开始输出时要插入的象素时钟周期数
hfront-porch = <72>;    // 行可视范围后肩   HFP在每行或每列的象素结束到LCD 行时钟输出脉冲之间的象素时钟数vsync-len = <2>;        // 场同步脉冲宽度 单位:显示一行的时间th 也有手册简称为VWH(VSYNC width)
vback-porch = <10>;     // 帧可视前肩     vbp在垂直同步周期之后帧开头时的无效行数
vfront-porch = <12>;    // 帧可视后肩     vfp本帧数据输出结束到下一帧垂直同步周期开始之前的无效行数以下参数表示对应信号的有效电平,默认为低电平(0):hsync-active = <0>;     // 行同步信号
vsync-active = <0>;     // 场同步信号
de-active = <0>;        // de信号
pixelclk-active = <0>;  // clk信号

pinctrl的配置

    lcd {lcd_rst_gpio: lcd-rst-gpio {rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;    };lcd_enable_gpio: lcd-enable-gpio {rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;    };lcd_stb_gpio: lcd_stb_gpio {rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;   };};

4、调试wifi蓝牙模块

相关代码:

sdio_pwrseq: sdio-pwrseq {compatible = "mmc-pwrseq-simple";/*不同的pmic这里不一样*/       clocks = <&rk817 1>;clock-names = "ext_clock";pinctrl-names = "default";pinctrl-0 = <&wifi_enable_h>;/** On the module itself this is one of these (depending* on the actual card populated):* - SDIO_RESET_L_WL_REG_ON* - PDN (power down when low)*/post-power-on-delay-ms = <200>;/*这个reg-on的gpio比较重要,这个一定要配置对,注意看上面的注释,低有效还是高有效*/reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;     /*这个是wifi唤醒角,这个看你自己的需求*/wireless-wlan {compatible = "wlan-platdata";rockchip,grf = <&grf>;wifi_chip_type = "ap6256";pinctrl-names = "default";pinctrl-0 = <&wifi_host_wake_irq>;WIFI,host_wake_irq = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;      status = "okay";};/*这是蓝牙的gpio配置*/wireless-bluetooth {compatible = "bluetooth-platdata";clocks = <&rk817 1>;clock-names = "ext_clock";//wifi-bt-power-toggle;uart_rts_gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_LOW>;        pinctrl-names = "default", "rts_gpio";pinctrl-0 = <&uart1m0_rtsn>,<&bt_reset_gpio>,<&bt_wake_gpio>,<&bt_irq_gpio>;pinctrl-1 = <&uart1_gpios>;BT,reset_gpio    = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;   BT,wake_gpio     = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; BT,wake_host_irq = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; status = "okay";};/*这是pinctrl的相关配置*/
&pinctrl {sdio-pwrseq {wifi_enable_h: wifi-enable-h {rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;    };};wireless-wlan {wifi_host_wake_irq: wifi-host-wake-irq {rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;    };};wireless-bluetooth {uart1_gpios: uart1-gpios {rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;   };bt_reset_gpio: bt-reset-gpio {rockchip,pins =<2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;  };bt_wake_gpio: bt-wake-gpio {rockchip,pins =<2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;    };bt_irq_gpio: bt-irq-gpio {rockchip,pins =<2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;            };};
};

这里其实就差不多配置完了,我这里wifi还是不能用,是因为这里还需要改一些

首先查看自己的wifi是否在自己的板卡里面有对应的模块

rk66_qls:/ # ifconfig -a
sit0      Link encap:IPv6-in-IPv4  NOARP  MTU:1480  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 TX bytes:0 lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0 inet6 addr: ::1/128 Scope: HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 TX bytes:0
/*这就是你的wifi模块*/
wlan0     Link encap:Ethernet  HWaddr 10:2c:6b:69:14:c2  Driver bcmsdh_sdmmcBROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 TX bytes:0

如果这里都没,那么先把这个弄出来,查看电压,时钟是否有输出,对应的通道是否打开,这个没出来一般是时钟有问题。

3)驱动改动了一部分

#if 0
#ifdef HW_OOBhost_oob_irq_flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE;irq_flags = rockchip_wifi_get_oob_irq_flag();if (irq_flags == 1)host_oob_irq_flags |= IORESOURCE_IRQ_HIGHLEVEL;else if (irq_flags == 0)host_oob_irq_flags |= IORESOURCE_IRQ_LOWLEVEL;elsepr_warn("%s: unknown oob irqflags !\n", __func__);
#elsehost_oob_irq_flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE | IORESOURCE_IRQ_SHAREABLE;
#endif
#endif/*将原来的注释掉,新增这些 记得在头文件定义*/
----------------------
#define HW_OOB_LOW_LEVEL
----------------------
#ifdef HW_OOB
#ifdef HW_OOB_LOW_LEVELhost_oob_irq_flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL | IORESOURCE_IRQ_SHAREABLE;
#elsehost_oob_irq_flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL | IORESOURCE_IRQ_SHAREABLE;
#endif
#elsehost_oob_irq_flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE | IORESOURCE_IRQ_SHAREABLE;
#endif

如果有一样的wifi模块可以直接把之前的驱动直接复制过去,主要就是这里不一样。
是在不行就去问之前的调试过的同事。没有什么比这个直接有效。

六、摄像头调试

首先查看i2c能否读取到摄像头的设备,
如果不能就看摄像头这边的电压是不是正确的,查看摄像头是否连接好,可以叫硬件的同事帮你看看,就是看看自己的设备树配置是否正确,对应的GPIO的是不是正确,对应的状态是不是正确的。
软硬联调。

追主要的就是查看开机的log信息
根据不同的信息去查看自己的报错,这样就很快定位错误的地点以一一排查。

下面几个命令可以帮助你查看是否有错误

dumpsys media.camera

查看是否有相机设备

== Service global info: ==Number of camera devices: 1
Number of normal camera devices: 1
Number of public camera devices visible to API1: 1Device 0 maps to "0"
Active Camera Clients:
[]
Allowed user IDs: 0== Camera service events log (most recent at top): ==11-26 02:31:53 : USER_SWITCH previous allowed user IDs: <None>, current allowed user IDs: 011-26 02:31:41 : ADD device 0, reason: (Device added)== Camera device 0 dynamic info: ==Device 0 is closed, no client instance
== Camera Provider HAL external/0 (v2.5, remote) static info: 0 devices: ==
== Camera Provider HAL legacy/0 (v2.5, remote) static info: 1 devices: ==
== Camera HAL device device@3.3/legacy/0 (v3.3) static information: ==Resource cost: 50Conflicting devices: NoneAPI1 info:Has a flash unit: falseFacing: FrontOrientation: 90API2 camera characteristics:Dumping camera metadata array: 71 / 71 entries, 2184 / 2184 bytes of extra data.Version: 1, Flags: 00000000android.colorCorrection.availableAberrationModes (00004): byte[1][0 ]android.control.aeAvailableAntibandingModes (10012): byte[4][0 1 2 3 ]android.control.aeAvailableModes (10013): byte[2][1 0 ]android.control.aeAvailableTargetFpsRanges (10014): int32[6][15 15 15 30 ][30 30 ]android.control.aeCompensationRange (10015): int32[2][-6 6 ]android.control.aeCompensationStep (10016): rational[1][(1 / 3) ]android.control.afAvailableModes (10017): byte[6][0 1 2 3 4 5 ]android.control.availableEffects (10018): byte[1][0 ]android.control.availableSceneModes (10019): byte[1][0 ]android.control.availableVideoStabilizationModes (1001a): byte[1][0 ]android.control.awbAvailableModes (1001b): byte[5][1 2 3 5 6 ]android.control.maxRegions (1001c): int32[3][1 0 1 ]android.control.aeLockAvailable (10024): byte[1][FALSE ]android.control.awbLockAvailable (10025): byte[1][TRUE ]

抓取底层数据流

v4l2-ctl --verbose -d /dev/video0 --set-fmt-video=width=2592,height=1944,pixelformat='NV12' --stream-mmap=4 --set-selection=target=crop,flags=0,top=0,left=0,width=2592,height=1944
log
VIDIOC_QUERYCAP: ok
VIDIOC_G_FMT: ok
VIDIOC_S_FMT: ok
Format Video Capture Multiplanar:Width/Height      : 2592/1944Pixel Format      : 'NV12'Field             : NoneNumber of planes  : 1Flags             : Colorspace        : DefaultTransfer Function : DefaultYCbCr Encoding    : DefaultQuantization      : Full RangePlane 0           :Bytes per Line : 2592Size Image     : 7558272
VIDIOC_G_SELECTION: ok
VIDIOC_S_SELECTION: ok
VIDIOC_REQBUFS: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_STREAMON: ok
idx: 0 seq:      0 bytesused: 7558272 ts: 1018.141298
idx: 1 seq:      1 bytesused: 7558272 ts: 1018.207808 delta: 66.510 ms
idx: 2 seq:      2 bytesused: 7558272 ts: 1018.274311 delta: 66.503 ms
idx: 3 seq:      3 bytesused: 7558272 ts: 1018.340820 delta: 66.509 ms
idx: 0 seq:      4 bytesused: 7558272 ts: 1018.407341 delta: 66.521 ms fps: 15.04
idx: 1 seq:      5 bytesused: 7558272 ts: 1018.473840 delta: 66.499 ms fps: 15.04
idx: 2 seq:      6 bytesused: 7558272 ts: 1018.540351 delta: 66.511 ms fps: 15.04
idx: 3 seq:      7 bytesused: 7558272 ts: 1018.606875 delta: 66.524 ms fps: 15.04
idx: 0 seq:      8 bytesused: 7558272 ts: 1018.673394 delta: 66.519 ms fps: 15.03
idx: 1 seq:      9 bytesused: 7558272 ts: 1018.739885 delta: 66.491 ms fps: 15.04
idx: 2 seq:     10 bytesused: 7558272 ts: 1018.806394 delta: 66.509 ms fps: 15.04
idx: 3 seq:     11 bytesused: 7558272 ts: 1018.872923 delta: 66.529 ms fps: 15.04
idx: 0 seq:     12 bytesused: 7558272 ts: 1018.939433 delta: 66.510 ms fps: 15.04
idx: 1 seq:     13 bytesused: 7558272 ts: 1019.005943 delta: 66.510 ms fps: 15.04
idx: 2 seq:     14 bytesused: 7558272 ts: 1019.072455 delta: 66.512 ms fps: 15.04
idx: 3 seq:     15 bytesused: 7558272 ts: 1019.139004 delta: 66.549 ms fps: 15.03
idx: 0 seq:     16 bytesused: 7558272 ts: 1019.205477 delta: 66.473 ms fps: 15.04
idx: 1 seq:     17 bytesused: 7558272 ts: 1019.271977 delta: 66.500 ms fps: 15.04
idx: 2 seq:     18 bytesused: 7558272 ts: 1019.338498 delta: 66.521 ms fps: 15.04
idx: 3 seq:     19 bytesused: 7558272 ts: 1019.404995 delta: 66.497 ms fps: 15.04
idx: 0 seq:     20 bytesused: 7558272 ts: 1019.471524 delta: 66.529 ms fps: 15.04
idx: 1 seq:     21 bytesused: 7558272 ts: 1019.538018 delta: 66.494 ms fps: 15.04
idx: 2 seq:     22 bytesused: 7558272 ts: 1019.604544 delta: 66.526 ms fps: 15.04
idx: 3 seq:     23 bytesused: 7558272 ts: 1019.671058 delta: 66.514 ms fps: 15.04
idx: 0 seq:     24 bytesused: 7558272 ts: 1019.737569 delta: 66.511 ms fps: 15.04
idx: 1 seq:     25 bytesused: 7558272 ts: 1019.804076 delta: 66.507 ms fps: 15.04
idx: 2 seq:     26 bytesused: 7558272 ts: 1019.870593 delta: 66.517 ms fps: 15.04
idx: 3 seq:     27 bytesused: 7558272 ts: 1019.937099 delta: 66.506 ms fps: 15.04
idx: 0 seq:     28 bytesused: 7558272 ts: 1020.003612 delta: 66.513 ms fps: 15.04
idx: 1 seq:     29 bytesused: 7558272 ts: 1020.070108 delta: 66.496 ms fps: 15.04
idx: 2 seq:     30 bytesused: 7558272 ts: 1020.136621 delta: 66.513 ms fps: 15.04
idx: 3 seq:     31 bytesused: 7558272 ts: 1020.203148 delta: 66.527 ms fps: 15.04
idx: 0 seq:     32 bytesused: 7558272 ts: 1020.269644 delta: 66.496 ms fps: 15.04
idx: 1 seq:     33 bytesused: 7558272 ts: 1020.336167 delta: 66.523 ms fps: 15.04
idx: 2 seq:     34 bytesused: 7558272 ts: 1020.402681 delta: 66.514 ms fps: 15.04
idx: 3 seq:     35 bytesused: 7558272 ts: 1020.469177 delta: 66.496 ms fps: 15.04
idx: 0 seq:     36 bytesused: 7558272 ts: 1020.535740 delta: 66.563 ms fps: 15.03
idx: 1 seq:     37 bytesused: 7558272 ts: 1020.602202 delta: 66.462 ms fps: 15.04
idx: 2 seq:     38 bytesused: 7558272 ts: 1020.668712 delta: 66.510 ms fps: 15.04
idx: 3 seq:     39 bytesused: 7558272 ts: 1020.735222 delta: 66.510 ms fps: 15.04
idx: 0 seq:     40 bytesused: 7558272 ts: 1020.801751 delta: 66.529 ms fps: 15.04
idx: 1 seq:     41 bytesused: 7558272 ts: 1020.868258 delta: 66.507 ms fps: 15.04
idx: 2 seq:     42 bytesused: 7558272 ts: 1020.934769 delta: 66.511 ms fps: 15.04
idx: 3 seq:     43 bytesused: 7558272 ts: 1021.001264 delta: 66.495 ms fps: 15.04
idx: 0 seq:     44 bytesused: 7558272 ts: 1021.067792 delta: 66.528 ms fps: 15.04
idx: 1 seq:     45 bytesused: 7558272 ts: 1021.134339 delta: 66.547 ms fps: 15.03
idx: 2 seq:     46 bytesused: 7558272 ts: 1021.200803 delta: 66.464 ms fps: 15.04
idx: 3 seq:     47 bytesused: 7558272 ts: 1021.267327 delta: 66.524 ms fps: 15.04
idx: 0 seq:     48 bytesused: 7558272 ts: 1021.333837 delta: 66.510 ms fps: 15.04
idx: 1 seq:     49 bytesused: 7558272 ts: 1021.400348 delta: 66.511 ms fps: 15.04
idx: 2 seq:     50 bytesused: 7558272 ts: 1021.466859 delta: 66.511 ms fps: 15.04
idx: 3 seq:     51 bytesused: 7558272 ts: 1021.533357 delta: 66.498 ms fps: 15.04

没有打印的可以看看摄像头时钟有数据没,我之前没调试出来是因为时钟没有数据流出。需要对应的时钟配置。
就先写到这里吧。

android的底层驱动调试心得相关推荐

  1. 基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得(二)-设备树刷厂商给的触摸屏固件...

    之前调试触摸屏的文章如下: 基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得_Bruce.yang的嵌入式之旅-CSDN博客 由于之前调触摸屏一直都对不上点,然后厂商又给了我新的驱动代码 ...

  2. android pppd流程,pppd调试心得.md

    描述 pppd是用于驱动3g模块的一种方式,其本质是和运营商APN协商,建立连接 其与运营商之间使用ppp协议,而用户在应用层使用系统提供的socket即可,从而忽略底层使用的时何种接口的设备,避免因 ...

  3. android 电容屏驱动调试

    一.总体架构 硬件部分:先看一个总体的图吧,其实触摸屏原理也比较简单,触摸屏和主控芯片间的联系,如下主要有三部分: 1.IIC部分,初始化gt8105的数据和传回主控制的坐标位置信息就是通过IIC这条 ...

  4. android系统底层驱动多个物理按键上报同一个键值给app层,app层如何区分

    如果设备有多个按键上报同一个键值给app层,app通过getScanCode()可以区分是哪个物理按键,得到的值就是linux驱动层的扫描码

  5. android 蓝牙 驱动,转个蓝牙修改帖--Android BCM4330 蓝牙BT驱动调试记录

    本帖最后由 旋律2014 于 2014-3-27 09:15 编辑 一.关于BT driver的移植: 1. Enablebluetootch in BoadConfig.mk BOARD_HAVE_ ...

  6. Android高通平台调试Camera驱动全纪录

    项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...

  7. Android深度探索(卷1)HAL与驱动开发 心得体会 第十章 嵌入式Linux的调用技术

    Android深度探索(卷1)HAL与驱动开发 心得体会 第十章  嵌入式Linux的调用技术 对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试.例如,设置断点,逐步跟踪代码. ...

  8. Android 开发之 ---- 底层驱动开发(一) 【转】

    转自:http://blog.csdn.net/jmq_0000/article/details/7372783 版权声明:本文为博主原创文章,未经博主允许不得转载. 驱动概述 说到 Android  ...

  9. 实现Android底层驱动开发并裁剪定制Android操作系统

    毕业论文 题   目实现Android底层驱动开发并裁剪定制Android操作系统 学   院电子信息与电气工程学院 姓   名牛xxx民 专   业电子信息科学与技术 学   号2012xxxxxx ...

最新文章

  1. WaitForSingleObject和WaitForMultipleObjects用法
  2. debian下编译安装poco
  3. Netty实战 IM即时通讯系统(四)服务端启动流程
  4. beego 使用github.com/astaxie/beego/session异常问题
  5. 【源码解读】Vue与ASP.NET Core WebAPI的集成
  6. win10资源管理器怎么打开_让你效率倍增的电脑神器,最强资源管理器增强工具「QTTabBar」...
  7. windbg-内存破坏实例分析
  8. 阿里巴巴测试相关内容
  9. DSOFramer 控件修改成功
  10. 分享几个音乐下载神器,一键下载全网音乐
  11. linux安装pyodbc模块,Linux下安装pyodbc报错 error: command 'gcc' failed with exit status 1
  12. Android人脸支付功能,android支付宝上刷脸支付的人脸识别技术
  13. SEO关键词之选取策略及具体方法
  14. 【译】通过多线程技术提高Android应用性能
  15. 第三周项目4:穷举法解决组合问题
  16. 30分钟完成pandas入门
  17. 乐观人生VS悲观人生
  18. pandas之dropna()的用法
  19. 腾讯企业邮箱开通过程中需要添加那些域名解析?
  20. 浣溪沙·残雪凝辉冷画屏

热门文章

  1. [Unity官方文档翻译]2D or 3D Projects Unity中2D和3D项目的区别
  2. 怎么将语音转为文字?不如试试这几个语音转文字软件app
  3. 孩子太不听话了,你会怎么办?
  4. 认养一头牛更新IPO招股书:十分依赖第三方,酸奶产品后劲乏力?
  5. python两个变量互换值编程_在编程中实现两个变量的值交换
  6. Android 安卓动画 补间动画 - 透明/渐变 动画
  7. 计算机话筒输入 接口指标,无线麦克风与电脑连接方法
  8. 监督学习、非监督学习、半监督学习
  9. 晶体生长计算机实验报告,晶体制作实验报告
  10. [线性代数]矩阵变换在几何中的体现:缩放、翻转、切片、旋转、平移矩阵;放射变换