芯片上电初始化 跑到app_init(再apps.cpp文件里面)
代码断如下:
int app_init(void)
{
int nRet = 0;
struct nvrecord_env_t *nvrecord_env;
#ifdef POWER_ON_ENTER_TWS_PAIRING_ENABLED
bool need_check_key = false;
#else
bool need_check_key = true;
#endif
首次 读取flash里面的数据角色信息为IBRT_UNKNOW;触发app_ibrt_enter_limited_mode()接口左右耳组队,
代码断如下:
if(is_charging_poweron==false)
{
if(IBRT_UNKNOW == nvrecord_env->ibrt_mode.mode)
{
TRACE(0,"ibrt_ui_log:power on unknow mode");
app_ibrt_enter_limited_mode();
}
else
{
TRACE(1,"ibrt_ui_log:power on %d fetch out", nvrecord_env->ibrt_mode.mode);
app_ibrt_ui_event_entry(IBRT_FETCH_OUT_EVENT);
}
}
此时角色信息并未确立,通过触发app_start_tws_serching_direactly()该接口确定为IBRT_MASTER,并且会将角色信息写入flash,这样第一次组队流程完成,之后开机只需要调用 app_ibrt_ui_event_entry(IBRT_FETCH_OUT_EVENT);这个接口默认封装了TWS回连,蓝牙回连。
代码断如下:
case APP_KEY_EVENT_DOUBLECLICK:
TRACE(0,"double kill");
if(IBRT_UNKNOW==p_ibrt_ctrl->current_role)
{
app_start_tws_serching_direactly();
}
else