Flash基础入门之SM470 F05库函数阅读笔记
小标 2019-01-24 来源 : 阅读 1036 评论 0

摘要:本文主要向大家介绍了Flash基础入门之SM470 F05库函数阅读笔记,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

本文主要向大家介绍了Flash基础入门之SM470 F05库函数阅读笔记,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

函数:
1.Flash_Compact_B
用于flash硬件检测。检测并校正flash里的电荷损耗bit。该函数一次只校正一个sector。
2.Flash_Blank_B
用于验证flash是否被正确擦除。每个bank单独调用,不能同时用于多个bank。
1=region is blank;
0=region is no blank(读取值为非0xFFFFFFFF)
3.Flash_Verify_B
 验证写入的数据是否正确。
4.Flash_Verify_Data_B
验证写入的数据是否正确。
与Flash_Verify_B的区别是:指定了用于跟flash数据进行比对的buff里的数据长度。
NOTE:
1.调用Flash_Erase_B,Flash_Sector_Erase_B,Flash_Start_Erase_B之前先调用Flash_Compact_B,Flash_Compact_B不会对现有数据有任何影响,仅校正有可能存在的电荷损耗现象(depletion);
2.擦除过程中发生中断可能会导致产生这样的位:紧接着的Flash_Blank_B检测为已擦除,但是未被完全擦除(完全充电)的位。
解决方法:通过调用Flash_Blank_B将status.Stat1传给Flash_Erase_B来修正这样的bit。1)若Flash_Blank_B返回值为TRUE,则status.Stat1 = 0x12345678,Flash_Erase_B将屏蔽预处理步骤(将所有的位置0),仅擦除和compact;
2)若Flash_Blank_B返回值为FALSE,则status.Stat1 = 0x00000000,Flash_Erase_B执行完整的过程(full erase)。
**由于Flash_Start_Erase_B和Flash_Erase_Sector_B没有status参数,所以无法使用该功能。
结合以上两点,我们可以得出这样的结论:
1)每次擦除之前先调用Flash_Compact_B检测硬件是否完好;
2)再调用Flash_Blank_B检测是否为blank,如果是,就可以省去擦除预处理步骤以节省大量时间(使用FLASH_ERASE_B);
 
不同的擦除流程比较
1.使用FLASH_ERASE_B函数
1)可擦除任意个sector;
2)从数据吞吐量的角度看令人满意:被识别为blank的sector处理更快,但代码复杂;
3)优点:能够屏蔽预处理(屏蔽预处理能够极大地提高blank sector的擦除速度);
4)即使被识别为blank的块也要再擦除一次,以避免Flash_Erase_B过程中产生的不合格的数据;(使用之前无论如何再擦一遍就是了)
**Flash_Erase_B是唯一一个记录erase和compaction脉冲记数的函数。(有什么用处呢?) 

2.使用FLASH_ERASE_SECTOR_B函数
1)可擦除任意个sector;
2)从数据吞吐量的角度看令人不太满意:所有的sector都执行了完整的擦除过程(full erase,包括预处理过程,相比FLASH_ERASE_B要慢);
3)优点:代码简洁;
4)即使被识别为blank的块也要再擦除一次,以避免Flash_Erase_Sector_B过程中产生的不合格的数据;(跟FLASH_ERASE_B一样)
5)无相关脉冲记录(相比于FLASH_ERASE_B)。

3.使用FLASH_START_ERASE_B和FLASH_STATUS_U16
1)可擦除任意个sector;
2)优点:多任务处理,状态机在执行擦除操作的同时可以执行其他指令
3)使用之前无论如何再擦一遍!
4)无相关脉冲记录(相比于FLASH_ERASE_B)。

写入流程
1)对于用到的sector,每次写入之前都要擦除;
2)管理要存入的数据。i.e.如果要存入的数据量大,需要跨bank存储,那么需要先对数据进行分割,并针对不同的bank单独调用FLASH_PROG_B。
 

以上就介绍了Flash的相关知识,希望对Flash有兴趣的朋友有所帮助。了解更多内容,请关注职坐标常用软件Flash频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程