搜索
bottom↓
楼主: sunnydragon

【开源】嵌入式闪存库 EasyFlash for STM32,支持Env和IAP

  [复制链接]

出0入0汤圆

发表于 2015-2-11 12:22:25 来自手机 | 显示全部楼层
顶楼主!

出0入0汤圆

发表于 2015-2-11 13:38:27 | 显示全部楼层
高级赞!

出0入0汤圆

发表于 2015-2-11 13:39:37 | 显示全部楼层
很不错,感谢楼主 

出0入0汤圆

发表于 2015-2-11 14:15:55 | 显示全部楼层
测试一下先

出0入0汤圆

发表于 2015-2-11 14:20:24 | 显示全部楼层
楼主的例程应该出个最精简的,去掉RTT

出0入198汤圆

 楼主| 发表于 2015-2-11 16:41:50 | 显示全部楼层
yaoyyie2003 发表于 2015-2-11 14:20
楼主的例程应该出个最精简的,去掉RTT

亲,用RTT最主要是用它的控制台功能,模拟类似Uboot命令行环境,这样用户好上手体验并测试。
库本身和RTT是没有关系的。

出0入0汤圆

发表于 2015-2-11 17:02:50 | 显示全部楼层
谢谢分享~~~~~~~~

出0入0汤圆

发表于 2015-2-11 17:10:53 | 显示全部楼层
sunnydragon 发表于 2015-2-11 16:41
亲,用RTT最主要是用它的控制台功能,模拟类似Uboot命令行环境,这样用户好上手体验并测试。
库本身和RTT ...

搞在一起的话读代码有点困难,知道是好东西,就是没法上手,不想去研究RTT。多谢楼主的贡献,我会继续学习的。

出0入198汤圆

 楼主| 发表于 2015-2-11 17:30:02 | 显示全部楼层
yaoyyie2003 发表于 2015-2-11 17:10
搞在一起的话读代码有点困难,知道是好东西,就是没法上手,不想去研究RTT。多谢楼主的贡献,我会继续学 ...

恩~说的也是。最近在设计让库支持写平衡模式。等忙完了可以考虑在Demo中再增加个裸机版本。
你有没有兴趣搞搞裸机版本呢?我可以协助你做出来。再推送到github上去,方便大家。

出0入0汤圆

发表于 2015-2-11 18:13:24 | 显示全部楼层
狂顶楼主啊,收藏下,研读代码,看看能帮上什么忙,

出0入198汤圆

 楼主| 发表于 2015-2-11 18:15:52 | 显示全部楼层
多谢支持,大家的支持是我坚持维护的动力。

出0入0汤圆

发表于 2015-2-11 21:01:32 | 显示全部楼层
sunnydragon 发表于 2015-2-11 17:30
恩~说的也是。最近在设计让库支持写平衡模式。等忙完了可以考虑在Demo中再增加个裸机版本。
你有没有兴趣 ...

好啊,不胜荣幸

出0入198汤圆

 楼主| 发表于 2015-2-11 21:04:38 | 显示全部楼层

OK。签名里有我的联系方式,你方便的时候可以跟我联系下哈~

出0入198汤圆

 楼主| 发表于 2015-2-12 21:54:16 | 显示全部楼层
huchunlei 发表于 2015-1-25 13:44
请问下 用于  spi flash  的时候, 有没有写平衡的功能呢?  最近比较纠结, 有个项目,要保存大量数据,  ...

好消息,“写平衡”已经增加上去了,目前环境变量支持两种模式,默认是常规模式,欢迎下载试用并反馈哦。可以通过以下方式获取最新源码。
Github: https://github.com/armink/EasyFlash
OsChina: http://git.oschina.net/armink/EasyFlash
Coding: https://coding.net/u/armink/p/EasyFlash/git

出0入198汤圆

 楼主| 发表于 2015-2-12 21:58:55 | 显示全部楼层
好消息,看到这么多网友需要“写平衡”,现在“写平衡”已经增加上去了,是一种比较简洁的实现思路。
目前环境变量支持两种模式,默认是常规模式,欢迎大家下载试用并反馈哦。可以通过以下方式获取最新源码。
github : https://github.com/armink/EasyFlash
oschina: http://git.oschina.net/armink/EasyFlash
coding : https://coding.net/u/armink/p/EasyFlash/git

出425入0汤圆

