Open LiuDeMings opened 3 years ago
原本使用 easyflash保存环境变量和日志到w25q16,经过移植虽然实现了功能,但是读取、设置单个环境变量都会消耗大量时间导致系统阻塞,读大约消耗140ms,写大约400ms。虽然知道w25q16芯片写入数据前若目标地址数据不为0xFF会进行擦除扇区的操作,擦除单个扇区的时间在40~100ms。但是读环境变量也会消耗140ms,这是真的不能忍。 而且设置单个环境变量会导致多次写入操作大幅增加时间消耗。延迟高的问题不知是不是我移植的有问题,希望能够优化对W25qXX芯片的支持,不然实时性要求高一点的情况都没法用easyflash。
读肯定不需要这么久的,EasyFlash 本身有缓存,默认是从缓存中读取的
只有开机加载缓存需要消耗一定的 Flash read 时间
https://github.com/armink/EasyFlash/blob/master/easyflash/src/ef_env_legacy.c
你要不试一试 EF_ENV_USING_LEGACY_MODE 模式?首页有介绍
EF_ENV_USING_LEGACY_MODE
原本使用 easyflash保存环境变量和日志到w25q16,经过移植虽然实现了功能,但是读取、设置单个环境变量都会消耗大量时间导致系统阻塞,读大约消耗140ms,写大约400ms。虽然知道w25q16芯片写入数据前若目标地址数据不为0xFF会进行擦除扇区的操作,擦除单个扇区的时间在40~100ms。但是读环境变量也会消耗140ms,这是真的不能忍。 而且设置单个环境变量会导致多次写入操作大幅增加时间消耗。延迟高的问题不知是不是我移植的有问题,希望能够优化对W25qXX芯片的支持,不然实时性要求高一点的情况都没法用easyflash。