搜索
bottom↓
回复: 154

【升级】Flash闪存库EasyFlash,新增掉电保护功能

  [复制链接]

出0入8汤圆

发表于 2015-7-13 13:37:01 | 显示全部楼层
不用看了,绝对好东西,直接顶……以后拿来用

出0入8汤圆

发表于 2015-7-18 11:03:16 | 显示全部楼层
楼主,你好,试用成功,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入8汤圆

发表于 2015-7-18 11:29:04 | 显示全部楼层
本帖最后由 Jmhh247 于 2015-7-18 11:30 编辑

我在试用过程中遇到个小问题,在normal mode下,程序死在ef_env.c中

  /* total_size must be aligned with erase_min_size */
    if (EF_USER_SETTING_ENV_SIZE % erase_min_size == 0) {
        EF_ASSERT(EF_USER_SETTING_ENV_SIZE == total_size);                /*  死在这一行 line 124 */
    } else {
        EF_ASSERT((EF_USER_SETTING_ENV_SIZE/erase_min_size + 1)*erase_min_size == total_size);
    }

查了源码发现提供的demo里STM32型号的 PAGE_SIZE 为2046,而我用的STM32型号的 PAGE_SIZE 为1024,
EF_USER_SETTING_ENV_SIZE 默认定义为(2 * 1024),
total_size = ENV_SECTION_SIZE 默认定义为 ERASE_MIN_SIZE,其中ERASE_MIN_SIZE =  PAGE_SIZE 。

我将ENV_SECTION_SIZE 定义为(2 * ERASE_MIN_SIZE)后,满足条件 EF_ASSERT(EF_USER_SETTING_ENV_SIZE == total_size);
试用通过。

现在想请教楼主在normal mode下 EF_ASSERT(EF_USER_SETTING_ENV_SIZE == total_size); 这个判断是出于何种考虑……
能否直接改成
/* ENV section total bytes size in normal mode. */
#define ENV_SECTION_SIZE          (EF_USER_SETTING_ENV_SIZE)

如果可以这样改动,用户可能就不用同时修改 EF_USER_SETTING_ENV_SIZE 和 ENV_SECTION_SIZE两个参数了吧?

      



出0入8汤圆

发表于 2015-7-18 11:41:03 | 显示全部楼层
另外,说一点个人的喜好,楼主不要介意呀,我实在是不喜欢“printf”这个函数,总是觉得它占用了太多的空间……如果楼主能自己写一个方法取代它实现 debug log 输出,相信你的闪存库能完成一点瘦身吧……最后再次感谢楼主分享,希望 EasyFlash 越来越好。

出0入8汤圆

发表于 2015-7-18 13:39:47 | 显示全部楼层
sunnydragon 发表于 2015-7-18 13:21
1、建议你先看下说明文档(https://github.com/armink/EasyFlash/blob/master/docs/zh/api.md),我在里面 ...

好的,谢谢回复……说来惭愧,我还真的没看过这个文档,现在去看看,同时关注一下。

出0入8汤圆

发表于 2015-7-19 12:37:13 | 显示全部楼层
sunnydragon 发表于 2015-7-18 17:54
也说明我的引导工作可能没做好,你觉得该如何引导大家配置前看文档比较好呢? ...

我是一个菜鸟,既然楼主问了,我是愿意说说我的看法,不当之处,希望不要介意。

首先,你做的已经足够好了,有API说明文档,有demo, 有良好的编程风格……
如果能够让大家用够少的时间成本完成EasyFlash的上手使用,我觉得在引导方面需要一个有关的基础,
这个基础就是一份“移植说明”(我觉得“移植说明”与“API说明”是两码事),这里需要说明一下我只是
粗略看了一下,可能在楼主的文档里存在这份“移植说明”,是我没发现,我一直比较担忧自己智商的一
点就是容易大意,如果有,希望楼主不要打我呀……接着说正经的,我想在移植说明里可以指出哪些是
需要跟据用户的平台可能需要修改的宏,修改这些宏有什么注意事项等。

比如说我在试用的时候遇到那个问题,就是因为没搞明白ENV_USER_SETTING_SIZE  与
ENV_SECTION_SIZE (Github最新的代码中已经改为ENV_AREA_SIZE)的关系导致出错,
现在看来 ENV_USER_SETTING_SIZE 只能是小于等于 ENV_AREA_SIZE的,我上次只关心
ENV_USER_SETTING_SIZE这个宏,结果搞悲剧了,它的值大于ENV_SECTION_SIZE,看
了源码才查出问题点。

啰嗦这么多,最后楼主有时间的话,可以看下这个帖[分享][交流]发一个通用按键模块,简单易用
我个人觉得它在引导方面讲的挺好的。


出0入8汤圆

发表于 2015-7-21 15:29:48 | 显示全部楼层
sunnydragon 发表于 2015-7-21 13:15
恩,移植文档是应该有的,之前把移植相关的内容和API文档放在一起,有点乱,这块我再完善下。

你的这个 ...

之前我遇到的问题是我自身的问题(未看文档,汗),你的配置文档写的很清楚,无歧义,期待有更多的开源。

出0入8汤圆

发表于 2015-7-23 20:29:19 | 显示全部楼层
sunnydragon 发表于 2015-7-22 12:03
移植文档写好了,你看下有没有需要改进的?https://github.com/armink/EasyFlash/blob/master/docs/zh/po ...

看了下,感觉还不错,暂时提不出建议,可以等其他网友看是否有改进建议。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 22:10

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

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