1.优化usb ko加载

This commit is contained in:
payton 2023-07-27 14:01:24 +08:00
parent da019bbfa3
commit 69075778f6
3 changed files with 59 additions and 4 deletions

View File

@ -58,6 +58,7 @@ SINT32 sf_app_data_ready_start(void);
void sf_cmd_4g_usb_boot(void);
void sf_do_4g_upgrade_thread(void);
UINT32 sf_4g_update(UINT8 *upFname);
SINT32 sf_app_load_ko_start(void);
#ifdef __cplusplus
#if __cplusplus
}

View File

@ -156,7 +156,7 @@ int main(int argc, char *argv[])
printf("[%s:%d] isUsb = %d isCard = %d isUpdate:%d\n", __FUNCTION__, __LINE__, isUsb,isCard,isUpdate);
if(!isUsb)
{
sf_load_ko();
sf_app_load_ko_start();
}
//sf_share_mem_file_init();
//sf_share_mem_customer_update();

View File

@ -112,7 +112,11 @@ static SF_THREAD_S ModeuleUpgradeTskParam =
.IsRun = 0,
.TskId = -1,
};
SF_THREAD_S UsbKoTskCfg =
{
.IsRun = 0,
.TskId = -1,
};
SINT8 debugFlag = 0;
@ -922,6 +926,8 @@ void sf_power_off(void)
void* sf_app_para_check_thread(void *arg)
{
SLOGI("thread run\n");
ParaTskCfg.IsRun = 1;
while(ParaTskCfg.IsRun)
{
if(TRUE == sf_get_para_check_flag()){
@ -949,7 +955,6 @@ SINT32 sf_app_para_check_start(void)
MLOGD("thread creat fail!\n");
return ret;
}
ParaTskCfg.IsRun = 1;
return SF_SUCCESS;
}
@ -1245,4 +1250,53 @@ void sf_do_4g_upgrade_thread(void)
pthread_create(&ModeuleUpgradeTskParam.TskId, NULL, sf_sys_do_4g_upgrade, NULL);
ModeuleUpgradeTskParam.IsRun = 1;
}
}
}
void* sf_app_load_ko_thread(void *arg)
{
SLOGI("thread run\n");
UsbKoTskCfg.IsRun = 1;
sf_load_ko();
UsbKoTskCfg.IsRun = 0;
SLOGI("thread end\n");
return NULL;
}
SINT32 sf_app_load_ko_start(void)
{
SINT32 ret = SF_FAILURE;
if(UsbKoTskCfg.IsRun)
{
SLOGE("thread has already run !!!\n");
return SF_FAILURE;
}
ret = pthread_create(&UsbKoTskCfg.TskId, NULL, sf_app_load_ko_thread, NULL);
if(ret != SF_SUCCESS)
{
MLOGD("thread creat fail!\n");
return ret;
}
return SF_SUCCESS;
}
SINT32 sf_app_load_ko_stop(void)
{
UINT16 ret = 0;
MLOGD("s\n");
if(0 == UsbKoTskCfg.IsRun){
return SF_SUCCESS;
}
UsbKoTskCfg.IsRun = 0;
ret = pthread_join(UsbKoTskCfg.TskId, NULL);
if(ret != SF_SUCCESS)
{
MLOGD("thread stop fail!\n");
return ret;
}
return SF_SUCCESS;
}