From 69075778f6e773fae949823281620dbf181da20f Mon Sep 17 00:00:00 2001 From: payton Date: Thu, 27 Jul 2023 14:01:24 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96usb=20ko=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/include/sf_system.h | 1 + .../source/sf_app/code/source/app/sf_app.c | 2 +- .../source/sf_app/code/source/app/sf_system.c | 60 ++++++++++++++++++- 3 files changed, 59 insertions(+), 4 deletions(-) diff --git a/code/application/source/sf_app/code/include/sf_system.h b/code/application/source/sf_app/code/include/sf_system.h index 16eac7cdf..06b0821e7 100644 --- a/code/application/source/sf_app/code/include/sf_system.h +++ b/code/application/source/sf_app/code/include/sf_system.h @@ -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 } diff --git a/code/application/source/sf_app/code/source/app/sf_app.c b/code/application/source/sf_app/code/source/app/sf_app.c index f126cc37e..f8209bb8c 100644 --- a/code/application/source/sf_app/code/source/app/sf_app.c +++ b/code/application/source/sf_app/code/source/app/sf_app.c @@ -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(); diff --git a/code/application/source/sf_app/code/source/app/sf_system.c b/code/application/source/sf_app/code/source/app/sf_system.c index de0f7eebb..3e17496a0 100644 --- a/code/application/source/sf_app/code/source/app/sf_system.c +++ b/code/application/source/sf_app/code/source/app/sf_system.c @@ -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; } -} \ No newline at end of file +} + + +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; +}