From: SnickerSun Date: Sat, 23 Mar 2024 09:07:26 +0000 (+0800) Subject: 优化开机logo显示时间,把用时较长的mount 分区延后执行。 X-Git-Tag: release_V1.2.70_20241020_135402~1271 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=fc387a24e666ae5996da48b5dd4e9fc46883a070;p=mirrors%2FFD230.git 优化开机logo显示时间,把用时较长的mount 分区延后执行。 --- diff --git a/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c b/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c index f0324faba..20b474eaa 100755 --- a/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c +++ b/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c @@ -54,10 +54,19 @@ void ohos_startup() #ifdef SUPPORT_POWER_MANAGER const power_display_svr_api_t *display_api = power_display_svr_get_api(); display_api->turn_on_screen(); - display_api->set_screen_set_keepon_timeout(5000); + display_api->set_screen_set_keepon_timeout(50000); #endif + + #ifdef ENABLE_UIKIT ShowGraphicLogo(); +#endif + //为了加速启动,把最耗时的mount分区放到显示log之后 + mount_user_res_partition(); +#ifdef SUPPORT_POWER_MANAGER + // const power_display_svr_api_t *display_api = power_display_svr_get_api(); + // display_api->turn_on_screen(); + display_api->set_screen_set_keepon_timeout(5000); #endif OHOS_SystemInit(); } diff --git a/code/sdk/bootloader/flashboot/brandy/nandflash/include/nandflash_config.h b/code/sdk/bootloader/flashboot/brandy/nandflash/include/nandflash_config.h index 13cc00655..e902c38b2 100755 --- a/code/sdk/bootloader/flashboot/brandy/nandflash/include/nandflash_config.h +++ b/code/sdk/bootloader/flashboot/brandy/nandflash/include/nandflash_config.h @@ -46,6 +46,8 @@ struct nand_driver_struct *get_nand_flash(void); int nandflash_filesystem_init(void); void nandflash_qspi_init(void); void nandflash_qspi_resume(void); + +int mount_user_res_partition(void); void test_nand_flash_read_8(struct nand_driver_struct *test_nand_flash_driver, uint32_t nand_page); void test_nand_flash_write_width8(struct nand_driver_struct *test_nand_flash_driver, uint32_t nand_page); #endif /* End of #ifndef MC_NAND_CONFIG_H */ diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c index f90763d25..4f674c58a 100755 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c @@ -61,7 +61,26 @@ struct nand_driver_struct *get_nand_flash(void) return &g_ds35x1g_driver; } -static int formate_filesystem(uint32_t total_block_num) +static int mount_partition_by_index(uint32_t index) +{ + int ret; + char dev_name[64] = { 0 }; + ret = sprintf_s(dev_name, sizeof(dev_name), "/dev/nandblk%d", index); + if (ret <= 0) { + PRINT("formate dev %d name fail \r\n", index); + return -EIO; + } + ret = mount(dev_name, g_volume_names[index], "yaffs", 0, NULL); + if (ret != 0) { + return ret; + } + ret = yaffs_sync(g_volume_names[index]); + if (ret != 0) { + PRINT("[%d] yaffs_sync fail, ret = %d", index, ret); + } + return ret; +} +static int formate_filesystem_init(uint32_t total_block_num) { int ret; uint32_t index; @@ -89,19 +108,13 @@ static int formate_filesystem(uint32_t total_block_num) return -EIO; } - ret = mount(dev_name, g_volume_names[index], "yaffs", 0, NULL); PRINT("formate filesystem devinfo: index = %d , dev_name = %s, folder_name = %s, \ part_start_sector = %d, part_count_sector = %d\r\n", index, dev_name, g_volume_names[index], part_start_sector, part_count_sector); - if (ret != 0) { - return ret; - } + part_start_sector += part_count_sector; - ret = yaffs_sync(g_volume_names[index]); - if (ret != 0) { - PRINT("[%d] yaffs_sync fail, ret = %d", index, ret); - } + } return ret; } @@ -224,12 +237,22 @@ int nandflash_filesystem_init(void) PRINT("get_mtd_info faild!\n"); } PRINT("yaffs filesystem init start!\n"); - int ret = formate_filesystem(freertos_nandflash_driver->total_block); + int ret = formate_filesystem_init(freertos_nandflash_driver->total_block); + + + mount_partition_by_index(0); + mount_partition_by_index(1); + mount_partition_by_index(2); + PRINT("yaffs filesystem init end!\n"); has_nandflash_init = 1; return ret; } +int mount_user_res_partition(void) +{ + return mount_partition_by_index(3); +} void nandflash_qspi_resume(void) { nand_driver_init(SPEED_HIGH);