Merge branch 'Branch_S550_Fast_Emmc' of gitlab.sifar.tech:linux-em-group/s530-ntk into Branch_S550_Fast_Emmc
This commit is contained in:
commit
92ab1842a3
|
@ -165,6 +165,7 @@ int nvt_process_rootfs_format(void);
|
||||||
int nvt_check_is_fw_update_fw(void);
|
int nvt_check_is_fw_update_fw(void);
|
||||||
int nvt_check_is_fomat_rootfs(void);
|
int nvt_check_is_fomat_rootfs(void);
|
||||||
int nvt_fs_set_blk_dev(void);
|
int nvt_fs_set_blk_dev(void);
|
||||||
|
int nvt_fs_set_blk_dev_emmc(void);
|
||||||
int nvt_process_sys_recovery(void);
|
int nvt_process_sys_recovery(void);
|
||||||
int nvt_flash_mark_bad(void);
|
int nvt_flash_mark_bad(void);
|
||||||
void nvt_shminfo_init(void);
|
void nvt_shminfo_init(void);
|
||||||
|
|
|
@ -47,6 +47,7 @@
|
||||||
((((UINT32)(data)) & 0x00FF0000) >> 8) | \
|
((((UINT32)(data)) & 0x00FF0000) >> 8) | \
|
||||||
((((UINT32)(data)) & 0xFF000000) >> 24)) ///< Swap [31:24] with [7:0] and [23:16] with [15:8].
|
((((UINT32)(data)) & 0xFF000000) >> 24)) ///< Swap [31:24] with [7:0] and [23:16] with [15:8].
|
||||||
static UINT32 g_LcdBl = TRUE;
|
static UINT32 g_LcdBl = TRUE;
|
||||||
|
static int curr_device = 1;
|
||||||
|
|
||||||
static int nvt_update_partitions(unsigned int addr, unsigned int size, u64 part_off, u64 PartitionSize)
|
static int nvt_update_partitions(unsigned int addr, unsigned int size, u64 part_off, u64 PartitionSize)
|
||||||
{
|
{
|
||||||
|
@ -2347,16 +2348,39 @@ int nvt_fw_update(bool firm_upd_firm)
|
||||||
} else if (p_shminfo->boot.LdCtrl2 & LDCF_BOOT_FLASH) {
|
} else if (p_shminfo->boot.LdCtrl2 & LDCF_BOOT_FLASH) {
|
||||||
return ERR_NVT_UPDATE_NO_NEED;
|
return ERR_NVT_UPDATE_NO_NEED;
|
||||||
} else {
|
} else {
|
||||||
if (nvt_fs_set_blk_dev())
|
|
||||||
return ERR_NVT_UPDATE_OPENFAILED;
|
/*added for emmc upgrade by greg*/
|
||||||
else {
|
extern struct mmc *init_mmc_device(int dev, bool force_init);
|
||||||
if (fs_size(get_nvt_bin_name(NVT_BIN_NAME_TYPE_FW), &size) < 0) {
|
struct mmc *mmc;
|
||||||
return ERR_NVT_UPDATE_NO_NEED;
|
mmc = init_mmc_device(curr_device, false);
|
||||||
}
|
if (!mmc) {
|
||||||
}
|
printf("Get eMMc device failed\n\r");
|
||||||
|
return ERR_NVT_UPDATE_OPENFAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef int (*set_blk_dev_cb)(void);
|
||||||
|
set_blk_dev_cb nvt_fs_set_blk_dev_cb = NULL;
|
||||||
|
|
||||||
|
if(nvt_fs_set_blk_dev() == 0 && fs_exists(get_nvt_bin_name(NVT_BIN_NAME_TYPE_FW))){
|
||||||
|
printf("***found fw bin in sd card******\n");
|
||||||
|
nvt_fs_set_blk_dev_cb = nvt_fs_set_blk_dev;
|
||||||
|
}
|
||||||
|
else if(nvt_fs_set_blk_dev_emmc() == 0 && fs_exists(get_nvt_bin_name(NVT_BIN_NAME_TYPE_FW))){
|
||||||
|
|
||||||
|
printf("***found fw bin in emmc*******\n");
|
||||||
|
nvt_fs_set_blk_dev_cb = nvt_fs_set_blk_dev_emmc;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return ERR_NVT_UPDATE_OPENFAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nvt_fs_set_blk_dev_cb() || fs_size(get_nvt_bin_name(NVT_BIN_NAME_TYPE_FW), &size) < 0) {
|
||||||
|
return ERR_NVT_UPDATE_NO_NEED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
while (retry < UPDATE_ALL_IN_ONE_RETRY_TIMES) {
|
while (retry < UPDATE_ALL_IN_ONE_RETRY_TIMES) {
|
||||||
if (nvt_fs_set_blk_dev())
|
if (nvt_fs_set_blk_dev_cb())
|
||||||
return ERR_NVT_UPDATE_OPENFAILED;
|
return ERR_NVT_UPDATE_OPENFAILED;
|
||||||
else {
|
else {
|
||||||
#ifdef CONFIG_NVT_DISPLAY_BAR_FWUPDATE //uboot config
|
#ifdef CONFIG_NVT_DISPLAY_BAR_FWUPDATE //uboot config
|
||||||
|
|
|
@ -426,6 +426,17 @@ int nvt_fs_set_blk_dev(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*added for emmc upgrade by greg*/
|
||||||
|
int nvt_fs_set_blk_dev_emmc(void)
|
||||||
|
{
|
||||||
|
if (fs_set_blk_dev("mmc", "1:1", FS_TYPE_FAT)){
|
||||||
|
printf("MMC interface configure failed\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_NVT_SPI_NONE
|
#ifndef CONFIG_NVT_SPI_NONE
|
||||||
int nvt_flash_mark_bad(void)
|
int nvt_flash_mark_bad(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -158,18 +158,21 @@ static int nvt_handle_fw_abin(void)
|
||||||
char buf[512] = {0};
|
char buf[512] = {0};
|
||||||
int ota_upgrade_sts = 0;
|
int ota_upgrade_sts = 0;
|
||||||
int is_ota = 0;
|
int is_ota = 0;
|
||||||
|
|
||||||
if(WDT_OTA_GET_STS() == WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LOADER_DETECTING_FW))
|
if(WDT_OTA_GET_STS() == WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LOADER_DETECTING_FW))
|
||||||
{
|
{
|
||||||
is_ota = 1;
|
is_ota = 1;
|
||||||
}
|
}
|
||||||
else if(WDT_OTA_GET_STS() == WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LOADER_DETECTING_FW_AUTO))
|
else if(WDT_OTA_GET_STS() == WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LOADER_DETECTING_FW_AUTO))
|
||||||
{
|
{
|
||||||
is_ota = 1;
|
is_ota = 1;
|
||||||
#ifdef CONFIG_NVT_DISPLAY_BAR_FWUPDATE //uboot config
|
#ifdef CONFIG_NVT_DISPLAY_BAR_FWUPDATE //uboot config
|
||||||
sf_display_lcd_bl(0);
|
sf_display_lcd_bl(0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("is_ota: %d\r\n", is_ota);
|
printf("is_ota: %d\r\n", is_ota);
|
||||||
|
|
||||||
/* To handle firmware update */
|
/* To handle firmware update */
|
||||||
ret = nvt_fw_update(false);
|
ret = nvt_fw_update(false);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
@ -396,7 +399,7 @@ static int nvt_handle_fw_auto(void)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
} else if (nvt_detect_fw_tbin()) {
|
} else if (nvt_detect_fw_tbin()) {
|
||||||
ret = nvt_handle_fw_tbin();
|
ret = nvt_handle_fw_tbin();
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -425,7 +428,7 @@ static int nvt_handle_fw_auto(void)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
} else {
|
} else {
|
||||||
ret = nvt_handle_fw_abin();
|
ret = nvt_handle_fw_abin();
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
#define SDIO2_MASK 0x7FF0000
|
#define SDIO2_MASK 0x7FF0000
|
||||||
#else
|
#else
|
||||||
#define SDIO_MASK 0x7FF
|
#define SDIO_MASK 0x7FF
|
||||||
#define SDIO2_MASK 0x7FF000
|
#define SDIO2_MASK 0x7FF0000 //from 0x7FF000 to 0x7FF0000 for emmc speed added by greg
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_NVT_FPGA_EMULATION
|
#ifdef CONFIG_NVT_FPGA_EMULATION
|
||||||
|
@ -383,7 +383,7 @@ void pll_set_sdioclock_rate(int id, u32 value)
|
||||||
regdata |= value;
|
regdata |= value;
|
||||||
} else {
|
} else {
|
||||||
regdata &= ~SDIO2_MASK;
|
regdata &= ~SDIO2_MASK;
|
||||||
regdata |= value << 12;
|
regdata |= value << 16;//Improve the read and write speed of the emmc added by greg
|
||||||
}
|
}
|
||||||
|
|
||||||
if (id != SDIO_HOST_ID_3)
|
if (id != SDIO_HOST_ID_3)
|
||||||
|
|
|
@ -483,7 +483,14 @@ INT32 System_OnShutdown(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
if(sf_get_mode_flag() && SHOW_POWER_OFF == displayShow)
|
if(sf_get_mode_flag() && SHOW_POWER_OFF == displayShow)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
if (FALSE == isMenu)
|
if (!sf_cardv_battery_level_get())
|
||||||
|
{
|
||||||
|
Display_ShowSplash(SPLASH_POWEROFF);
|
||||||
|
SwTimer_DelayMs(500);
|
||||||
|
GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1
|
||||||
|
GxDisplay_Flush(LAYER_OSD1);
|
||||||
|
}
|
||||||
|
else if (FALSE == isMenu)
|
||||||
{
|
{
|
||||||
GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1
|
GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1
|
||||||
GxDisplay_Flush(LAYER_OSD1);
|
GxDisplay_Flush(LAYER_OSD1);
|
||||||
|
|
Binary file not shown.
|
@ -5,6 +5,118 @@
|
||||||
"widgets": [
|
"widgets": [
|
||||||
{
|
{
|
||||||
"auto size": true,
|
"auto size": true,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"align": "Left",
|
||||||
|
"class": "lv_label",
|
||||||
|
"click": false,
|
||||||
|
"drag": false,
|
||||||
|
"event callback": "",
|
||||||
|
"font type": "Font_Type2",
|
||||||
|
"geometry": {
|
||||||
|
"height": 24,
|
||||||
|
"width": 121,
|
||||||
|
"x": 99,
|
||||||
|
"y": 110
|
||||||
|
},
|
||||||
|
"hidden": true,
|
||||||
|
"locked": false,
|
||||||
|
"long mode": "Expand",
|
||||||
|
"name": "label_2",
|
||||||
|
"recolor": false,
|
||||||
|
"string id": "None",
|
||||||
|
"styles": [
|
||||||
|
{
|
||||||
|
"Text": {
|
||||||
|
"text_color": "0xffffff",
|
||||||
|
"text_font": "SF-UI-Text-Bold 20 1bpp",
|
||||||
|
"text_sel_bg_color": "0x00b495",
|
||||||
|
"text_sel_color": "0x3c3c3c"
|
||||||
|
},
|
||||||
|
"part": 0,
|
||||||
|
"state": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 6
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "Low Battery",
|
||||||
|
"widget": "Label"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"auto size": true,
|
||||||
|
"class": "lv_img",
|
||||||
|
"click": false,
|
||||||
|
"drag": false,
|
||||||
|
"event callback": "",
|
||||||
|
"geometry": {
|
||||||
|
"height": 40,
|
||||||
|
"width": 48,
|
||||||
|
"x": 268,
|
||||||
|
"y": 6
|
||||||
|
},
|
||||||
|
"hidden": true,
|
||||||
|
"locked": false,
|
||||||
|
"name": "image_2",
|
||||||
|
"offset": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0
|
||||||
|
},
|
||||||
|
"source": "sf_Battery_L0",
|
||||||
|
"styles": [
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"part": 0,
|
||||||
|
"state": 6
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"widget": "Image"
|
||||||
|
}
|
||||||
|
],
|
||||||
"class": "lv_img",
|
"class": "lv_img",
|
||||||
"click": false,
|
"click": false,
|
||||||
"drag": false,
|
"drag": false,
|
||||||
|
|
|
@ -13,6 +13,8 @@ lv_obj_t* image_1_scr_uiflowclose;
|
||||||
lv_obj_t* label_tips_scr_uiflowclose;
|
lv_obj_t* label_tips_scr_uiflowclose;
|
||||||
lv_obj_t* image_closing_scr_uiflowclose;
|
lv_obj_t* image_closing_scr_uiflowclose;
|
||||||
lv_obj_t* label_1_scr_uiflowclose;
|
lv_obj_t* label_1_scr_uiflowclose;
|
||||||
|
lv_obj_t* label_2_scr_uiflowclose;
|
||||||
|
lv_obj_t* image_2_scr_uiflowclose;
|
||||||
|
|
||||||
lv_obj_t* UIFlowClose_create(){
|
lv_obj_t* UIFlowClose_create(){
|
||||||
lv_obj_t *parent = lv_plugin_scr_create();
|
lv_obj_t *parent = lv_plugin_scr_create();
|
||||||
|
@ -249,5 +251,114 @@ lv_obj_t* UIFlowClose_create(){
|
||||||
label_1_scr_uiflowclose = label_1;
|
label_1_scr_uiflowclose = label_1;
|
||||||
|
|
||||||
|
|
||||||
|
static lv_style_t label_2_s0;
|
||||||
|
lv_style_init(&label_2_s0);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
lv_style_set_text_font(&label_2_s0,LV_STATE_DEFAULT,&sf_ui_text_bold_20_1bpp);
|
||||||
|
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
lv_obj_t *label_2 = lv_label_create(image_1, NULL);
|
||||||
|
lv_obj_set_hidden(label_2, true);
|
||||||
|
lv_obj_set_click(label_2, false);
|
||||||
|
lv_obj_set_drag(label_2, false);
|
||||||
|
lv_plugin_label_allocate_ext_attr(label_2);
|
||||||
|
lv_label_set_text(label_2,"Low Battery");
|
||||||
|
lv_plugin_label_allocate_ext_attr(label_2);
|
||||||
|
lv_plugin_label_set_font_type(label_2, LV_PLUGIN_LANGUAGE_FONT_TYPE_2);
|
||||||
|
lv_obj_set_pos(label_2, 99, 110);
|
||||||
|
lv_obj_set_size(label_2, 121, 24);
|
||||||
|
lv_obj_add_style(label_2, 0, &label_2_s0);
|
||||||
|
|
||||||
|
label_2_scr_uiflowclose = label_2;
|
||||||
|
|
||||||
|
|
||||||
|
static lv_style_t image_2_s0;
|
||||||
|
lv_style_init(&image_2_s0);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_2_s0, LV_STATE_DEFAULT, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_2_s0, LV_STATE_CHECKED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_2_s0, LV_STATE_FOCUSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_2_s0, LV_STATE_EDITED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_2_s0, LV_STATE_HOVERED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_2_s0, LV_STATE_PRESSED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&image_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&image_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&image_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_outline_color(&image_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_image_recolor(&image_2_s0, LV_STATE_DISABLED, color);
|
||||||
|
lv_obj_t *image_2 = lv_img_create(image_1, NULL);
|
||||||
|
lv_obj_set_hidden(image_2, true);
|
||||||
|
lv_obj_set_click(image_2, false);
|
||||||
|
lv_obj_set_drag(image_2, false);
|
||||||
|
lv_obj_set_pos(image_2, 268, 6);
|
||||||
|
lv_obj_set_size(image_2, 48, 40);
|
||||||
|
lv_img_set_src(image_2, &sf_battery_l0);
|
||||||
|
lv_obj_add_style(image_2, 0, &image_2_s0);
|
||||||
|
|
||||||
|
image_2_scr_uiflowclose = image_2;
|
||||||
|
|
||||||
|
|
||||||
return parent;
|
return parent;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,8 @@ extern lv_obj_t* image_1_scr_uiflowclose;
|
||||||
extern lv_obj_t* label_tips_scr_uiflowclose;
|
extern lv_obj_t* label_tips_scr_uiflowclose;
|
||||||
extern lv_obj_t* image_closing_scr_uiflowclose;
|
extern lv_obj_t* image_closing_scr_uiflowclose;
|
||||||
extern lv_obj_t* label_1_scr_uiflowclose;
|
extern lv_obj_t* label_1_scr_uiflowclose;
|
||||||
|
extern lv_obj_t* label_2_scr_uiflowclose;
|
||||||
|
extern lv_obj_t* image_2_scr_uiflowclose;
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* GLOBAL PROTOTYPES
|
* GLOBAL PROTOTYPES
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#define UPDATE_TIMEER_MS 200
|
#define UPDATE_TIMEER_MS 200
|
||||||
|
#define LOW_BATTERY_TIMEER_MS 500
|
||||||
static lv_task_t* update_timer = NULL;
|
static lv_task_t* update_timer = NULL;
|
||||||
static lv_group_t* gp = NULL;
|
static lv_group_t* gp = NULL;
|
||||||
static DISPLAY_FINAL_E gPowerOff = DISPLAY_FINAL_END;
|
static DISPLAY_FINAL_E gPowerOff = DISPLAY_FINAL_END;
|
||||||
|
@ -26,30 +27,60 @@ static void task_update_timer_cb(lv_task_t* task)
|
||||||
{
|
{
|
||||||
static short closing_index = 0;
|
static short closing_index = 0;
|
||||||
static unsigned int time_ms = 3 * 1000;
|
static unsigned int time_ms = 3 * 1000;
|
||||||
lv_plugin_res_id res[] = {
|
if (DISPLAY_FINAL_LOW_BATTERY == gPowerOff)
|
||||||
|
{
|
||||||
|
time_ms -= LOW_BATTERY_TIMEER_MS;
|
||||||
|
closing_index ++;
|
||||||
|
if (time_ms == 0)
|
||||||
|
{
|
||||||
|
printf("task_update_timer_cb gPowerOff = %d\n", gPowerOff);
|
||||||
|
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_BATT_EMPTY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lv_plugin_res_id res[] = {
|
||||||
LV_PLUGIN_IMG_ID_SF_BUSY_1,
|
LV_PLUGIN_IMG_ID_SF_BUSY_1,
|
||||||
LV_PLUGIN_IMG_ID_SF_BUSY_2,
|
LV_PLUGIN_IMG_ID_SF_BUSY_2,
|
||||||
LV_PLUGIN_IMG_ID_SF_BUSY_3,
|
LV_PLUGIN_IMG_ID_SF_BUSY_3,
|
||||||
LV_PLUGIN_IMG_ID_SF_BUSY_4
|
LV_PLUGIN_IMG_ID_SF_BUSY_4
|
||||||
};
|
};
|
||||||
closing_index = closing_index % 4;
|
closing_index = closing_index % 4;
|
||||||
lv_plugin_img_set_src(image_closing_scr_uiflowclose, res[closing_index]);
|
lv_plugin_img_set_src(image_closing_scr_uiflowclose, res[closing_index]);
|
||||||
lv_label_set_text_fmt(label_1_scr_uiflowclose, "%ds", time_ms / 1000);
|
lv_label_set_text_fmt(label_1_scr_uiflowclose, "%ds", time_ms / 1000);
|
||||||
time_ms -= UPDATE_TIMEER_MS;
|
time_ms -= UPDATE_TIMEER_MS;
|
||||||
closing_index ++;
|
closing_index ++;
|
||||||
if (time_ms == 0)
|
if (time_ms == 0)
|
||||||
{
|
{
|
||||||
printf("task_update_timer_cb gPowerOff = %d\n", gPowerOff);
|
printf("task_update_timer_cb gPowerOff = %d\n", gPowerOff);
|
||||||
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 2, APP_POWER_OFF_APO, gPowerOff);
|
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 2, APP_POWER_OFF_APO, gPowerOff);
|
||||||
if(update_timer){
|
if(update_timer){
|
||||||
lv_task_del(update_timer);
|
lv_task_del(update_timer);
|
||||||
update_timer = NULL;
|
update_timer = NULL;
|
||||||
// update_selftimer();
|
// update_selftimer();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
void OpenClosingScreen(const DISPLAY_FINAL_E powerOff)
|
void OpenClosingScreen(const DISPLAY_FINAL_E powerOff)
|
||||||
{
|
{
|
||||||
|
if (DISPLAY_FINAL_LOW_BATTERY == powerOff)
|
||||||
|
{
|
||||||
|
printf("[%s, %d]DISPLAY_FINAL_LOW_BATTERY\n", __FUNCTION__, __LINE__);
|
||||||
|
lv_obj_set_hidden(image_closing_scr_uiflowclose, true);
|
||||||
|
lv_obj_set_hidden(label_tips_scr_uiflowclose, true);
|
||||||
|
lv_obj_set_hidden(label_2_scr_uiflowclose, false);
|
||||||
|
lv_obj_set_hidden(image_2_scr_uiflowclose, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lv_obj_set_hidden(image_closing_scr_uiflowclose, false);
|
||||||
|
lv_obj_set_hidden(label_tips_scr_uiflowclose, false);
|
||||||
|
lv_obj_set_hidden(label_2_scr_uiflowclose, true);
|
||||||
|
lv_obj_set_hidden(image_2_scr_uiflowclose, true);
|
||||||
|
}
|
||||||
gPowerOff = powerOff;
|
gPowerOff = powerOff;
|
||||||
lv_plugin_scr_open(UIFlowClose, NULL);
|
lv_plugin_scr_open(UIFlowClose, NULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
typedef enum {
|
typedef enum {
|
||||||
DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF = 0,
|
DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF = 0,
|
||||||
DISPLAY_FINAL_SHOW_POWER_OFF,
|
DISPLAY_FINAL_SHOW_POWER_OFF,
|
||||||
DISPLAY_FINAL_END
|
DISPLAY_FINAL_END,
|
||||||
|
DISPLAY_FINAL_LOW_BATTERY
|
||||||
} DISPLAY_FINAL_E;
|
} DISPLAY_FINAL_E;
|
||||||
void OpenClosingScreen(const DISPLAY_FINAL_E powerOff);
|
void OpenClosingScreen(const DISPLAY_FINAL_E powerOff);
|
||||||
#endif /*UIFLOW_CLOSE_EVENT_CALLBACK_H*/
|
#endif /*UIFLOW_CLOSE_EVENT_CALLBACK_H*/
|
|
@ -614,6 +614,19 @@ void UIFlowMenuCommonConfirmEventCallback(lv_obj_t* obj, lv_event_t event)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case LV_USER_EVENT_NVTMSG:
|
||||||
|
{
|
||||||
|
const LV_USER_EVENT_NVTMSG_DATA* msg = (const LV_USER_EVENT_NVTMSG_DATA*)lv_event_get_data();
|
||||||
|
if (msg->event == NVTEVT_BATTERY_LOW)
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "UIFlowLVGL/UIFlowLVGL.h"
|
#include "UIFlowLVGL/UIFlowLVGL.h"
|
||||||
#include "UIApp/Network/UIAppNetwork.h"
|
#include "UIApp/Network/UIAppNetwork.h"
|
||||||
#include "UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h"
|
#include "UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h"
|
||||||
|
#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h"
|
||||||
#include <kwrap/debug.h>
|
#include <kwrap/debug.h>
|
||||||
#include <regex.h>
|
#include <regex.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -134,10 +135,21 @@ static int is_camera_fw_upgrade(void)
|
||||||
//char font = System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? 'B' : 'A';
|
//char font = System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? 'B' : 'A';
|
||||||
//char fw_file[64] = {'\0'};
|
//char fw_file[64] = {'\0'};
|
||||||
//sprintf((char *)fw_file, "%c%s", font, FW_UPDATE_NAME);
|
//sprintf((char *)fw_file, "%c%s", font, FW_UPDATE_NAME);
|
||||||
hFile = FileSys_OpenFile(FW_UPDATE_NAME, FST_OPEN_READ);
|
hFile = FileSys_OpenFile("B:\\FW98565A.bin", FST_OPEN_READ);
|
||||||
//hFile = FileSys_OpenFile(fw_file, FST_OPEN_READ);
|
//hFile = FileSys_OpenFile(fw_file, FST_OPEN_READ);
|
||||||
//if (gBattery < 40 || hFile == NULL)
|
//if (gBattery < 40 || hFile == NULL)
|
||||||
if (hFile == NULL)
|
if (hFile == NULL)
|
||||||
|
{
|
||||||
|
printf("[%s:%d]emmc no update file\n", __FUNCTION__, __LINE__);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FileSys_CloseFile(hFile);
|
||||||
|
return UPGRADABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
hFile = FileSys_OpenFile(FW_UPDATE_NAME, FST_OPEN_READ);
|
||||||
|
if (hFile == NULL)
|
||||||
{
|
{
|
||||||
printf("[%s:%d]sd card no update file\n", __FUNCTION__, __LINE__);
|
printf("[%s:%d]sd card no update file\n", __FUNCTION__, __LINE__);
|
||||||
return NOT_UPGRADABLE;
|
return NOT_UPGRADABLE;
|
||||||
|
@ -1203,6 +1215,18 @@ void UIFlowMenuCommonItemEventCallback(lv_obj_t* obj, lv_event_t event)
|
||||||
lv_indev_wait_release(lv_indev_get_act());
|
lv_indev_wait_release(lv_indev_get_act());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case LV_USER_EVENT_NVTMSG:
|
||||||
|
{
|
||||||
|
const LV_USER_EVENT_NVTMSG_DATA* msg = (const LV_USER_EVENT_NVTMSG_DATA*)lv_event_get_data();
|
||||||
|
if (msg->event == NVTEVT_BATTERY_LOW)
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "UIApp/Network/UIAppNetwork.h"
|
#include "UIApp/Network/UIAppNetwork.h"
|
||||||
#include <kwrap/debug.h>
|
#include <kwrap/debug.h>
|
||||||
#include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h"
|
#include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h"
|
||||||
|
#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h"
|
||||||
#include "UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h"
|
#include "UIFlowLVGL/UIFlowMenuCommonItem/MenuId.h"
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
#include <sf_inc.h>
|
#include <sf_inc.h>
|
||||||
|
@ -1899,6 +1900,18 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event)
|
||||||
lv_indev_wait_release(lv_indev_get_act());
|
lv_indev_wait_release(lv_indev_get_act());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case LV_USER_EVENT_NVTMSG:
|
||||||
|
{
|
||||||
|
const LV_USER_EVENT_NVTMSG_DATA* msg = (const LV_USER_EVENT_NVTMSG_DATA*)lv_event_get_data();
|
||||||
|
if (msg->event == NVTEVT_BATTERY_LOW)
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "UIFlowLVGL/UIFlowLVGL.h"
|
#include "UIFlowLVGL/UIFlowLVGL.h"
|
||||||
#include "UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgAPI.h"
|
#include "UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgAPI.h"
|
||||||
#include "UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.h"
|
#include "UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.h"
|
||||||
|
#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h"
|
||||||
#include "UIFlowLVGL/UIFlowCommon/UIFlowCommon.h"
|
#include "UIFlowLVGL/UIFlowCommon/UIFlowCommon.h"
|
||||||
#include <kwrap/debug.h>
|
#include <kwrap/debug.h>
|
||||||
#include "SysMain.h"
|
#include "SysMain.h"
|
||||||
|
@ -1417,6 +1418,13 @@ static void UIFlowMovie_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* m
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case NVTEVT_BATTERY_LOW:
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
//#NT#2021/09/10#Philex Lin--begin
|
//#NT#2021/09/10#Philex Lin--begin
|
||||||
case NVTEVT_CB_MOVIE_REC_FINISH:
|
case NVTEVT_CB_MOVIE_REC_FINISH:
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "sf_mcu.h"
|
#include "sf_mcu.h"
|
||||||
#include "sf_common.h"
|
#include "sf_common.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h"
|
||||||
|
|
||||||
|
|
||||||
static int PasswordIndex = 0;
|
static int PasswordIndex = 0;
|
||||||
|
@ -440,6 +441,18 @@ printf(" UIFlowPasswordEventCallback %d\n", event);
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case LV_USER_EVENT_NVTMSG:
|
||||||
|
{
|
||||||
|
const LV_USER_EVENT_NVTMSG_DATA* msg = (const LV_USER_EVENT_NVTMSG_DATA*)lv_event_get_data();
|
||||||
|
if (msg->event == NVTEVT_BATTERY_LOW)
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "UIFlowLVGL/UIFlowLVGL.h"
|
#include "UIFlowLVGL/UIFlowLVGL.h"
|
||||||
#include "UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgAPI.h"
|
#include "UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgAPI.h"
|
||||||
#include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h"
|
#include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h"
|
||||||
|
#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h"
|
||||||
#include "UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.h"
|
#include "UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.h"
|
||||||
#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h"
|
#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h"
|
||||||
#include "UIFlowLVGL_SPORTCAM.h"
|
#include "UIFlowLVGL_SPORTCAM.h"
|
||||||
|
@ -373,7 +374,7 @@ static void update_battery(void)
|
||||||
// #else
|
// #else
|
||||||
// lv_plugin_img_set_src(image_battery_0_scr_uiflowphoto, res[GetBatteryLevel()]);
|
// lv_plugin_img_set_src(image_battery_0_scr_uiflowphoto, res[GetBatteryLevel()]);
|
||||||
// #endif
|
// #endif
|
||||||
|
//printf("[%s:%d]battery: %d\n", __FUNCTION__, __LINE__, sf_cardv_battery_level_get());
|
||||||
lv_plugin_img_set_src(image_battery_0_scr_uiflowphoto, res[sf_cardv_battery_level_get()]);
|
lv_plugin_img_set_src(image_battery_0_scr_uiflowphoto, res[sf_cardv_battery_level_get()]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1893,6 +1894,15 @@ static void task_update_icons_timer_cb(lv_task_t* task)
|
||||||
|
|
||||||
if (autoOffTime >= ShutDownTime - is_password && autoOffTime < ShutDownTime + 3)
|
if (autoOffTime >= ShutDownTime - is_password && autoOffTime < ShutDownTime + 3)
|
||||||
{
|
{
|
||||||
|
if (sf_cardv_battery_level_get() == 0)
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
while(true)
|
||||||
|
{
|
||||||
|
usleep(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
printf("[%s]go to shutdown", __FUNCTION__);
|
printf("[%s]go to shutdown", __FUNCTION__);
|
||||||
// unsigned int autoCloseTime_s = ShutDownTime == GO_TO_WORK_MODE_TIME ? 30 : 3;
|
// unsigned int autoCloseTime_s = ShutDownTime == GO_TO_WORK_MODE_TIME ? 30 : 3;
|
||||||
if (GO_TO_WORK_MODE_TIME == ShutDownTime || MENU_GO_TO_WORK_MODE_TIME_S == ShutDownTime)
|
if (GO_TO_WORK_MODE_TIME == ShutDownTime || MENU_GO_TO_WORK_MODE_TIME_S == ShutDownTime)
|
||||||
|
@ -2108,8 +2118,11 @@ static void UIFlowPhoto_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* m
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NVTEVT_BATTERY_LOW:
|
case NVTEVT_BATTERY_LOW:
|
||||||
UIFlowPhoto_OnBatteryLow(obj, msg);
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case NVTEVT_BACKGROUND_DONE:
|
case NVTEVT_BACKGROUND_DONE:
|
||||||
{
|
{
|
||||||
NVTEVT message=msg->paramArray[ONDONE_PARAM_INDEX_CMD];
|
NVTEVT message=msg->paramArray[ONDONE_PARAM_INDEX_CMD];
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include "UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h"
|
#include "UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h"
|
||||||
#include "UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgAPI.h"
|
#include "UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgAPI.h"
|
||||||
#include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h"
|
#include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h"
|
||||||
|
#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h"
|
||||||
#include "kwrap/nvt_type.h"
|
#include "kwrap/nvt_type.h"
|
||||||
#include "SF_SysStrgMng.h"
|
#include "SF_SysStrgMng.h"
|
||||||
#if (USE_DCF == ENABLE)
|
#if (USE_DCF == ENABLE)
|
||||||
|
@ -1411,6 +1412,13 @@ static void UIFlowPlay_ChildScrClose(lv_obj_t* obj, const void * data)
|
||||||
|
|
||||||
//Return from thumbnail, magnify or delete mode and play current image again.
|
//Return from thumbnail, magnify or delete mode and play current image again.
|
||||||
switch (msg->event) {
|
switch (msg->event) {
|
||||||
|
case NVTEVT_BATTERY_LOW:
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case NVTRET_THUMBNAIL:
|
case NVTRET_THUMBNAIL:
|
||||||
case NVTRET_MAGNIFY:
|
case NVTRET_MAGNIFY:
|
||||||
g_PlbData.State = PLB_ST_FULL;
|
g_PlbData.State = PLB_ST_FULL;
|
||||||
|
@ -2579,6 +2587,12 @@ static void UIFlowPlay_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* ms
|
||||||
{
|
{
|
||||||
switch(msg->event)
|
switch(msg->event)
|
||||||
{
|
{
|
||||||
|
case NVTEVT_BATTERY_LOW:
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case NVTEVT_CB_MOVIE_FINISH:
|
case NVTEVT_CB_MOVIE_FINISH:
|
||||||
{
|
{
|
||||||
UIFlowPlay_CB_Finish(obj,msg);
|
UIFlowPlay_CB_Finish(obj,msg);
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include "GxStrg.h"
|
#include "GxStrg.h"
|
||||||
#include <kwrap/debug.h>
|
#include <kwrap/debug.h>
|
||||||
#include "NVTUserCommand.h"
|
#include "NVTUserCommand.h"
|
||||||
|
#include "UIFlowLVGL/UIFlowClose/UIFlowCloseEventCallback.h"
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
#include <sf_inc.h>
|
#include <sf_inc.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -806,6 +807,12 @@ static void UIFlowPlayThumb_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DAT
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case NVTEVT_BATTERY_LOW:
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -426,6 +426,18 @@ void message_box_wrnmsg_event_callback(lv_obj_t* obj, lv_event_t event)
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case LV_USER_EVENT_NVTMSG:
|
||||||
|
{
|
||||||
|
const LV_USER_EVENT_NVTMSG_DATA* msg = (const LV_USER_EVENT_NVTMSG_DATA*)lv_event_get_data();
|
||||||
|
if (msg->event == NVTEVT_BATTERY_LOW)
|
||||||
|
{
|
||||||
|
#define DISPLAY_FINAL_LOW_BATTERY 3
|
||||||
|
OpenClosingScreen(DISPLAY_FINAL_LOW_BATTERY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1780,7 +1780,7 @@ static SINT32 sf_cardv_proccess_cmd_key(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SF_EVENT_KEY_TEST:
|
case SF_EVENT_KEY_TEST:
|
||||||
sf_do_upgrade_thread();//update
|
sf_do_upgrade_thread();//update
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1987,15 +1987,17 @@ static SINT32 sf_cardv_proccess_cmd_poweroff(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
|
||||||
//MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
//MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
||||||
|
|
||||||
|
|
||||||
|
switch(pMessageBuf->arg1)
|
||||||
|
{
|
||||||
|
case APP_POWER_OFF_BATT_EMPTY:
|
||||||
|
Ux_PostEvent(NVTEVT_BATTERY_LOW, NULL, NULL);
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, pMessageBuf->arg1); //shutdown start
|
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, pMessageBuf->arg1); //shutdown start
|
||||||
/*switch(pMessageBuf->arg1)
|
|
||||||
{
|
|
||||||
case APP_POWER_OFF_BATT_EMPTY:
|
|
||||||
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}*/
|
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
void* sf_cardv_message_thread(void *argv)
|
void* sf_cardv_message_thread(void *argv)
|
||||||
|
@ -2242,14 +2244,17 @@ static UINT32 sf_fwupdate(void)
|
||||||
#else
|
#else
|
||||||
BOOL sf_ota_trigger(void)
|
BOOL sf_ota_trigger(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
UINT32 uiUserData = 0;
|
UINT32 uiUserData = 0;
|
||||||
char cmd[128]={0};
|
char cmd[128]={0};
|
||||||
|
|
||||||
if((PWR_ON_SETUP == sf_cardv_convert_power_on_mode()))
|
if((PWR_ON_SETUP == sf_cardv_convert_power_on_mode()))
|
||||||
{
|
{
|
||||||
|
|
||||||
uiUserData = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER);
|
uiUserData = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
uiUserData = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER_AUTO);
|
uiUserData = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER_AUTO);
|
||||||
}
|
}
|
||||||
Ux_PostEvent(NVTEVT_ALGMSG_FOCUSEND, 0);
|
Ux_PostEvent(NVTEVT_ALGMSG_FOCUSEND, 0);
|
||||||
|
@ -2328,8 +2333,7 @@ void* sf_sys_do_upgrade(void *arg)
|
||||||
#if !SF_UBOOT_UPDATA_FW
|
#if !SF_UBOOT_UPDATA_FW
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
#endif
|
#endif
|
||||||
SLOGW("Begin to do Upgrade!\n");
|
|
||||||
|
|
||||||
//if(sf_is_enough_power_to_update() == FALSE)
|
//if(sf_is_enough_power_to_update() == FALSE)
|
||||||
if(sf_cardv_battery_value_get() < 40){
|
if(sf_cardv_battery_value_get() < 40){
|
||||||
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
||||||
|
@ -2338,7 +2342,8 @@ void* sf_sys_do_upgrade(void *arg)
|
||||||
// sf_set_fw_update(0);
|
// sf_set_fw_update(0);
|
||||||
// }
|
// }
|
||||||
else{
|
else{
|
||||||
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1);
|
|
||||||
|
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1);
|
||||||
//sf_set_fw_update(1);
|
//sf_set_fw_update(1);
|
||||||
sf_set_send_statu(TRUE);
|
sf_set_send_statu(TRUE);
|
||||||
sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE);
|
sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE);
|
||||||
|
@ -2347,12 +2352,13 @@ void* sf_sys_do_upgrade(void *arg)
|
||||||
#if SF_UBOOT_UPDATA_FW
|
#if SF_UBOOT_UPDATA_FW
|
||||||
sf_ota_trigger();
|
sf_ota_trigger();
|
||||||
#else
|
#else
|
||||||
//BKG_PostEvent(NVTEVT_BKW_FW_UPDATE);
|
|
||||||
|
//BKG_PostEvent(NVTEVT_BKW_FW_UPDATE);
|
||||||
if(0 != sf_fwupdate()){
|
if(0 != sf_fwupdate()){
|
||||||
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//SysResetFlag();
|
//SysResetFlag();
|
||||||
puiPara->OtaFlag = 1;
|
puiPara->OtaFlag = 1;
|
||||||
Save_MenuInfo();
|
Save_MenuInfo();
|
||||||
//sync();
|
//sync();
|
||||||
|
|
|
@ -115,12 +115,16 @@ static LDR_RECOVERY_TRIGGER_CB gRecoveryTriggerCallBack = NULL;
|
||||||
//#if (STORAGE_EXT_TYPE != STORAGE_EXT_USB)
|
//#if (STORAGE_EXT_TYPE != STORAGE_EXT_USB)
|
||||||
//static BOOL g_is_recovery_triggered = FALSE; // indicate recovery flow is triggered.
|
//static BOOL g_is_recovery_triggered = FALSE; // indicate recovery flow is triggered.
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
|
||||||
_THUMB2 static int bl_is_smp(unsigned char *p_fdt);
|
_THUMB2 static int bl_is_smp(unsigned char *p_fdt);
|
||||||
static UINT32 g_uiStartBlkUpdateFW = StartNandBlkUpdateFW;
|
static UINT32 g_uiStartBlkUpdateFW = StartNandBlkUpdateFW;
|
||||||
static UINT32 g_uiNandBlkSize = 0;
|
static UINT32 g_uiNandBlkSize = 0;
|
||||||
static UINT32 g_rtos_load_addr = 0;
|
static UINT32 g_rtos_load_addr = 0;
|
||||||
static UINT32 g_rtos_target_addr = 0;
|
static UINT32 g_rtos_target_addr = 0;
|
||||||
static UINT32 g_rtos_size = 0;
|
static UINT32 g_rtos_size = 0;
|
||||||
|
static UINT32 g_update_from_emmc = 0;
|
||||||
|
|
||||||
|
|
||||||
#if (FDT_SUPPORT)
|
#if (FDT_SUPPORT)
|
||||||
#define PATH_MEM_DRAM "/nvt_memory_cfg/dram"
|
#define PATH_MEM_DRAM "/nvt_memory_cfg/dram"
|
||||||
|
@ -2948,7 +2952,8 @@ _THUMB2 static unsigned int bl_process_flash_boot(unsigned char *p_tmp, DRAM_PAR
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if 1
|
#if 1
|
||||||
else if (p_dram_partition->rtos_addr == 0 || DUAL_RTOS_SUPPORT || (gFastbootKeyCallBack == NULL) || (!gFastbootKeyCallBack())) {
|
//added by greg
|
||||||
|
else if (p_dram_partition->rtos_addr == 0 || DUAL_RTOS_SUPPORT || (gFastbootKeyCallBack == NULL) || (!gFastbootKeyCallBack()|| g_update_from_emmc)) {
|
||||||
// load uboot
|
// load uboot
|
||||||
er = bl_load_uboot_from_flash((unsigned char *)p_dram_partition->fdt_addr, p_tmp);
|
er = bl_load_uboot_from_flash((unsigned char *)p_dram_partition->fdt_addr, p_tmp);
|
||||||
if (er != 0) {
|
if (er != 0) {
|
||||||
|
@ -2960,6 +2965,7 @@ _THUMB2 static unsigned int bl_process_flash_boot(unsigned char *p_tmp, DRAM_PAR
|
||||||
if (er != 0) {
|
if (er != 0) {
|
||||||
bl_displayErrMsg("boot uboot failed\r\n");
|
bl_displayErrMsg("boot uboot failed\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
else {
|
else {
|
||||||
|
@ -3140,53 +3146,10 @@ _THUMB2 UINT32 bl_mainFlow(void)
|
||||||
// rtc reset shutdown timer
|
// rtc reset shutdown timer
|
||||||
// rtc_resetShutDownTimer();
|
// rtc_resetShutDownTimer();
|
||||||
|
|
||||||
|
// Display Loader Version
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
// adjust PAD driving (if required)
|
|
||||||
bl_adjustDriving();
|
|
||||||
/*
|
|
||||||
- @b RTC_PWR_SW_STS: Power on source is PWR_SW
|
|
||||||
- @b RTC_PWR_VBAT_STS: Power on source is PWR_VBAT
|
|
||||||
- @b RTC_PWR_VBUS_STS: Power on source is PWR_VBUS
|
|
||||||
*/
|
|
||||||
uiPowerOnSrc = rtc_getPWRONSource();
|
|
||||||
|
|
||||||
if (uiPowerOnSrc & RTC_PWR_SW_STS) {
|
|
||||||
uart_putSystemUARTStr("\r\nSW PON\r\n");
|
|
||||||
} else if (uiPowerOnSrc & RTC_PWR_VBAT_STS) {
|
|
||||||
uart_putSystemUARTStr("\r\nVBAT PON\r\n");
|
|
||||||
} else if (uiPowerOnSrc & RTC_PWR_VBUS_STS) {
|
|
||||||
uart_putSystemUARTStr("\r\nVBUS PON\r\n");
|
|
||||||
} else if (rtc_getIsAlarmPowerOn()) {
|
|
||||||
uart_putSystemUARTStr("\r\nPwrAlarm PON\r\n");
|
|
||||||
} else {
|
|
||||||
uart_putSystemUARTStr("\r\nPOR PON\r\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
// Display Loader Version
|
|
||||||
debug_msg((char *)LOADER_START_STR);
|
debug_msg((char *)LOADER_START_STR);
|
||||||
UTL_setDrvTmpBufferAddress(uiTmpBufferAddr);
|
UTL_setDrvTmpBufferAddress(uiTmpBufferAddr);
|
||||||
|
|
||||||
|
|
||||||
#if 0 // for now, reduce code size
|
|
||||||
if (rtc_chkS3boot()) {
|
|
||||||
UINT32 resume_addr;
|
|
||||||
|
|
||||||
uart_putSystemUARTStr("main selfing..\r\n");
|
|
||||||
resume_addr = bl_resume_cpu1((unsigned char *)_BOARD_IPC_ADDR_);
|
|
||||||
if (resume_addr == 0) {
|
|
||||||
// in codition for MODELEXT_BUILT_IN_ON
|
|
||||||
resume_addr = RESUME_ADDR;
|
|
||||||
}
|
|
||||||
return resume_addr;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
uart_putSystemUARTStr("main not selfing..\r\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
// Sample to hook spi flash extending function
|
// Sample to hook spi flash extending function
|
||||||
flash_installIdentifyCB(bl_spiIdentify);
|
flash_installIdentifyCB(bl_spiIdentify);
|
||||||
|
@ -3231,38 +3194,11 @@ _THUMB2 UINT32 bl_mainFlow(void)
|
||||||
uiLoaderFunc |= FUNC_RUN_CARD;
|
uiLoaderFunc |= FUNC_RUN_CARD;
|
||||||
} else if ((int_strg_obj->flash_getBlockSize() == EMMC_BLOCK_SIZE) && gRecoveryTriggerCallBack && gRecoveryTriggerCallBack()) {
|
} else if ((int_strg_obj->flash_getBlockSize() == EMMC_BLOCK_SIZE) && gRecoveryTriggerCallBack && gRecoveryTriggerCallBack()) {
|
||||||
debug_msg("Recovery triggered not support currently.\r\n");
|
debug_msg("Recovery triggered not support currently.\r\n");
|
||||||
#if 0
|
|
||||||
// open flash
|
|
||||||
if (bl_flash_open() != 0) {
|
|
||||||
bl_displayErrMsg("flash open failed\r\n");
|
|
||||||
} else {
|
|
||||||
flash_mount_fs(0, BaseOfStack + 0x4000, FAT_HEAP_BUFFER_SIZE);
|
|
||||||
if (flash_mount_partition(g_uiPartitionID) == E_OK) {
|
|
||||||
if (flash_open_file(RECOVERY_FW_NAME) == TRUE) {
|
|
||||||
NVTPACK_MEM mem_in ;
|
|
||||||
flash_read_file((UINT8 *)uiUpdateMainBinBufAddr, SIZE_PRELOAD);
|
|
||||||
mem_in.p_data = (void *)uiUpdateMainBinBufAddr;
|
|
||||||
mem_in.len = uiUpdateFileLen;
|
|
||||||
// all in one bin
|
|
||||||
if (bl_chk_valid_all_in_one(&mem_in) == 0) {
|
|
||||||
// Read all
|
|
||||||
uiUpdateFileLen = flash_read_file((UINT8 *)uiUpdateMainBinBufAddr, FAT_READ_TOTAL_FILE_LENGTH);
|
|
||||||
uiLoaderFunc |= FUNC_UPDATE_FW;
|
|
||||||
g_is_recovery_triggered = TRUE;
|
|
||||||
} else {
|
|
||||||
debug_msg("Recovery should be all in one bin!\r\n");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
debug_msg("no recovery bin!\r\n");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
debug_msg("Partition error!\r\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#if 1
|
#if 1
|
||||||
else if ((gSpecialKeyCallBack(ota_flag)) && (gCardDetectCallBack())) {
|
else if ((gSpecialKeyCallBack(ota_flag)) && (gCardDetectCallBack())) {
|
||||||
|
|
||||||
if (card_open() == TRUE && fat_initFAT(uiheapBufferAddr, FAT_HEAP_BUFFER_SIZE) == TRUE) {
|
if (card_open() == TRUE && fat_initFAT(uiheapBufferAddr, FAT_HEAP_BUFFER_SIZE) == TRUE) {
|
||||||
#if UPDATE_SIM_CODE
|
#if UPDATE_SIM_CODE
|
||||||
BOOL bWDTInit = UTL_canUpdateSecKey();
|
BOOL bWDTInit = UTL_canUpdateSecKey();
|
||||||
|
@ -3323,102 +3259,7 @@ _THUMB2 UINT32 bl_mainFlow(void)
|
||||||
}
|
}
|
||||||
// Run FW has lower priority
|
// Run FW has lower priority
|
||||||
else if (fat_open_rootfile(RUN_FW_NAME) == TRUE) {
|
else if (fat_open_rootfile(RUN_FW_NAME) == TRUE) {
|
||||||
NVTPACK_MEM mem_in ;
|
|
||||||
uiUpdateFileLen = fat_read_rootfile((UINT8 *)uiUpdateMainBinBufAddr, SIZE_PRELOAD);
|
|
||||||
mem_in.p_data = (void *)uiUpdateMainBinBufAddr;
|
|
||||||
mem_in.len = uiUpdateFileLen;
|
|
||||||
if (bl_chk_valid_all_in_one(&mem_in) == 0) {
|
|
||||||
// Read all
|
|
||||||
uiUpdateFileLen = fat_read_rootfile((UINT8 *)uiUpdateMainBinBufAddr, FAT_READ_TOTAL_FILE_LENGTH);
|
|
||||||
} else {
|
|
||||||
// Read rtos
|
|
||||||
unsigned int adjusted_addr = 0;
|
|
||||||
unsigned int adjusted_size = 0;
|
|
||||||
if (bl_load_rtos_from_non_nvtpack(uiUpdateMainBinBufAddr, uiUpdateFileLen, &adjusted_addr, &adjusted_size) != 0) {
|
|
||||||
bl_displayErrMsg("invalid firmware");
|
|
||||||
} else {
|
|
||||||
uiFwBaseAddr = adjusted_addr; //fix compressed fit bl_checkDramScanFW() after copy its to temp area, see commit log
|
|
||||||
uiUpdateFileLen = adjusted_size;
|
|
||||||
}
|
|
||||||
uiLoaderFunc |= FUNC_RUN_CARD;
|
|
||||||
}
|
|
||||||
fat_close_rootfile();
|
|
||||||
debug_msg("\r\n"); // for line end RRRRRRR....
|
|
||||||
uiLoaderFunc |= FUNC_RUN_CARD;
|
|
||||||
}
|
|
||||||
#if UPDATE_SIM_CODE
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
debug_msg("card close\r\n");
|
|
||||||
card_close();
|
|
||||||
} else {
|
|
||||||
debug_msg("card open fail\r\n");
|
|
||||||
// while (1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#if 0
|
|
||||||
else if (((gCardDetectCallBack == NULL) || gCardDetectCallBack()))
|
|
||||||
{
|
|
||||||
debug_msg("sf gCardDetectCallBack gCardDetectCallBack\r\n");
|
|
||||||
if (card_open() == TRUE && fat_initFAT(uiheapBufferAddr, FAT_HEAP_BUFFER_SIZE) == TRUE) {
|
|
||||||
#if UPDATE_SIM_CODE
|
|
||||||
BOOL bWDTInit = UTL_canUpdateSecKey();
|
|
||||||
if (bWDTInit && fat_open_rootfile(RUN_WRKEY_NAME) == TRUE) {
|
|
||||||
debug_msg("sim.bin exist\r\n"); // the others A or T are skipped.
|
|
||||||
// Read byte count specified in file directory entry
|
|
||||||
uiUpdateFileLen = fat_read_rootfile((UINT8 *)uiUpdateMainBinBufAddr, FAT_READ_TOTAL_FILE_LENGTH);
|
|
||||||
fat_close_rootfile();
|
|
||||||
debug_msg("\r\n"); // for line end RRRRRRR....
|
|
||||||
uiLoaderFunc |= FUNC_RUN_WRBIN;
|
|
||||||
} else { // exclude others update if FUNC_RUN_WRBIN is existing.
|
|
||||||
#endif
|
|
||||||
// Update loader or not, loader is fixed to 16 KB
|
|
||||||
if (fat_open_rootfile(UPDATE_LOADER_NAME) == TRUE) {
|
|
||||||
// Read byte count specified in file directory entry
|
|
||||||
fat_read_rootfile((UINT8 *)uiUpdateBootloaderBufAddr, FAT_READ_TOTAL_FILE_LENGTH);
|
|
||||||
fat_close_rootfile();
|
|
||||||
debug_msg("\r\n"); // for line end RRRRRRR....
|
|
||||||
debug_msg("sf ld\r\n"); // for line end RRRRRRR....
|
|
||||||
uiLoaderFunc |= FUNC_UPDATE_LOADER;
|
|
||||||
uiLoaderSize = *((UINT32 *)(uiUpdateBootloaderBufAddr + 0x24));
|
|
||||||
}
|
|
||||||
// "Update FW" or "Run FW" function
|
|
||||||
// Update FW has higher priority
|
|
||||||
if (fat_open_rootfile(UPDATE_FW_NAME) == TRUE) {
|
|
||||||
NVTPACK_MEM mem_in ;
|
|
||||||
fat_read_rootfile((UINT8 *)uiUpdateMainBinBufAddr, SIZE_PRELOAD);
|
|
||||||
mem_in.p_data = (void *)uiUpdateMainBinBufAddr;
|
|
||||||
mem_in.len = uiUpdateFileLen;
|
|
||||||
// all in one bin
|
|
||||||
debug_msg("sf fw\r\n"); // for line end RRRRRRR....
|
|
||||||
if (bl_chk_valid_all_in_one(&mem_in) == 0) {
|
|
||||||
// Read all
|
|
||||||
uiUpdateFileLen = fat_read_rootfile((UINT8 *)uiUpdateMainBinBufAddr, FAT_READ_TOTAL_FILE_LENGTH);
|
|
||||||
uiLoaderFunc |= FUNC_UPDATE_FW;
|
|
||||||
} else {
|
|
||||||
// only rtos
|
|
||||||
debug_msg("not all-in-one, force behavior as T bin.\r\n");
|
|
||||||
adjusted_addr = 0;
|
|
||||||
adjusted_size = 0;
|
|
||||||
if (bl_load_rtos_from_non_nvtpack(uiUpdateMainBinBufAddr, uiUpdateFileLen, &adjusted_addr, &adjusted_size) == 0) {
|
|
||||||
uiFwBaseAddr = adjusted_addr; //fix compressed fit bl_checkDramScanFW() after copy its to temp area, see commit log
|
|
||||||
uiUpdateFileLen = adjusted_size;
|
|
||||||
} else {
|
|
||||||
bl_displayErrMsg("invalid firmware");
|
|
||||||
}
|
|
||||||
#if UPDATE_EMU_CODE
|
|
||||||
uiLoaderFunc |= FUNC_UPDATE_FW;
|
|
||||||
#else
|
|
||||||
uiLoaderFunc |= FUNC_RUN_CARD;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
fat_close_rootfile();
|
|
||||||
debug_msg("\r\n"); // for line end RRRRRRR....
|
|
||||||
}
|
|
||||||
// Run FW has lower priority
|
|
||||||
else if (fat_open_rootfile(RUN_FW_NAME) == TRUE) {
|
|
||||||
NVTPACK_MEM mem_in ;
|
NVTPACK_MEM mem_in ;
|
||||||
uiUpdateFileLen = fat_read_rootfile((UINT8 *)uiUpdateMainBinBufAddr, SIZE_PRELOAD);
|
uiUpdateFileLen = fat_read_rootfile((UINT8 *)uiUpdateMainBinBufAddr, SIZE_PRELOAD);
|
||||||
mem_in.p_data = (void *)uiUpdateMainBinBufAddr;
|
mem_in.p_data = (void *)uiUpdateMainBinBufAddr;
|
||||||
|
@ -3442,10 +3283,16 @@ _THUMB2 UINT32 bl_mainFlow(void)
|
||||||
debug_msg("\r\n"); // for line end RRRRRRR....
|
debug_msg("\r\n"); // for line end RRRRRRR....
|
||||||
uiLoaderFunc |= FUNC_RUN_CARD;
|
uiLoaderFunc |= FUNC_RUN_CARD;
|
||||||
}
|
}
|
||||||
|
/* no fw found in sd card , start emmc check flow */
|
||||||
|
else{
|
||||||
|
|
||||||
|
g_update_from_emmc = 1;
|
||||||
|
uiLoaderFunc &= ~(FUNC_UPDATE_LOADER); /* loader won't be updated by emmc */
|
||||||
|
}
|
||||||
#if UPDATE_SIM_CODE
|
#if UPDATE_SIM_CODE
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
card_close();
|
card_close();
|
||||||
} else {
|
} else {
|
||||||
debug_msg("card open fail\r\n");
|
debug_msg("card open fail\r\n");
|
||||||
// while (1);
|
// while (1);
|
||||||
|
@ -3455,6 +3302,8 @@ _THUMB2 UINT32 bl_mainFlow(void)
|
||||||
else if (((gSpecialKeyCallBack == NULL) || gSpecialKeyCallBack(ota_flag)) &&
|
else if (((gSpecialKeyCallBack == NULL) || gSpecialKeyCallBack(ota_flag)) &&
|
||||||
((gCardDetectCallBack != NULL) || (gCardDetectCallBack() == FALSE))) {
|
((gCardDetectCallBack != NULL) || (gCardDetectCallBack() == FALSE))) {
|
||||||
debug_msg("No card inserted\r\n");
|
debug_msg("No card inserted\r\n");
|
||||||
|
g_update_from_emmc = 1;
|
||||||
|
uiLoaderFunc &= ~(FUNC_UPDATE_LOADER); /* loader won't be updated by emmc */
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -175,7 +175,7 @@ static BOOL prj_isSpecialKeyPressed(UINT32 ota_flag)
|
||||||
static BOOL prj_issfSpecialKeyPressed(UINT32 ota_flag)
|
static BOOL prj_issfSpecialKeyPressed(UINT32 ota_flag)
|
||||||
{
|
{
|
||||||
|
|
||||||
#if (MODEL == MODEL_S530)
|
#if (MODEL == MODEL_S530)
|
||||||
if ((!gpio_getPin(GPIO_SPECIAL_KEY)) && (gpio_getPin(GPIO_SPECIAL_USB)))
|
if ((!gpio_getPin(GPIO_SPECIAL_KEY)) && (gpio_getPin(GPIO_SPECIAL_USB)))
|
||||||
#elif (MODEL == MODEL_S550)
|
#elif (MODEL == MODEL_S550)
|
||||||
if ((!(gpio_getPin(GPIO_SPECIAL_KEY2)) && (gpio_getPin(GPIO_SPECIAL_USB))))//Force Upgrade
|
if ((!(gpio_getPin(GPIO_SPECIAL_KEY2)) && (gpio_getPin(GPIO_SPECIAL_USB))))//Force Upgrade
|
||||||
|
@ -242,7 +242,7 @@ _THUMB2 void prj_main(void)
|
||||||
{
|
{
|
||||||
PSTORAGE_OBJ strg_obj = NULL;
|
PSTORAGE_OBJ strg_obj = NULL;
|
||||||
loader_setVersion(_LDR_VER_);
|
loader_setVersion(_LDR_VER_);
|
||||||
|
|
||||||
debug_msg("\r\n");
|
debug_msg("\r\n");
|
||||||
debug_msg("LD_VER ");
|
debug_msg("LD_VER ");
|
||||||
debug_msg(Dec2HexStr2Bytes((LoaderInternalInfo[1] >> 28) & 0xF));
|
debug_msg(Dec2HexStr2Bytes((LoaderInternalInfo[1] >> 28) & 0xF));
|
||||||
|
@ -261,7 +261,7 @@ _THUMB2 void prj_main(void)
|
||||||
} else {
|
} else {
|
||||||
debug_msg(_LOADER_VERSION_STR_);
|
debug_msg(_LOADER_VERSION_STR_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup loader/fw file names
|
// Setup loader/fw file names
|
||||||
loader_setUpdateFwName(_UPDATE_FW_NAME_);
|
loader_setUpdateFwName(_UPDATE_FW_NAME_);
|
||||||
loader_setUpdateLdrName(_UPDATE_LOADER_NAME_);
|
loader_setUpdateLdrName(_UPDATE_LOADER_NAME_);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user