发表于 2015-2-13 09:36:21 | 显示全部楼层
sunnydragon 发表于 2015-2-12 21:58
好消息,看到这么多网友需要“写平衡”,现在“写平衡”已经增加上去了,是一种比较简洁的实现思路。
目前 ...

非常感谢你的奉献。我在做一个产品,用STM32F103R8T6,裸机前后台系统。可以用吗?

出0入0汤圆

发表于 2015-2-13 10:03:45 | 显示全部楼层
支持一下,做的好。

出0入0汤圆

发表于 2015-2-13 10:12:48 | 显示全部楼层
建议把文档放在doc目录下

出0入198汤圆

 楼主| 发表于 2015-2-13 10:40:03 | 显示全部楼层
guolun 发表于 2015-2-13 09:36
非常感谢你的奉献。我在做一个产品,用STM32F103R8T6,裸机前后台系统。可以用吗? ...

可以的,不需要依赖任何操作系统和mcu

出0入198汤圆

 楼主| 发表于 2015-2-13 10:41:18 | 显示全部楼层
jm2011 发表于 2015-2-13 10:12
建议把文档放在doc目录下

好的,后期逐步完善的,包括文档国际化。

出0入0汤圆

发表于 2015-2-14 23:32:29 来自手机 | 显示全部楼层
先MARK,年后上班再慢慢看,谢谢楼主。

出0入0汤圆

发表于 2015-2-27 10:01:11 | 显示全部楼层
sunnydragon 发表于 2015-2-12 21:58
好消息,看到这么多网友需要“写平衡”,现在“写平衡”已经增加上去了,是一种比较简洁的实现思路。
目前 ...

这个必须支持!
楼主牛

出0入0汤圆

发表于 2015-2-27 10:55:51 | 显示全部楼层
酷!建议去掉tr-t。弄个裸机的demo,方便不玩os的电工。

出0入0汤圆

发表于 2015-2-27 10:59:43 | 显示全部楼层
如果stm32开启了读保护(会强制把flash前4k写保护)。bl还能升级吗。实际产品中基本都会开启读保护的,bl升级是个问题

出0入0汤圆

发表于 2015-2-27 12:10:00 | 显示全部楼层

裸机的,写好了吗,可否共享下,谢谢

出0入0汤圆

发表于 2015-2-27 17:09:03 | 显示全部楼层
非常不错的想法.

出0入13汤圆

发表于 2015-2-28 08:19:31 来自手机 | 显示全部楼层
不错,支持这类的开源

出0入0汤圆

发表于 2015-2-28 09:38:03 | 显示全部楼层
MARK 备用!

谢谢分享,辛苦了LZ.

强烈支持!。。

出0入198汤圆

 楼主| 发表于 2015-3-1 13:16:39 | 显示全部楼层
Ourstory 发表于 2015-2-27 10:59
如果stm32开启了读保护(会强制把flash前4k写保护)。bl还能升级吗。实际产品中基本都会开启读保护的,bl升 ...

不明白你说的“Bootloader升级”指的是是升级APP还是自己

出0入0汤圆

发表于 2015-3-1 13:31:14 | 显示全部楼层
sunnydragon 发表于 2015-3-1 13:16
不明白你说的“Bootloader升级”指的是是升级APP还是自己

bl自己升级。不知是否有好办法

出0入198汤圆

 楼主| 发表于 2015-3-1 14:29:25 | 显示全部楼层
Ourstory 发表于 2015-3-1 13:31
bl自己升级。不知是否有好办法

对于STM32没有测试过,但升级Bootloader对于其余MCU应该可以实现的。
如果正如你所说“会强制把flash前4k写保护”,那么可以把负责业务处理的Bootloader放到4K位置之后,Flash前4K只存放跳转到Bootloader的代码。

出0入198汤圆

 楼主| 发表于 2015-3-11 13:44:19 | 显示全部楼层
liujinhan 发表于 2015-2-28 09:38
MARK 备用!

谢谢分享,辛苦了LZ.

最近又做了些优化,欢迎试用并分享感受哈。

出0入0汤圆

发表于 2015-3-11 13:50:33 | 显示全部楼层
哈哈,这个是要支持一下

出0入0汤圆

发表于 2015-3-11 13:59:21 | 显示全部楼层

谢谢分享

出0入0汤圆

发表于 2015-3-11 14:27:09 | 显示全部楼层
好东西,标记一下,多谢分享

出0入0汤圆

