使用NVRAM的简单解决方案

发布时间:2020-9-14 15:55    发布者:宇芯电子
关键词: 非易失性NV-SRAM , NVRAM
许多供应商提供专为NVRAM使用的现成文件系统软件。除非要求某些专门功能,否则开发人员自行设计在经济上会所产生的问题。数据结构的存储主要是针对特定应用程序的,因此将进一步解决。本文芯片存储器供应商宇芯电子介绍关于使用NVRAM的简单解决方案。

非易失性使用普通的易失RAM很简单。上电时必须将其初始化为一个已知值,然后可以根据需要对其进行写入和读取。借助NV-SRAM,面临两个新挑战:

•开机时,软件需要识别NVRAM是否已初始化,如果尚未初始化,请执行该初始化。
•数据的完整性,尤其是断电一段时间后,需要进行验证。



NVRAM初始化
首次启动NVRAM时,就像普通RAM一样,它包含不确定的数据,需要初始化。在随后的情况下,软件需要识别NVRAM已初始化,并且不会覆盖此保存的数据。

进行这种识别的最简单方法是使用签名,该签名只是可以快速识别的字节序列,不能随机出现。这种理想是不可能的,因为任何字节序列(无论多长)都可能随机发生。只是最大程度地减少这种可能性,同时仍然使检查变得快捷容易。如果签名只有4个字节,则随机发生签名的可能性为40亿比1。对于几乎所有可以想象的应用程序来说已经足够了。并且可以快速检查32位值。

通过仔细选择签名值便可以减少意外发生的机会。一个连续的数字序列(例如1、2、3、4)比“随机”集合感觉不太可能。毕竟彩票最后一次是什么时候产生连续的数字序列的?当然这种序列与其他序列一样可能或不太可能。但是通过考虑内存的工作方式,特定序列的可能性可能会增加。首次开机时的内存可能具有哪些值?大致有四种可能性:

1、完全随机
2、全零
3、所有的
4、一些反映芯片架构的规则模式(例如交替的1和0)
如果为(1),那么任何签名都会给我们40亿比1的机会。其他任何一个都可以通过使用正确的签名来检测。可能的情况如下:0x00、0xff,0xaa,0x55​​。这应该覆盖所有(2),(3)和(4),但仍仅为32位。

初始化序列需要谨慎。设置有效数据,然后将签名初始化为过程中的最后一件事是至关重要的。

非易失性NV-SRAM完整性
当然,使用签名并不能保证数据的完整性。使用校验和或CRC进行错误检查,甚至使用数据自校正机制都是明智的。

使用NVRAM进行系统启动
当使用NVRAM时,启动逻辑需要容纳签名验证和数据完整性检查:

结论
嵌入式设计中使用NVRAM很简单,但是确实需要按此处所述小心地适应其功能。使用全局签名和错误检查的方法适用于许多应用程序。对于非常大的数据库,单独检查每个数据块可能会更有效率。使用C ++对应用程序代码开发人员隐藏NVRAM管理,从而最大程度地减少程序员错误的可能性,也可能是值得的。

本文地址:https://www.eechina.com/thread-602908-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
宇芯电子 发表于 2020-9-14 15:56:42
非易失性使用普通的易失RAM很简单。上电时必须将其初始化为一个已知值,然后可以根据需要对其进行写入和读取
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表