Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
easyflash
关于【easyflash 】4.0.99版本使用问题请教
发布于 2019-09-16 19:52:52 浏览:1795
订阅该版
1、rtconfig.h配置如下: ```c #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、分区表配置如下: ```c #define FAL_PART_TABLE \ { \ {FAL_PART_MAGIC_WROD, "easyflash", NOR_FLASH_DEV_NAME, 0, 4*128*1024, 0}, \ {FAL_PART_MAGIC_WROD, "download", NOR_FLASH_DEV_NAME, 1024*1024, 6*128*1024, 0}, \ } ``` 3、默认环境变量配置如下: ```c /* 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)????????? ``` ![ef.png](/uploads/201909/16/195933oeg2grae2xjfx66k.png) 跟着移植教程抄的一个测试历程,测试结果为 `“LF”` ```c 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); ``` ![jie.png](/uploads/201909/16/195837yegauage9lltbatb.png)
查看更多
5
个回答
默认排序
按发布时间排序
bevis
2019-09-17
这家伙很懒,什么也没写!
配置看起来没问题,图中的警告是因为第一次空片写入。第二次就不会有了 ```c /* 系统参数写入 */ void save_param(const char *key, const void *value_buf, size_t buf_len) { ef_set_env_blob(key, value_buf, buf_len); } /* 系统参数读取 */ void get_param(const char *key, void *value_buf, size_t buf_len) { ef_get_env_blob(key, value_buf, buf_len , NULL); ``` }
bevis
2019-09-17
这家伙很懒,什么也没写!
```c #define PKG_USING_EASYFLASH #define PKG_EASYFLASH_ENV #define PKG_EASYFLASH_ENV_AUTO_UPDATE #define PKG_EASYFLASH_ENV_VER_NUM 0 #define PKG_EASYFLASH_LOG #define PKG_EASYFLASH_LOG_AREA_SIZE 770048 #define PKG_EASYFLASH_IAP #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 #define PKG_USING_ULOG_EASYFLASH #define ULOG_EASYFLASH_BACKEND_ENABLE #define ULOG_EASYFLASH_CFG_SAVE_ENABLE #define PKG_USING_ULOG_EASYFLASH_LATEST_VERSION ```
armink
2019-09-17
这家伙很懒,什么也没写!
resetenv 试试 正常默认的环境变量只有第一次才会保存的 flash 上 另外,也贴一下 ef_port.c 的移植代码,确保是用的 fal 里的一个分区
hurryD
2019-09-18
这家伙很懒,什么也没写!
感谢龙哥的指点哦^_^ resetenv后就可以了;还有2个问题哈 1、按照一般使用习惯,把系统所以需要掉电存储的变量都放在default_env_set[]中,那么在ef_set_env_blob某个变量的时候是不是就会把所以变量都存到FLASH中呢?(就比如 A B 两个变量,都改变了,我只执行了ef_set_env_blob(A),B是不是也会被存储了呢?) 在每次ef_set_env_blob后就会立即执行存入FLASH吗 2、每次掉电上电的时候需要执行ef_get_env_blob将所以变量从FLASH中读取出来存储到这来的default_env_set[]中吗?
armink
2019-09-18
这家伙很懒,什么也没写!
>感谢龙哥的指点哦^_^ resetenv后就可以了;还有2个问题哈 > >1、按照一般使用习惯,把系统所以需要掉电存储 ... --- 1,对的,因为 V4.0 开始,取消了缓存,不需要再调用 saveenv 接口 2、没看懂你的问题,可能你对于 默认环境变量的用处还不是很了解,看下相关的文档介绍吧,先多用用
撰写答案
登录
注册新账号
关注者
0
被浏览
1.8k
关于作者
hurryD
这家伙很懒,什么也没写!
提问
1
回答
1
被采纳
0
关注TA
发私信
相关问题
1
easyflash 用来存储 传感器定时采样的数据适不适合?
2
easyflash存放于fat文件系统中,但是会擦除文件系统
3
EasyFlash移植失败,硬件发生错误?
4
easyflash demo擦写完数据后再上电就挂了?
5
easyflash初始化env无法自动写入默认环境变量?
6
有在STM32L4上用easyflash的么?请教个问题
7
[已解决] easyflash 使用内部 flash 无法保存参数
8
FAL 上的FlashDB、EasyFlash、EasyLogger调试经历
9
easyflash存储问题
10
easyflash可以用来存储300个小文件且能够按照日期分类检索吗?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
NXP MCXN947测评(一)开箱+环境配置
2
stm32f103的adc+dma多通道采集数据
3
恩智浦FRDM-MCX947上的 IIC(硬件) 实践
4
栈溢出及中断向量偏移BUG记录与分析
5
NXP MCXN947测评之 adc
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
Bootloader
AT
ART-Pi
CAN总线
Hardfault
FinSH
USB
文件系统
RT-Thread
DMA
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
ota在线升级
WIZnet_W5500
cubemx
flash
I2C
UART
packages_软件包
freemodbus
潘多拉开发板_Pandora
PWM
定时器
BSP
ADC
keil_MDK
socket
中断
编译报错
MicroPython
Debug
SDIO总线
GD32
msh
rt_mq_消息队列_msg_queue
ulog
C++_cpp
SFUD
本月问答贡献
xiaorui
20
个答案
3
次被采纳
Juggernaut
12
个答案
3
次被采纳
踩姑娘的小蘑菇
12
个答案
2
次被采纳
小小李sunny
10
个答案
2
次被采纳
a1012112796
8
个答案
1
次被采纳
本月文章贡献
ZVML_9668
4
篇文章
6
次点赞
Lu_盼盼
4
篇文章
3
次点赞
Z_Y
3
篇文章
5
次点赞
ThinkCode
2
篇文章
2
次点赞
oxlm
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部