发表于 2015-3-11 14:34:09 来自手机 | 显示全部楼层
Ourstory 发表于 2015-2-27 10:55
酷!建议去掉tr-t。弄个裸机的demo,方便不玩os的电工。

是的,很多不带os的,能出的话最好

出0入0汤圆

发表于 2015-3-12 17:10:04 | 显示全部楼层
谢谢!时刻关注你。去年也搞了1个月的平衡操作串行Flash,能力不行,搞的有问题就放下了,现在可以有借鉴了。

出0入0汤圆

发表于 2015-3-14 11:39:37 | 显示全部楼层
sunnydragon 发表于 2015-1-26 10:14
不分系统的,我只不过用了rt-thread的printf打印功能

能不能提供个裸机的呢,对Rtthread 不熟悉 程序从哪里运行的没弄清楚

出0入0汤圆

发表于 2015-3-14 11:40:33 | 显示全部楼层
sunnydragon 发表于 2015-2-11 16:41
亲,用RTT最主要是用它的控制台功能,模拟类似Uboot命令行环境,这样用户好上手体验并测试。
库本身和RTT ...

那个update 是在哪里呢?

出0入0汤圆

发表于 2015-3-14 11:53:59 | 显示全部楼层
bad_fpga 发表于 2015-1-25 13:25
好东西,收藏,FLASH IAP

这个的 flash IAP 你有找到例子吗?

出0入0汤圆

发表于 2015-3-14 11:54:58 | 显示全部楼层
sunnydragon 发表于 2015-2-11 21:04
OK。签名里有我的联系方式,你方便的时候可以跟我联系下哈~

IAP的 演示程序有吗?好像这有evn的呢?

出0入0汤圆

发表于 2015-3-14 17:14:04 | 显示全部楼层
本帖最后由 XIUQIN 于 2015-3-14 17:15 编辑

你好!我看了半天你写的程序,在平衡写里只是通过键值改写单个的变量。而批量写的函数“FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size)”,好像没有平衡处理。能力有限请前辈指点。

出0入0汤圆

发表于 2015-3-15 02:04:09 | 显示全部楼层
平衡功能+1

出0入198汤圆

 楼主| 发表于 2015-3-19 20:11:43 | 显示全部楼层
yxylxj 发表于 2015-3-14 11:54
IAP的 演示程序有吗?好像这有evn的呢?

IAP的那个演示Demo截图是我即将开源的另外一个Bootloader项目EasyBoot,这个项目是基于EasyFlash,所以我先开源了EasyFlash。
近期会发布EasyBoot的,请及时关注我的Github或论坛动态。

出0入198汤圆

 楼主| 发表于 2015-3-19 20:12:46 | 显示全部楼层
XIUQIN 发表于 2015-3-14 17:14
你好!我看了半天你写的程序,在平衡写里只是通过键值改写单个的变量。而批量写的函数“FlashErrCode flash ...

有做写平衡处理的,你看的是Github上的最新源码吗?

出0入198汤圆

 楼主| 发表于 2015-3-19 20:13:22 | 显示全部楼层

写平衡功能已经加上去了,欢迎试用~

出0入0汤圆

发表于 2015-3-19 20:57:39 | 显示全部楼层
写平衡处理这个好好看看先,谢谢楼主分享哦

出0入0汤圆

发表于 2015-3-20 00:10:47 | 显示全部楼层
楼主,请问在写flash的过程中掉电,下次开机怎么处理坏块?

出0入134汤圆

发表于 2015-3-20 01:30:35 | 显示全部楼层
真心有用,之前还在想怎么通过485来升级,研究下。

出0入0汤圆

发表于 2015-3-20 08:29:09 | 显示全部楼层
sunnydragon 发表于 2015-3-19 20:12
有做写平衡处理的,你看的是Github上的最新源码吗?

是的,我的目的是:需要多次循环储存一个个数组,每个数组2000个字节的数据。在前辈的平衡写文件里,我只是看到了这个通过键值操作单个变量的的API(FlashErrCode flash_set_env(const char *key, const char *value))。在接口文件里有FlashErrCode flash_write(uint32_t addr, const uint32_t *buf, size_t size),这个可以批量写,但好像不是平衡写。

出0入198汤圆

 楼主| 发表于 2015-3-23 09:56:10 | 显示全部楼层
fshunj 发表于 2015-3-20 00:10
楼主,请问在写flash的过程中掉电,下次开机怎么处理坏块?

如果是在断电的过程中产生的坏块,那重新上电的时候只会把默认的坏境变量写入的正常的扇区。目前软件上还没有掉电保护机制。

