1、rtconfig.h配置如下:
#define PKG_USING_EASYFLASH
#define PKG_EASYFLASH_ENV
#define PKG_EASYFLASH_ERASE_GRAN 4096
#define PKG_EASYFLASH_WRITE_GRAN_1BIT
#define PKG_EASYFLASH_WRITE_GRAN 1
#define PKG_EASYFLASH_START_ADDR 0
#define PKG_EASYFLASH_DEBUG
#define PKG_USING_EASYFLASH_LATEST_VERSION
#define PKG_EASYFLASH_VER_NUM 0x99999
2、分区表配置如下:
#define FAL_PART_TABLE
{
{FAL_PART_MAGIC_WROD, "easyflash", NOR_FLASH_DEV_NAME, 0, 41281024, 0},
{FAL_PART_MAGIC_WROD, "download", NOR_FLASH_DEV_NAME, 10241024, 6128*1024, 0},
}
3、默认环境变量配置如下:
/* default ENV set for user */
static const ef_env default_env_set[] =
{
{"username", "hurryD", 0},
{"password", "123456", 0},
{"boot_count",&boot_count, sizeof(boot_count)},
{"boot_time", &boot_time, sizeof(boot_time)},
};
运行后现象如下:
Sector header check failed. Format this sector (0x00000000)?????????
跟着移植教程抄的一个测试历程,测试结果为 “LF”
int ef_test(uint8_t argc, char **argv)
{
char value[32];
size_t len;
/* 如果环境变量长度未知,可以先获取 Flash 上存储的实际长度,将通过 len 返回 */
ef_get_env_blob("username", NULL, 0, &len);
/* 如果长度已知,使用 value 缓冲区,存放读取回来的环境变量值数据,并将实际长度返回 */
len = ef_get_env_blob("username", value, sizeof(value) , NULL);
rt_kprintf("ef_test username :");
rt_kprintf("%s
", value);
return 0;
}
MSH_CMD_EXPORT(ef_test, easyflash test);
更多回帖