1.前言
在10.0的系统产品开发中,在产品关机的情况下,长按power电源键的情况下,会开启机器然后进入开机流程中,否则就不会开机 ,但是为了防误撞,误开机要求延长长按power电源键开机时间,所以就需要从kernel中来分析下长按开机的相关源码来实现 相关的功能
2.展讯平台长按power电源键开机时间修改的核心类
-
bsp\bootloader\u-boot15\common\cmd_cboot.c
-
bsp/bootloader/u-boot15/include/configs/ums512_2h10.h
3.展讯平台长按power电源键开机时间修改的核心功能分析和实现
在整个系统开机流程中,首选会从u_boot开始启动,我们从U-boot在上电后被SPL从NAND中拷贝至SDRAM, 然后执行board_init_f 跳转到board_init_r开始。 接下来就会启动cmd_cboot.c中的相关关于开机流程的 核心代码流程,会在这里判断当前的系统启动模式,android的启动模式会在u-boot中进行判断和处理 然后进入不同的启动模式中,接下来具体分析下相关的流程
3.1 cmd_cboot.c关于启动模式的相关判断
在展讯平台长按power电源键开机时间修改的核心功能的实现中,在通过上述的开机流程的简单分析, 得知在cmd_cboot.c中的相关源码分析得知,这里会根据当前的启动模式,来进入相关的系统模式, 接下来分析下相关功能
-
int boot_pwr_check(void)
-
{
-
static int total_cnt = 0;
-
-
if (!power_button_pressed())
-
total_cnt ++;