出0入198汤圆

 楼主| 发表于 2015-3-23 09:57:34 | 显示全部楼层
XIUQIN 发表于 2015-3-20 08:29
是的,我的目的是:需要多次循环储存一个个数组,每个数组2000个字节的数据。在前辈的平衡写文件里,我只 ...

在 FlashErrCode flash_save_env(void)方法中,平时环境变量是存在RAM中的

出0入0汤圆

发表于 2015-3-23 10:06:31 | 显示全部楼层
很不错,有时间测试。谢谢楼主分享。

出0入0汤圆

发表于 2015-3-23 10:07:55 | 显示全部楼层
支持樓主,感謝樓主的無私開源精神,純頂!

出0入0汤圆

发表于 2015-3-23 14:34:01 | 显示全部楼层
sunnydragon 发表于 2015-3-23 09:57
在 FlashErrCode flash_save_env(void)方法中,平时环境变量是存在RAM中的

谢谢!研究中........

出0入0汤圆

发表于 2015-3-23 16:46:11 | 显示全部楼层
sunnydragon 发表于 2015-3-23 09:56
如果是在断电的过程中产生的坏块,那重新上电的时候只会把默认的坏境变量写入的正常的扇区。目前软件上还 ...

最好弄 掉电保护,例如有一份 最新的副本什么的

出0入0汤圆

发表于 2015-3-23 17:19:09 | 显示全部楼层
顶楼主,希望能支持更多的器件,如K64F。谢谢了。

出0入0汤圆

发表于 2015-3-24 09:07:54 | 显示全部楼层
掉电机制也很重要,期待加上去

出0入198汤圆

 楼主| 发表于 2015-3-27 11:09:29 | 显示全部楼层
XIUQIN 发表于 2015-3-23 14:34
谢谢!研究中........

记得你之前用过我开源的FreeModbus主机软件。EasyFlash就是为了配合Modbus来保存远程保存设备的运行参数而设计开发的。多多反馈建议哈~

出0入198汤圆

 楼主| 发表于 2015-3-27 11:10:32 | 显示全部楼层
fshunj 发表于 2015-3-23 16:46
最好弄 掉电保护,例如有一份 最新的副本什么的

好的~我评估下,必要时,后期可以加入这个选项。

出0入198汤圆

 楼主| 发表于 2015-3-27 11:14:02 | 显示全部楼层
sblpp 发表于 2015-3-23 17:19
顶楼主,希望能支持更多的器件,如K64F。谢谢了。

我的重心会集中关注软件的核心框架稳定性上,毕竟精力有限,其余平台的支持也需要大家来一起努力,移植非常简单,我会随时来协助大家解决出现的问题。

出0入198汤圆

 楼主| 发表于 2015-3-27 11:15:21 | 显示全部楼层
soos 发表于 2015-3-24 09:07
掉电机制也很重要,期待加上去

好的啊,已经有两个网友对这个功能有需求了,后面还有需要的网友可以跟帖+1,大家的支持是我坚持开源的动力。

出0入0汤圆

发表于 2015-3-27 11:26:48 | 显示全部楼层
mark  嵌入式闪存库 EasyFlash for STM32

出0入0汤圆

发表于 2015-3-27 11:30:03 | 显示全部楼层
本帖最后由 XIUQIN 于 2015-3-27 11:38 编辑
sunnydragon 发表于 2015-3-27 11:09
记得你之前用过我开源的FreeModbus主机软件。EasyFlash就是为了配合Modbus来保存远程保存设备的运行参数 ...


是的,感觉那个写的很好很规范!自从上次修过那个BUG后很稳定。谢谢前辈,从你这学到很多。内力还不够,对EasyFlash的学习还是有点吃力。请问前辈如果我要保存一个数组我要那几步操作呢?

出0入0汤圆

发表于 2015-3-27 16:13:56 | 显示全部楼层
iap实现,easyflash

出0入0汤圆

发表于 2015-3-27 16:35:13 | 显示全部楼层
谢谢分享,认真学习

出0入0汤圆

发表于 2015-3-27 16:44:58 | 显示全部楼层
mark,收藏

出0入198汤圆

 楼主| 发表于 2015-3-31 08:21:08 | 显示全部楼层
XIUQIN 发表于 2015-3-27 11:30
是的,感觉那个写的很好很规范!自从上次修过那个BUG后很稳定。谢谢前辈,从你这学到很多。内力还不够, ...

