EasyFlash icon indicating copy to clipboard operation
EasyFlash copied to clipboard

Lightweight IoT device information storage solution: KV/IAP/LOG. | 轻量级物联网设备信息存储方案:参数存储、在线升级及日志存储 ,全新一代版本请移步至 https://github.com/armink/FlashDB

Results 59 EasyFlash issues
Sort by recently updated
recently updated
newest added
trafficstars

还有一个对v3.3 中 env_cache[ENV_USER_SETTING_SIZE / 4] 的疑问, 我的理解是 ENV_USER_SETTING_SIZE 是 一条 env 项的最大尺寸。 env_cache 是 flash的 对应内存映射, 应该设置成 整个flash的映射 大小才合适啊;或者pfs模式下,大致一半flash大小; 或者有些情况下用的env条目 很少, 那也要这些条目占用的最大空间来定。 不知道我的理解哪里不对呢?

![image](https://user-images.githubusercontent.com/37238305/90210665-2ab4cb00-de21-11ea-993b-d903652080d7.png) 这块的代码感觉永远不会执行

Hi armink, 我们产品市场长期工作之后问题显露出来。 问题1:调用API接口ef_set_env_blob写入大量的key这样easyflash_init初始化时间会增加,并且再次ef_set_env_blob时间也会相应的增加。我调用ef_del_env删除所有环境变量,但是初始化时间并没有减少,ef_set_env_blob时间也没变化还是很长。不知道怎么解决? 问题2:这个时间增加不是只和key的多少有关,而我反复调用ef_set_env_blob写同样的key值,key没有增加但是反复写入。easyflash_init初始化和ef_set_env_blob时间也会增加。不知道怎么解决? 问题3:当我调用ef_set_env_blob写入同一个key值磨损均衡,当这个ENV_AREA_SIZE区域写满时,是循环继续从是EVN首地址写吗?

armink,你好。我现在imx rt1020上面想移植easyflash。 mcu spi nor flash启动,前面flash放的是固定的头信息+app,我能在后面运行easyflash log和bak rom不? 怎么指定起始首地址?我只看到如下备份区的地址入口。 /* backup area start address */ #define EF_START_ADDR /* @note you must define it for a value */ 再次,感谢你的开源,表示敬意!

Hi armin, 我们现在遇到一个非常棘手的问题,我们产品马上要量产了。但是最近客服测试产品过程不断的看门狗超时复位。我们现实调试发现在写flash过程中出现错误一旦出现这个错误就会复位。 [Flash]Error: The ENV (@0x004B409C) CRC32 check failed! [Flash]Error: The ENV (@0x0053A080) CRC32 check failed! ![image](https://user-images.githubusercontent.com/40193503/84334155-4226cc00-abc4-11ea-8d02-d046c9e9d98b.png) ![Uploading image.png…]()

1.芯片:STM32L151CBT6。 2.报错函数: void ef_port_env_lock(void) { rt_sem_take(&env_cache_lock, RT_WAITING_FOREVER); } 3.分区名称 “ef” 4.fal接口 const struct fal_flash_dev eeprom0 = { "eeprom0", 0, 16*1024, 64, {init, read, write, erase} }; 5.分区表 #define FAL_PART_TABLE {...

stm32f407有4个16K扇区,1个64K扇区, 3个128K扇区, 第一个扇区放置bootloader, 最后3个扇区放置app程序, 想着用中间3个16K扇区如何同时使用env和log

原语句是:header_total_num = (physical_size / EF_ERASE_MIN_SIZE) + 1; 修改后是:header_total_num = (physical_size % EF_ERASE_MIN_SIZE) + 1; 在执行原语句的时候 physical_size / EF_ERASE_MIN_SIZE 是会计算错误(本台是STM32F072、MDK)。 作者的本意是计算扇区使用多少个吧。