23. 系统启动时间
23.1. AC638N 正常启动时间
运行AC638N 工程工作在sdk 默认LRC 模式下,sys_clk为160MHz,hsb_clk为160MHz,lsb_clk为22.85MHz,sfc_clk为40MHz,通过逻辑分析仪测试系统的启动时间如下:
23.2. AC638N 压缩启动时间(只能压缩main之后)
首先压缩启动时间配置如下:
/**********boot.c中main函数**********/ int main() { JL_PORTB->DIR &= ~BIT(6); JL_PORTB->OUT |= BIT(6); /* check_upgrade(); */ efuse_init(); clk_voltage_mode(CLOCK_MODE_ADAPTIVE, SYSVDD_VOL_SEL_126V); clk_early_init(SYS_CLOCK_INPUT_PLL_RCL, 32768, 160000000); /* port_init(); */ debug_uart_early_init(); /* log_info("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); */ /* log_info(" boot %s %s", __DATE__, __TIME__); */ /* clk_dump(); */ /* log_info("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); */ /* power_reset_source_dump(); */ memory_init(); //P11 系统必须提前打开 p11_init(); wdt_init(WDT_4S); /*wdt_close();*/ resfile_init(); /* vm_init_app(); */ board_init(); request_irq(1, 2, exception_irq_handler, 0); debug_init(); timer1_init(); msg_init(); JL_PORTB->OUT &= ~BIT(6); user_main(); return 0; } /**********board_demo.c中*********/ #define TCFG_CHARGE_ENABLE 0 #define TCFG_TEST_BOX_ENABLE 0 #define TCFG_LP_TOUCH_KEY_ENABLE 0 //1:低功耗电容触摸唤醒 void board_init() { /* adc_init(); */ board_power_init(); /* power_trim(VM_PMU_VOLTAGE, 0); */ #if TCFG_CHARGE_ENABLE charge_init(&charge_data); clk_update_voltage_by_freq(TCFG_CHARGE_ENABLE); #else CHGBG_EN(0); CHARGE_EN(0); #endif #if TCFG_TEST_BOX_ENABLE chargestore_api_init(&chargestore_data); #endif clk_voltage_mode(TCFG_CLOCK_MODE, SYSVDD_VOL_SEL_126V); #if TCFG_LP_TOUCH_KEY_ENABLE lp_touch_key_init(&lp_touch_key_config); #endif power_set_mode(TCFG_LOWPOWER_POWER_SEL); }
运行AC638N 工程工作在sdk 默认LRC 模式下,sys_clk为160MHz,hsb_clk为160MHz,lsb_clk为22.85MHz,sfc_clk为40MHz,通过逻辑分析仪测试系统的启动时间如下:
Important
AC637N(br30)芯片部分封装上电到main(uboot)运行时间需要240ms,这是因为FLASH在第二启动口,用户可以在SDK打印一下 JL_IOMAP->CON0&BIT(16)
的值自查封装:若值为0,则是封装启动慢的第一启动口A口, 若值为1才是封装启动优先的第二启动B口。