首先要定义下数组中元素的名称例如"name",再使用flash_set_env方法给这个元素赋值,这个值是字符串类型,如果整形数组则需要用整形转字符串,最后使用flash_save_env将修改后的环境变量保存到Flash中。
更多细节参考说明文档,那个Gif动画也描述的很清楚。

出0入0汤圆

发表于 2015-3-31 13:30:12 | 显示全部楼层
sunnydragon 发表于 2015-3-31 08:21
首先要定义下数组中元素的名称例如"name",再使用flash_set_env方法给这个元素赋值,这个值是字符串类型 ...

谢谢!我再了解中。

出0入0汤圆

发表于 2015-4-23 21:39:45 | 显示全部楼层
这个确实不错,楼主,其读写效率和文件系统比起来差异有多大?

出0入0汤圆

发表于 2015-4-24 09:13:16 | 显示全部楼层
楼主很强大,下载备用

出0入198汤圆

 楼主| 发表于 2015-4-24 21:26:34 | 显示全部楼层
truefriend 发表于 2015-4-23 21:39
这个确实不错,楼主,其读写效率和文件系统比起来差异有多大?

这个是直接操作Flash,不知道你说的读写效率是从哪个方面进行对比。

出0入0汤圆

发表于 2015-4-25 00:42:18 | 显示全部楼层
请教一个不是那么主要的事情,楼主您的动态gif图片是使用什么软件制作的,感觉十分厉害?

出0入198汤圆

 楼主| 发表于 2015-4-25 07:54:08 | 显示全部楼层
散吧散吧 发表于 2015-4-25 00:42
请教一个不是那么主要的事情,楼主您的动态gif图片是使用什么软件制作的,感觉十分厉害? ...

用FSCapture截的图,用Ulead GIF Animator 5做的Gif

出0入0汤圆

发表于 2015-5-13 00:05:50 | 显示全部楼层
感谢分享,有空移植适用于一下。

出0入198汤圆

 楼主| 发表于 2015-5-13 12:04:08 | 显示全部楼层
videofun 发表于 2015-5-13 00:05
感谢分享,有空移植适用于一下。

http://www.amobbs.com/thread-5620936-1-1.html 这个是较新的版本,建议用最新版本移植

出0入0汤圆

发表于 2015-5-13 21:15:00 | 显示全部楼层
谢谢楼主的热情答复,楼主太棒了。

出0入0汤圆

发表于 2015-5-13 23:15:13 | 显示全部楼层

谢谢分享,认真学习

出0入0汤圆

发表于 2015-5-14 05:15:50 来自手机 | 显示全部楼层
相当于简化版的u-boot吧

出0入0汤圆

发表于 2015-5-14 23:09:44 | 显示全部楼层
强悍,明天下载学习,先顶为快~

出0入198汤圆

 楼主| 发表于 2015-5-15 21:21:16 | 显示全部楼层
qiushui_007 发表于 2015-5-14 05:15
相当于简化版的u-boot吧

ENV功能是相当于简化版的Uboot

出0入0汤圆

发表于 2015-6-11 10:58:05 | 显示全部楼层
开源传万世

出0入0汤圆

发表于 2015-6-12 15:55:30 | 显示全部楼层
掉电机制+1

出0入0汤圆

发表于 2015-6-12 17:35:54 | 显示全部楼层
好像很牛逼的样子

出0入198汤圆

 楼主| 发表于 2015-7-3 15:29:00 | 显示全部楼层

这个功能现在正在测试。建议及时关注Github上的动态。

出0入198汤圆

 楼主| 发表于 2015-7-3 15:42:24 | 显示全部楼层
最近写了一篇《如何在嵌入式产品中应用键值存储数据库》:http://geek.csdn.net/news/detail/35184,里面有一些EasyFlash的使用场景。欢迎大家拍砖。

出0入0汤圆

发表于 2015-7-6 14:45:38 | 显示全部楼层
谢谢分享。。。

出0入0汤圆

发表于 2015-7-18 22:37:45 | 显示全部楼层
膜拜大神,资料收下了

出0入0汤圆

发表于 2015-7-20 08:32:08 | 显示全部楼层
给楼主顶上呀

出0入0汤圆

发表于 2015-8-13 14:01:35 | 显示全部楼层
关注一下,感谢楼主!

出0入0汤圆

