![在这里插入图片描述](https://img-blog.csdnimg.cn/3ba8370a840f42b4822081c2536456b7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAWVkyMDY1,size_20,color_FFFFFF,t_70,g_se,x_16)
1. 作为嵌入式新手,我以为长按recover键进入loader模式是默认配置,我们可以直接使用的,现在在rk3128上遇到
长按recover键不能进入loader模式的情况,一开始怀疑硬件的问题,后来烧写android7的镜像进行排查,发现硬件
是没有问题的。我在uboot里不断的追踪打印,这位博主写关于Recovery键的文章很详细给了我很大的帮助,十分的感谢他的分享。
(https:
2. 主要信息提示: 若dts中没有配置KEY_VOLUMEUP按键,程序返回KEY_NOT_EXIST;若dts中有配置KEY_VOLUMEUP按键,
在adc_key初始化时已经将按键信息假如到链表key_list中,这里found就会置1,程序继续执行。
\sdk-1.0\u-boot\arch\arm\mach-rockchip\boot_rkimg.c
__weak int rockchip_dnl_key_pressed(void)
{
#if defined(CONFIG_DM_KEY)
#ifdef CONFIG_CMD_ROCKUSB
printk("key_read=%d\n", key_read(KEY_VOLUMEUP));
return key_is_pressed(key_read(KEY_VOLUMEUP));
我这里读取的键值是 3 (KEY_NOT_EXIST)
参照:\sdk-1.0\u-boot\include\key.h
enum key_event {
KEY_PRESS_NONE,
KEY_PRESS_DOWN,
KEY_PRESS_LONG_DOWN,
KEY_NOT_EXIST,
};
3.知道了dts没有配置,但是我不知道应该怎么去配置它,询问供应商也两天了也没有得到回复,参照上面提到的博主文章里配置和修改,
读取的键值返回值为1,但是依然进入不了loader模式,在这里琢磨了很久,突然今天脑回路比较清醒了,源码默认支持loader模式的,
说明sdk没有问题,注意的是我应该怎么去正确的配置它,既然我不知道,那我就去搜关于rk3128的dts相关的配置,这个问题我卡的很久的,
之前并不是没有搜过,可能刚开始没有深入研究理解,就算搜到了我也不知道这个配置对应的是哪些模块吧。
4. 原网址:http:
很感谢这位作者提供的这边文章,让我的问题立马得到解决。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6cc8474a8f464c939499c541c6284e45.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAWVkyMDY1,size_20,color_FFFFFF,t_70,g_se,x_16)
dts 配置:
rk_key: rockchip-key {
compatible = "rockchip,key";
status = "okay";
io-channels = <&saradc 1>;
vol-up-key {
linux,code = <115>;
label = "volume up";
rockchip,adc_value = <1>;
};
vol-down-key {
linux,code = <114>;
label = "volume down";
rockchip,adc_value = <170>;
};
};