1.Linux启动时获取rtos下的电池格数

This commit is contained in:
payton 2024-01-03 16:51:47 +08:00
parent 637119f1ac
commit ac7c19a327
4 changed files with 24 additions and 3 deletions

View File

@ -332,11 +332,13 @@ UINT8 sf_cardv_check_power_on_mode(void)
char *pStrOtsOk = "Mode="; char *pStrOtsOk = "Mode=";
char *pStrUpFw = "UpFw="; char *pStrUpFw = "UpFw=";
char *pStrUpMcu = "mcu="; char *pStrUpMcu = "mcu=";
char *pStrSF = "sf=";
char *temp = NULL; char *temp = NULL;
UINT8 startup = 0; UINT8 startup = 0;
UINT8 UpFw = 0; UINT8 UpFw = 0;
UINT8 Upmcu = 0; UINT8 Upmcu = 0;
UINT8 sftmp = 0;
system("cat /proc/cmdline > /tmp/Mode.txt"); system("cat /proc/cmdline > /tmp/Mode.txt");
fp = fopen("/tmp/Mode.txt","r"); fp = fopen("/tmp/Mode.txt","r");
@ -371,7 +373,13 @@ UINT8 sf_cardv_check_power_on_mode(void)
sscanf(temp, "%hhd", &Upmcu); sscanf(temp, "%hhd", &Upmcu);
sf_set_mcu_update_flag(Upmcu); sf_set_mcu_update_flag(Upmcu);
} }
SLOGI("StartMode=%d,UpFw=%d Upmcu=%d\r\n", startup, UpFw, Upmcu); temp = strstr(pStrSrc, pStrSF);
if ( temp != NULL) {
temp += strlen("sf=");
sscanf(temp, "%hhd", &sftmp);
sf_cardv_battery_level_set(sftmp);
}
SLOGI("StartMode=%d,UpFw=%d Upmcu=%d sftmp=%d\r\n", startup, UpFw, Upmcu, sftmp);
free(pStrSrc); free(pStrSrc);
} }

View File

@ -205,4 +205,5 @@ void sf_set_net_generation(UINT8 value);
UINT32 sf_cardv_load_menu_info_start(void); UINT32 sf_cardv_load_menu_info_start(void);
BOOL sf_vos_perf_list_dump(unsigned char argc, char **argv); BOOL sf_vos_perf_list_dump(unsigned char argc, char **argv);
void sf_mem_free(void); void sf_mem_free(void);
void sf_cardv_battery_level_set(UINT32 val);
#endif #endif

View File

@ -2521,7 +2521,18 @@ UINT32 sf_cardv_battery_level_get(void)
return (UINT32)sf_LatestBattLevel; return (UINT32)sf_LatestBattLevel;
} }
/*************************************************
Function: sf_battery_level_set
Description: set battery level
Input: N/A
Output: N/A
Return: N/A
Others: N/A
*************************************************/
void sf_cardv_battery_level_set(UINT32 val)
{
sf_LatestBattLevel = val;
}
/************************************************* /*************************************************
Function: sf_battery_value_get Function: sf_battery_value_get
Description: get battery value x% Description: get battery value x%

View File

@ -25,6 +25,7 @@
#include "sys_fastboot.h" #include "sys_fastboot.h"
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
#include "sf_mcu.h" #include "sf_mcu.h"
#include "sf_battery.h"
#endif #endif
#define CFG_BOOTARG_EXTRA_MAX_LEN 0x100 /* for init.d script parsing by (dmesg | grep xxx) */ #define CFG_BOOTARG_EXTRA_MAX_LEN 0x100 /* for init.d script parsing by (dmesg | grep xxx) */
@ -854,7 +855,7 @@ static int make_bootargs(LINUXTMP_PARTITION *p_linuxtmp, unsigned int bootts_beg
// } // }
// } // }
snprintf(PowerOnModeStr, sizeof(PowerOnModeStr), "Mode=%d UpFw=%d mcu=%d",sf_get_power_on_mode(), sf_in_update() , sf_in_mcu_update()); snprintf(PowerOnModeStr, sizeof(PowerOnModeStr), "Mode=%d UpFw=%d mcu=%d sf=%d",sf_get_power_on_mode(), sf_in_update() , sf_in_mcu_update(), sf_battery_level_get());
linuxboot_set_extra_bootarg(PowerOnModeStr); linuxboot_set_extra_bootarg(PowerOnModeStr);
#endif #endif
p_linuxtmp->bootargs_addr = p_linuxtmp->tmp_curr; p_linuxtmp->bootargs_addr = p_linuxtmp->tmp_curr;