对NVM区的合理使用

[复制链接]
 楼主| laocuo1142 发表于 2021-5-7 09:32 | 显示全部楼层 |阅读模式
凌科芯安多款加密芯片均设置了NVM区,因其具备掉电不擦除的物理特性和防暴力**等安全特性,众多用户会利用NVM区存储重要数据。虽然使用方法简单,但有一点技术细节容易被忽视。NVM区有10万次擦写寿命或10年存储寿命,因此用户使用时要结合自己项目的应用场景和业务逻辑进行合理分配,达到高效使用NVM区,下面展开说明。

问题一:更新数据逻辑不合理

NVM区的写操作是按页实现的,应多以页为单位进行写操作。举例:有些用户将多组数据存储于同一NVM页内,但每更改其中一组数据时,就对该页执行了一次写操作,这其实是不提倡的。正确的做法是,尽量将该页内的多组数据统一更新,这样能有效减少扇区擦写次数,延长NVM区寿命。

问题二:NVM区地址划分使用不合理

同样因为按页操作的原因,用户应将不同数据分组按页对齐,避免数据跨页存储的情况发生。举例:有些用户将一组连续数据放在了两页地址交界处,当对该组数据进行更新写操作时,实际就对两页数据同时实行了写操作,即使只写了2字节数据,也会造成1024字节区域(假设目标加密芯片的NVM扇区大小是512字节)的写寿命减少,这种操作是不提倡的。

问题三:NVM区未做安全防护引起数据丢失

NVM区的写操作是由三步完成的,第一步读取目标扇区内原数据,第二步擦除目标扇区内数据,第三步将修改后的新数据和未做修改的原数据写回目标扇区。因此当意外断电等情况发生时,加密芯片恰好执行完写NVM区的第二步操作,且未完成写NVM区的第三步操作,就会造成目标区域内数据发生无规律错乱。当然也有解决办法,下期分解。
probedog 发表于 2021-5-7 10:19 | 显示全部楼层

LKT产品的NVM区存储空间是多大?
classroom 发表于 2021-5-7 10:20 | 显示全部楼层
4k、16K的都有吧,具体看型号
onlycook 发表于 2021-5-7 10:20 | 显示全部楼层
可以介绍一下相关的型号吗?
内政奇才 发表于 2021-5-7 10:21 | 显示全部楼层

同问,楼主推荐一款内部设置了NVM的加密芯片呗
麻花油条 发表于 2021-5-7 10:21 | 显示全部楼层

这个NVM应该跟FLASH类似吧,按页写,应该是一次写入256字节或者512字节吧
豌豆爹 发表于 2021-5-7 10:22 | 显示全部楼层
内部带NVM的MCU芯片,在程序执行中通常会根据条件判断去执行读写NVM单元的操作,特别是写NVM单元的操作,要注意。否则很容易造成误写NVM单元或者写入NVM单元的值错误,造成系统运行异常。
七毛钱 发表于 2021-5-7 10:23 | 显示全部楼层
楼主家的多款加密芯片内部设置了NVM去,其特点是掉电不擦除,利用NVM区存储重要数据,那又如何确保能在芯片内部安全运行的呢?
海滨消消 发表于 2021-5-7 10:23 | 显示全部楼层
具有扩展性好、静态能耗低以及非易失性等优势
duo点 发表于 2021-5-7 10:24 | 显示全部楼层

MCU的软件开发工具链默认都是在下载调试过程中,将全部MCU的NVM存储器擦除重新编程的,怎么操作才不会让它在下载调试的时候不用重新编程呢?
一刀一级 发表于 2021-5-7 10:25 | 显示全部楼层

NVM区就一定安全吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1296

主题

6236

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部