bug描述:
开机过程中,某些时候打开倒车摄像头会绿屏。
原理分析
系统在启动过程中,前十几秒由于系统没有进入android,所以是处在快速倒车过程中,此时的实现方式是直接获取摄像头数据然后给到显示系统去显示。进入android系统后,则是底层发送消息给到android负责启动某个app,所以快速倒车(linux内核负责)和正常倒车(android负责)比较明显的差异就是有没有倒车线(android是可以画出来倒车线的)
系统实现分析
首先看内核部分代码:
gpio_det: gpio-det {
compatible = "gpio-detection";
status = "okay";
pinctrl-0 = <&gpio3_b1 &gpio3_b2>;
pinctrl-names = "default";
car-reverse {
car-reverse-gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
linux,debounce-ms = <5>;
label = "car-reverse";
gpio,wakeup;
};
car-acc {
car-acc-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
linux,debounce-ms =