|
麻烦帮忙看看flashdb配置是否正确。
const struct fal_flash_dev bt832_onchip_flash =
{
.name = "bt832_onchip",
.addr = 0x70000,
.len = 0x4000,
.blk_size = 4*1024,
.ops = {NULL, read, write, erase},
.write_gran = 32
};
#define FAL_PART_TABLE \
{ \
{FAL_PART_MAGIC_WORD, "fdb_kvdb1", "bt832_onchip", 0, 8*1024, 0}, \
}
实际的flash地址是 0-0x7 ffff 其中(0-0x26000)系统占用;0x26000-0x66000用户代码占用;0x66000-0x78000用作参数存储(这一块映射作为flashdb存储);
现在使用上面配置,执行
char * return_value = fdb_kv_get(&kvdb, "username");
/* the return value is NULL when get the value failed */
if (return_value != NULL) {
strncpy(temp_data, return_value, sizeof(temp_data));
LOG("get the 'username' value is: %s\n", temp_data);
}
else
{
LOG("fdb_kv_set_str");
// /* run string KV samples */
fdb_kv_set_str(&kvdb,"username",temp_data,strlen(temp_data));
}
uint32_t fdb_kv_set_str(fdb_kvdb_t kvdb,const char *key, const void *buf, size_t size)
{
#if(FLASHDB)
fdb_kv_set(kvdb, key, buf);
#endif
return 0;
}
直接j进hardfault.
easyflash4.0是正常的。
谢谢。 |
|