我在阅读源代码的时候带入新片 flash 的情况进行了分析,发现了两次调用 format_sector 的情况
第一次是在 ef_load_env -> sector_iterator -> read_sector_meta_data -> callback -> check_sec_hdr_cb -> format_sector
第二次是在 ef_load_env -> ef_env_set_default -> format_sector
我想到的解决方案可能是:
让 check_sec_hdr_cb 只统计失败,不执行 format;把“统一修复/初始化”的动作全部交给最后的 ef_env_set_default()。
虽然首次格式化两次无伤大雅,但从严谨的角度来看,作者是不是可以考虑优化一下这部分呢? @armink