跳转到主要内容

Flash

【下载】FLASH 被异常改写

demi /

某客户反馈, 当 MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片别擦除、中断向量表被改写为 0、写保护被清掉、被加上读保护 ……..)

<font color="#0000C6" size="4"><a href="http://mcu.eetrend.com/files/2018-11/wen_zhang_/100015654-52546-flashwa…《FLASH 被异常改写》</a></font>

HOLTEK新推出HT45F4050 A/D NFC Flash MCU

demi /

10月18日,Holtek推出A/D NFC Flash MCU HT45F4050,其最大特点为MCU内建NFC Tag接口,终端产品不须采用MCU加NFC Tag IC的方案,可有效降低零件成本。

<center><a href="http://www.holtek.com.cn/productdetail/-/vg/45F4050"><img src="http://mcu.eetrend.com/files/2018-10/wen_zhang_/100015079-50788-ht45.jp…; alt="HOLTEK新推出HT45F4050 A/D NFC Flash MCU"></a></center>

你的芯片够安全吗?

judy /

芯片的加密,保证了芯片内部信息的安全性。有工程师会问:芯片加密后别人还能解密吗?这芯片安全吗?本文将为大家介绍几种不同类型芯片的加密方式。

随着信息技术的发展,信息的载体——芯片的使用也越来越多了,随之而来的是各个芯片厂商对芯片保密性要求越来越高,用芯片加密的方式来确保芯片内部信息的安全性。其实芯片的安全加密问题与芯片的类型有关,不同类型的芯片加密后有不一样的效果。

市面上现有的芯片种类很多,主要包括Flash,MCU,ARM,DSP,CPLD等。

一、Flash类芯片加密

Flash类芯片包含SPI Nor FLASH ,并行Nor FLASH,NAND FLASH,EMMC等,这些Flash类的芯片都没有非常牢固的加密功能,对code区进行加密后,只能进行写保护,如果有人想复制你的代码,只要读取母片即可,所以这类芯片安全性较低。

MCU 频繁的正常通断电的时候,FLASH被异常改写

judy /

<font color="#33b1c8"><strong>问题描述:</strong></font>

某客户反馈, 当 MCU 频繁的正常通断电的时候。FLASH 被异常改写,出现各种各样的异常(整片别擦除、中断向量表被改写为 0、写保护被清掉、被加上读保护 ……..)

<font color="#33b1c8"><strong>问题调研:</strong></font>

首先跟客户沟通:

• 他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。

• 确认通断电的时间是足够,就是说他们断电后所有的 VDD 都回到 0.上电的时序也是正常。

• 原理图确认这是 follow 了我们的参考设计。

• 测量工作时的电压,只是发觉他们上电时会有一些抖动,其它一切正常。尝试让他们改善上电电路,去掉这一抖动,再次实验,仍然出现类似的问题。

到这里似乎跟硬件没有任何的问题了, 接着让客户代码进行删减又做了如下实验:

FLASH和EEPROM的区别

judy /

FLASH 和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有 FLASH,早期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。

在芯片的内电路中,FLASH和EEPROM不仅电路不同,地址空间也不同,操作方法和指令自然也不同,不论冯诺伊曼结构还是哈佛结构都是这样。技术上,程序存储器和非易失数据存储器都可以只用FALSH结构或EEPROM结构,甚至可以用“变通”的技术手段在程序存储区模拟“数据存储区”,但就算如此,概念上二者依然不同,这是基本常识问题。

RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器概念

judy /

常见存储器概念:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash。存储器可以分为很多种类,其中根据掉电数据是否丢失可以分为RAM(随机存取存储器)和ROM(只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失,而ROM掉电后数据不会丢失。

在单片机中,RAM主要是做运行时数据存储器,FLASH主要是程序存储器,EEPROM主要是用以在程序运行保存一些需要掉电不丢失的数据。

<strong>FLASH:</strong>单片机运行的程序存储的地方。

<strong>SRAM:</strong>存储单片机运行过程中产生的了临时数据。

<strong>EEPROM:</strong>视用户的需要而定,一般用来存储系统的一些参数,这些参数可能需要修改,也可能不会修改。

为什么单片机中既有Flash又有EEPROM?

judy /

单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM 中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM 或FLASHROM 等存储器来实现。

插播一段:ROM最初不能编程,出厂什么内容就永远什么内容,不灵活。后来出现了PROM,可以自己写入一次,要是写错了,只能换一片。随着不断改进,终于出现了可多次擦除写入的EPROM,每次擦除要把芯片拿到紫外线上照一下,想一下你往单片机上下了一个程序之后发现有个地方需要加一句话,为此你要把单片机放紫外灯下照半小时,然后才能再下一次,这么折腾一天也改不了几次。历史的车轮不断前进,伟大的EEPROM出现了,拯救了一大批程序员,终于可以随意的修改ROM中的内容了。

EEPROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。是相对于紫外擦除的rom来讲的。但是今天已经存在多种EEPROM的变种,变成了一类存储器的统称。

狭义的EEPROM:

MM32 FLASH操作

judy /

在我们应用开发时,经常会有一些程序运行参数需要保存,如一些修正系数或一些自定义数据。这些数据的特点是:数量少而且不需要经常修改,但又不能定义为常量,因为每台设备可能不一样而且在以后还有修改的可能。将这类数据存在指定的位置,需要修改时直接修改存储位置的数值,需要使用时则直接读取,会是一种方便的做法。考虑到这些数据量比较少,使用专门的存储单元既不经济,也没有必要,而MM32L0系列产品内部的Flash容量较大,且擦写次数以万为单位,使用部分的Flash空间存储用户数据实现起来既方便又实惠。

MM32L0系列产品嵌入式闪存特性: