有些应用 需要 快速启动,我们可以尝试移除稳定时间 1- 可拆卸或者可插拔电池供电。 2- 电源不会频繁波动情况。 /** * @brief Remove 500ms delay time of waiting flash stable at power on * !!! NOTE 1: if battery is not removeable, it is not recommended to remove this 500ms * !!! NOTE 2: if you decide to remove this 500ms, please make sure do enough function test!! */ void remove_500ms_delay(void) { #define Skip_Flag (0xAF) char write_buffer = Skip_Flag; char read_buffer = 0xa5; OM_LOG_DEBUG("\n"); drv_sf_enable(OM_SF, 0); drv_sf_read(OM_SF, 0, (0), &read_buffer, 1); OM_LOG_DEBUG("\nRead Result 0x%x", read_buffer); if (read_buffer == 0xff) { OM_LOG_DEBUG("\nWrite ..."); drv_sf_write(OM_SF, 0, (0), &write_buffer, 1); //remove ~500ms delay drv_sf_read(OM_SF, 0, (0), &read_buffer, 1); OM_LOG_DEBUG("\nRead Buff ", &read_buffer, 1); } OM_LOG_DEBUG("\n"); } main()中引用 ,执行一次后,再次上电速度会快一些。 uint16_t crc16; mbr_read_part(PART_TYPE_APP, &address, &length, &crc16); remove_500ms_delay(); OM_LOG_DEBUG("running(%d): 0x%08X, len: %d, crc: 0x%04X\n", drv_pmu_reboot_reason(), address, length, crc16); __enable_irq(); // Main loop while (1) 以上非常规推荐操作,需要用户做充分的测试并确保可靠。 |