10 easyflash的GC出现错误

发布于 2021-04-06 11:10:35

运行一段时间读写(每30s左右一次),差不多50次后每次ef都出现move,最后面出现GC错误
image.png
想请教下问题所在

查看更多

关注者
0
被浏览
96
mii
mii 2021-04-06

用bench 命令检查整个分区是否正常。

2 个回答
刘小飞
刘小飞 2021-04-06

设备后面自动重启了,并且flash存储的内容全部没有了 ,下面是我的flash代码,底层用的ef4.1.0

uint32_t Flash_Get(uint8_t id)
{
    uint32_t Counter = 0;
//    char *Counter_Temp = rt_malloc(32);//申请临时buffer空间;
    char *Counter_Temp;
    Counter_Temp = strdup(ef_get_env((const char*)&Key_list[id]));
    if (Counter_Temp == RT_NULL)
        Counter_Temp[0] = '0';
    Counter = atol(Counter_Temp);
    rt_free(Counter_Temp);//释放临时buffer对应内存空间
    LOG_D("Reading From %s is %d\r\n", Key_list[id],Counter);
    return Counter;
}
void Flash_Set(uint8_t id,uint32_t value)
{
    char * Counter_Temp;
    Counter_Temp = rt_malloc(32);
    snprintf(Counter_Temp, 32,"%ld", value);
    ef_set_env((const char*)&Key_list[id], Counter_Temp);
    ef_save_env();
    rt_free(Counter_Temp);
    LOG_D("Writing to %s is %d\r\n", Key_list[id],value);
    rt_thread_mdelay(10);
}

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览