1.模块升级功能

2.usb net修改
This commit is contained in:
payton 2023-07-18 11:53:05 +08:00
parent a74013e14f
commit a7dfbae0c0
9 changed files with 120 additions and 5 deletions

View File

@ -74,3 +74,4 @@ alias state='cardv sys state'
alias reset='cardv sys reset' alias reset='cardv sys reset'
alias mcupara='cardv sys mcupara' alias mcupara='cardv sys mcupara'
alias setusbmuxs='cardv sys setusbmuxs' alias setusbmuxs='cardv sys setusbmuxs'
alias 4gusbboot='cardv sys 4gusbboot'

View File

@ -237,7 +237,8 @@ UINT32 DrvKey_DetNormalKey(void)
BKG_PostEvent(NVTEVT_BKW_FORMAT_CARD); BKG_PostEvent(NVTEVT_BKW_FORMAT_CARD);
}else if((!cmdflag) && (0 == sf_get_fw_update()) && (time >= 10000)){ }else if((!cmdflag) && (0 == sf_get_fw_update()) && (time >= 10000)){
cmdflag = 1; cmdflag = 1;
}else if(++SendKeyCnt < SendKey_LessCnt){//shot key sf_set_module_update(1);
}else if((++SendKeyCnt < SendKey_LessCnt) && (!cmdflag)){//shot key
uiKeyCode |= FLGKEY_SHUTTER2; uiKeyCode |= FLGKEY_SHUTTER2;
}else { }else {
printf("[%s:%d] SendKeyCnt:%d KeyTestPressCnt:%d time: %dms\n", __FUNCTION__, __LINE__, SendKeyCnt, KeyTestPressCnt, time); printf("[%s:%d] SendKeyCnt:%d KeyTestPressCnt:%d time: %dms\n", __FUNCTION__, __LINE__, SendKeyCnt, KeyTestPressCnt, time);

View File

@ -369,6 +369,8 @@ extern BOOL GPIOMap_DetPoweroff(void);
#define GPIO_USB_MUX_S P_GPIO_2 //USB_MUX_S #define GPIO_USB_MUX_S P_GPIO_2 //USB_MUX_S
#define PAD_USB_MUX_S PAD_PIN_PGPIO2 #define PAD_USB_MUX_S PAD_PIN_PGPIO2
#define GPIO_4G_USB_BOOT S_GPIO_5 //4G_USB_BOOT
#define PAD_4G_USB_BOOT PAD_PIN_SGPIO5
//----------charge ic ---------------- //----------charge ic ----------------
#define GPIO_CHARGEIC_EN C_GPIO_4 #define GPIO_CHARGEIC_EN C_GPIO_4
#define GPIO_PIR_STATE C_GPIO_7 #define GPIO_PIR_STATE C_GPIO_7

View File

@ -249,6 +249,8 @@ SXCMD_ITEM("state %", sf_cmd_get_cam_state, "state")
SXCMD_ITEM("reset", sf_cmd_reset, "reset") SXCMD_ITEM("reset", sf_cmd_reset, "reset")
SXCMD_ITEM("mcupara", sf_cmd_mcu_power_on_para_get, "get mcu para") SXCMD_ITEM("mcupara", sf_cmd_mcu_power_on_para_get, "get mcu para")
SXCMD_ITEM("setusbmuxs", sf_cmd_usb_mux_s, "set usbmuxs") SXCMD_ITEM("setusbmuxs", sf_cmd_usb_mux_s, "set usbmuxs")
SXCMD_ITEM("4gusbboot", sf_cmd_cardv_4g_usb_boot, "set 4gusbboot")
#endif #endif

View File

@ -466,7 +466,7 @@ typedef enum sf_MCU_MESSAGE_TYPE_E
SF_MCU_CMD_MODULE_SLEEP = 0x1D00, SF_MCU_CMD_MODULE_SLEEP = 0x1D00,
SF_MCU_CMD_MCU_VER = 0x1E00, SF_MCU_CMD_MCU_VER = 0x1E00,
SF_MCU_CMD_MCU_RTC = 0x1F00, SF_MCU_CMD_MCU_RTC = 0x1F00,
SF_MCU_CMD_SET_MCU = 0x1F01,
}SF_MCU_MESSAGE_TYPE_E; }SF_MCU_MESSAGE_TYPE_E;
typedef enum sf_PARA_MESSAGE_TYPE_E typedef enum sf_PARA_MESSAGE_TYPE_E

View File

@ -55,6 +55,8 @@ SINT32 sf_app_para_check_stop(void);
SINT32 sf_app_battery_start(void); SINT32 sf_app_battery_start(void);
SINT32 sf_app_battery_stop(void); SINT32 sf_app_battery_stop(void);
SINT32 sf_app_data_ready_start(void); SINT32 sf_app_data_ready_start(void);
void sf_cmd_4g_usb_boot(void);
void sf_do_4g_upgrade_thread(void);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -746,6 +746,9 @@ static SINT32 sf_app_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf)
case SF_MCU_CMD_MCU_RTC: case SF_MCU_CMD_MCU_RTC:
sf_set_mcu_rtc_flag(1); sf_set_mcu_rtc_flag(1);
break; break;
case SF_MCU_CMD_SET_MCU:
sf_mcu_reg_set(pMessageBuf->arg2, pMessageBuf->arg3);
break;
default: default:
break; break;
} }
@ -767,6 +770,11 @@ static SINT32 sf_app_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf)
break; break;
case SF_PARA_CMD_MOUP: case SF_PARA_CMD_MOUP:
ModuleUpdating = pMessageBuf->arg2; ModuleUpdating = pMessageBuf->arg2;
MLOGD("ModuleUpdating = %d\n",ModuleUpdating);
if(ModuleUpdating){
sf_do_4g_upgrade_thread();
}
break; break;
case SF_PARA_CMD_IR_LED_STATUS: case SF_PARA_CMD_IR_LED_STATUS:
IsNightLedOn = pMessageBuf->arg2; IsNightLedOn = pMessageBuf->arg2;

