朱天龙 (Armink)

Results 447 comments of 朱天龙 (Armink)

16K 做 boot ,后面的 128K 粒度分区用作 env/log

> physical_size / EF_ERASE_MIN_SIZE 是会计算错误(本台是STM32F072、MDK) 具体是什么错误?

`SECTOR_DIRTY_FALSE` 说明确实不是脏的,也是没有存在被删除或者修改的环境变量

你的 flash 型号是什么?目前 key 对应的 value 理论上只是限制了不能超过一个扇区的大小

可以把 Page 配置大一些,比如 10 倍的 264 大小。底层擦除接口支持多扇区连续擦除,这样也可以用的。

什么平台及 flash 呢。应该是移植没有对接好的,请检查配置文件及移植代码,也可以优先在 demo 平台上测试下相关代码

> 这问题我也出现了,后来查出是ef_load_env()中的sector.combined没有初始化导致的,加一句sector.combined = 0xffffffff;就好了。这问题只会在第一次写入扇区出现,后面都不会。 > 测试环境stm32f103+w25q16。然后还会出现环境变量初始化导致rtthread进入死循环,把ef_env_set_default()放到ef_env_init()最下方等初始化完成再调用就好了。 试试最新版呢,sector 数值问题已经修正了,详见: https://github.com/armink/EasyFlash/pull/73/files#diff-a8e474d4f098988ab755c2e37b01da1aR622 死循环的问题有点不明白,可否详细说说

我在想可以可以把 ef_port_read 里的 4 字节对齐拿掉,这个限制太严格了,驱动层其实是有办法规避这个问题的。

多谢反馈哈。方便去提一个 pr 吗?