充电功能
流程
rk_board_late_init()
├── 有 USB → show_charge_logo()
│ ├── 初始化 GPIO0_A2(输出低) / A3(输入)
│ ├── 轮询 5 秒间隔:
│ │ ├── USB 拔出 → 退出循环(硬件掉电)
│ │── 按键按下 → 进入 2 秒等待
│ │ ├── 2 秒内松开 → 取消,继续轮询
│ │ ├── 2 秒内 USB 拔出 → 退出
│ │ └── 按住满 2 秒 → 拉高 A2 → 启动内核
│ │ └── 充电状态变化 → 打印
│
└── 无 USB → return 0(正常启动内核)
需要修改以下文件
/uboot/board/rockchip/evb_rv1106/evb_rv1106.c
添加测试
int rk_board_init(void) //一般不用这个,这个函数只做一些简单的功能
{
printf("\n[test] =====================================\n");
printf("[test] U-Boot 已修改!\n");
printf("[test] =====================================\n\n");
return 0;
}
int rk_board_late_init(void) //用这个
{
printf("\n[test] =====================================\n");
printf("[test] U-Boot 已修改!\n");
printf("[test] =====================================\n\n");
return 0;
}