View File

@ -164,9 +164,9 @@ SINT32 sf_USB_net_init(void) {
//{ sprintf(cmdStr, "/usr/bin/quectel-CM -n %d&", E_PDP_INDEX); } //{ sprintf(cmdStr, "/usr/bin/quectel-CM -n %d&", E_PDP_INDEX); }
} }
sprintf(cmdStr, "/usr/bin/quectel-CM &"); sprintf(cmdStr, "/usr/bin/quectel-CM -n %d&",A_PDP_INDEX);
for (UINT8 i = 0; i < 40; i++) { for (UINT8 i = 0; i < 40; i++) {
if (access("/dev/ttyUSB2", F_OK) == SF_SUCCESS) { if (access("/dev/ttyUSB3", F_OK) == SF_SUCCESS) {
ret = SF_SUCCESS; ret = SF_SUCCESS;
printf("usb net ko exist!\r\n"); printf("usb net ko exist!\r\n");
break; break;

View File

@ -38,7 +38,7 @@
#include "sf_commMng.h" #include "sf_commMng.h"
#include "sf_battery.h" #include "sf_battery.h"
#include "sf_common.h" #include "sf_common.h"
#include "IOCfg.h"
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
extern "C" { extern "C" {
@ -104,6 +104,13 @@ SF_THREAD_S DateReadyTskCfg =
.TskId = -1, .TskId = -1,
}; };
static SF_THREAD_S ModeuleUpgradeTskParam =
{
.IsRun = 0,
.TskId = -1,
};
SINT8 debugFlag = 0; SINT8 debugFlag = 0;
void app_poweroff_time_clear(void) void app_poweroff_time_clear(void)
@ -1115,3 +1122,95 @@ SINT32 sf_app_data_ready_start(void)
#endif #endif
#endif #endif
void sf_cmd_4g_usb_boot(void)
{
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
sf_hal_gpio_init(GPIO_4G_USB_BOOT, 1);
sf_hal_gpio_set(GPIO_4G_USB_BOOT, 1);
sf_mcu_reg_set(SF_MCU_RESET_MODULE, 0);
sleep(2);
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
}
static UINT32 sf_4g_update(void)
{
SF_CHAR cmdStr[128] = {0};
int ret = SF_FAILURE;
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
sprintf(cmdStr, "/usr/bin/DownloadCLI -p /dev/ttyACM0 -c /mnt/sd/EG915Q/cfg_ec618_usb.ini -B \"BL AP CP\" -r");
for (UINT8 i = 0; i < 40; i++) {
if (access("/dev/ttyACM0", F_OK) == SF_SUCCESS) {
ret = SF_SUCCESS;
printf("[%s:%d] ttyACM0 exist!\r\n", __FUNCTION__, __LINE__);
break;
}
else {
usleep(100 * 1000);
}
}
if (ret == SF_SUCCESS) {
ret = system(cmdStr);
if (sf_poweron_type_get() == SF_MCU_STARTUP_RING) {
sleep(2);
}
else {
sleep(5);
}
return ret;
}
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
return 1;
}
void* sf_sys_do_4g_upgrade(void *arg)
{
//int s32Ret = 0;
SLOGW("Begin to do 4G Upgrade!\n");
if(sf_is_enough_power_to_update() == FALSE)
{
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
}
else{
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1);
sf_set_module_update(1);
//sf_set_send_statu(TRUE);
sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE);
//BKG_PostEvent(NVTEVT_BKW_FW_UPDATE);
if(0 != sf_4g_update()){
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
}
else {
//SysResetFlag();
}
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0);
// sf_set_send_statu(FALSE);
sf_set_module_update(0);
sf_sleep_ms(1000);
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0);
}
ModeuleUpgradeTskParam.IsRun = 2;
SLOGW("Begin to do 4G Upgrade e\n");
return NULL;
}
void sf_do_4g_upgrade_thread(void)
{
printf("ModeuleUpgradeTskParam.IsRun:%d\n", ModeuleUpgradeTskParam.IsRun);
if(ModeuleUpgradeTskParam.IsRun == 2)
{
ModeuleUpgradeTskParam.IsRun = 0;
pthread_join(ModeuleUpgradeTskParam.TskId, NULL);
}
if(!ModeuleUpgradeTskParam.IsRun)
{
sf_cmd_4g_usb_boot();
pthread_create(&ModeuleUpgradeTskParam.TskId, NULL, sf_sys_do_4g_upgrade, NULL);
ModeuleUpgradeTskParam.IsRun = 1;
}
}