发表于 2015-9-13 11:22:38 | 显示全部楼层
sunnydragon 发表于 2015-1-26 08:19
欢迎试用及反馈哦~可以在github上watch这个项目,这样就能知道随时知道项目新进展。 ...

我现在是裸机跑  配合一个shell  环境变量的使用非常棒, 由于iap 给的rt 的代码,得消化下 用,这个软件库用起来非常棒

出0入0汤圆

发表于 2015-9-13 16:07:08 | 显示全部楼层
楼主,在https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32看到一个modbus主站,这个可以用吗?还有看介绍好像支持ucos系统,怎么代码内好像没有,先谢谢楼主的共享。。。。

出0入198汤圆

 楼主| 发表于 2015-9-13 20:03:24 | 显示全部楼层
changxiaoqing11 发表于 2015-9-13 16:07
楼主,在https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32看到一个modbus主站,这个可以用吗 ...

这个项目已经开源很久了,挺成熟的,你放心用吧。ucos的移植之前是别的热心网友做的,你留下邮箱,我邮件发给你。

出0入0汤圆

发表于 2015-9-13 20:11:12 | 显示全部楼层
sunnydragon 发表于 2015-9-13 20:03
这个项目已经开源很久了,挺成熟的,你放心用吧。ucos的移植之前是别的热心网友做的,你留下邮箱,我邮件 ...

邮箱changxiaoqing-113@163.com,再次感谢。

出0入0汤圆

发表于 2015-9-23 09:32:37 | 显示全部楼层
学习了,谢谢分享

出0入0汤圆

发表于 2015-10-29 11:14:12 | 显示全部楼层
sunnydragon 发表于 2015-9-13 20:03
这个项目已经开源很久了,挺成熟的,你放心用吧。ucos的移植之前是别的热心网友做的,你留下邮箱,我邮件 ...

求教一个使用方法:

我要保存一个工艺参数,参数有很多个数值,我想搞成下面那样的,我想问一下这个数值字符串能有多长
ef_set_env("temp","123,456,789,123,456");

出0入198汤圆

 楼主| 发表于 2015-10-29 16:03:44 | 显示全部楼层
RAMILE 发表于 2015-10-29 11:14
求教一个使用方法:

我要保存一个工艺参数,参数有很多个数值,我想搞成下面那样的,我想问一下这个数值 ...

放心用吧,这个长度是没有限制的,只要你的环境变量分区有足够的容量

出0入0汤圆

发表于 2015-10-29 16:04:52 | 显示全部楼层
sunnydragon 发表于 2015-10-29 16:03
放心用吧,这个长度是没有限制的,只要你的环境变量分区有足够的容量

好的,谢谢了,刚才我已经测试没问题

    line = ef_get_env("pf1");            /*  */   
    ctemp = strtok( line, delims );
    pf[0] = atoi(ctemp);
    ctemp = strtok( NULL , delims );
    pf[1] = atoi(ctemp);
    ctemp = strtok( NULL, delims );
    pf[2] = atoi(ctemp);
    ctemp = strtok( NULL, delims );
    pf[3] = atoi(ctemp);
         

出0入198汤圆

 楼主| 发表于 2015-10-29 21:35:46 | 显示全部楼层
RAMILE 发表于 2015-10-29 16:04
好的,谢谢了,刚才我已经测试没问题

    line = ef_get_env("pf1");            /*  */   

客气~没有问题就好。

另外,strtok会改变源字符串,这里不建议使用,因为这里返回的是环境变量缓冲区中数据地址,所以如果此时再调用保存环境变量方法,会导致环境变量被意外修改。

出0入0汤圆

发表于 2016-6-1 09:20:10 | 显示全部楼层
昨天用demo试了一下Env,感觉这不是一种高效的存储变量的方式。首先我理解的key和value,key是索引以字符的形式存在(例:key=“times”,那么这个索引至少需要5个字节,事实上这个地方是4字节对齐的,我猜是8个字节),value是值以字符形式存在(例:value=65535,那么这个值需要至少5个字节,事实上这个貌似也是4字节对齐吧,那实际就是8个字节。如果用unsigned short int类型存储,只需要2个字节)。这样下来就是10~16个字节才能存一个2字节的数据,这对我的项目来说就受不了了,flash顶多也就4~8M,跟预期的使用大小差5倍多一些。那么问题来了,先不考虑key的存在形式,value如果能指定类型进行存储的话,我觉得存储效率也会提不少。不太懂数据的原理,只算提一下需求。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 00:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表