首页> 中国专利> 一种Embedded Flash误写保护方法

一种Embedded Flash误写保护方法

摘要

本发明公开了一种Embedded Flash误写保护方法,所述方法步骤包括:Embedded Flash控制器收到写操作指令后,缓存所述写操作的地址和数据,并读取所述地址的数据;判断读取的数据是否为32’hFFFF_FFFF,如果是,则全区域能够执行写操作;如果不是,则进一步判断对word中的每一个byte的值是否有8’hFF;如果值有8’hFF,则所述word能够执行写操作;如果值没有8’hFF,则整个word不能执行写操作,本发明提高了Embedded Flash误写保护的保护范围,实现了对Flash全区域的误写保护,保护颗粒度小,减少误写概率。

著录项

  • 公开/公告号CN113836600A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利号CN202111415769.6

  • 发明设计人 王立华;潘明方;熊海峰;

    申请日2021-11-26

  • 分类号G06F21/79(20130101);

  • 代理机构31423 上海双诚知识产权代理事务所(普通合伙);

  • 代理人方玉

  • 地址 201203 上海市浦东新区郭守敬路498号8幢19号楼3层

  • 入库时间 2023-06-19 13:49:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-02-18

    授权

    发明专利权授予

说明书

技术领域

本发明涉及一种Flash控制器以及存储管理技术技术领域,具体为一种EmbeddedFlash 误写保护方法。

背景技术

Embedded Flash作为代码和数据的存储单元,广泛应用各种MCU中,MCU 软件在运行过程中,如果发生对Embedded Flash区域的误写操作,将会导致存储在Embedded Flash内部的代码或者数据被窜改,最终可能会引起MCU 系统崩溃。

目前现有对Embedded Flash的误写保护方法,通过在Embedded Flash 地址空间范围内,需要划定一些区域,无法保护Flash全区域的误写操作,当误写保护功能使能后,后续软件在这些区域内写操作,将不会被执行,对于没有保护的区域,还是会产生误写,并且这种方法区域个数确定后,就不能增加保护区域,如果要增加判断区域需要对Flash控制器设计做改动,具有较大的局限性;

现有的方法一般划定的区域比实际代码区域大的话,会使一些不需要保护的地址空间也被保护了,使得Flash 的利用率降低;

同时现有方法保护颗粒度大小跟保护区域大小有关,如果保护颗粒度要按一个word,则保护区域只能设置成一个word地址空间,类似的区域大小就没有实际意义;

另外,Embedded Flash控制器读flash时,是按word操作,写program操作可以按byte颗粒度进行写,划定区域保护Embedded Flash的误写的方法保护的颗粒度为一个word(4bytes),误写操作导致整个word区域全部不能写操作,资源浪费且局限性大;

并且,误写操作会导致系统出现Bug,工作人员需要查找Bug原因,进行debug调试,步骤繁琐,浪费时间。

现有技术已经不能满足现阶段人们的需求,基于现状,急需对现有技术进行改革。

发明内容

本发明的目的在于提供一种Embedded Flash 误写保护方法,以解决上述背景技术中提出的问题。

本发明提供如下技术方案一种Embedded Flash 误写保护方法,具体步骤包括:

Embedded Flash 控制器收到写操作指令后,缓存这个写操作的地址和数据,并针对这个地址发起对Flash的读操作,读取这个地址的数据。

根据读取的数据判断这个读数据是否为32’hFFFF_FFFF,先判断整个保护区域;

如果是32’hFFFF_FFFF,则这个地址没有被写过,整个保护区域都可以写操作;

如果不是32’hFFFF_FFFF,则这个地址之前已经被写过,区域内的word不可以全部写操作;则Embedded Flash控制器发送中断将误写操作通知CPU, 并产生AHB bus errorresponse(AHB总线错误响应),并记录word的误写信息,误写信息包括:写地址,写数据以及读数据;

当读数据不是32’hFFFF_FFFF时,Embedded Flash控制器继续判断读数据word中的每一个byte的值是否有8’hFF,进一步判断word中的写操作;则分为两种情况:

(1)Embedded Flash 控制器读数据word中有bytes的值为8’hFF,则所述bytes可以写操作,且只执行所述word中的bytes值为8’hFF的写操作,并记录非8’hFF值的bytes的误写信息包括:写地址,写数据以及读数据。

(2)若word中读取的bytes值没有8’hFF,则整个word的地址已经被写过,不执行写操作。

有益效果

(1)本发明提高了Embedded Flash 误写保护的灵活性和保护范围,实现了对Flash全区域的误写保护,不需要更改设计来增加写保护区域,减少误写概率;

(2)本发明保护的颗粒度由一个word(4 bytes)到1个byte,保护的颗粒度更小;

(3)本发明误写操作后记录的信息,包括写地址,写数据以及读数据,能很好的指导软件进行debug调试,准确定位误写错误发生的地址。

附图说明

图1为本发明结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

由于Embedded Flash 按32 bits 一个word 读取, 每个word擦除操作后的值为32’hFFFF_FFFF,每次烧写前需要对Flash 先进行erase擦除操作,如果对已经烧写的区域,没经过erase 擦除操作,又发生写操作,就是产生误写,会把原先的值改掉,所以在烧写前先对Flash进行擦除操作,且每个word 擦除操作后的值为32’hFFFF_FFFF;

本发明提供如下技术方案一种Embedded Flash 误写保护方法,先判断整个保护区域的写操作,再判断区域中每一个word 内的bytes的写操作,不但实现了全区域保护,而且对word中的每一个byte的地址做判断,使得没有被写过的bytes也可以继续写操作,节约了资源;具体步骤如下:

当CPU给Embedded Flash 控制器发送写操作指令时,Embedded Flash 控制器收到写操作指令后,缓存该写操作的地址和数据,并针对该地址发起对Flash的读操作,读取这个地址的数据;

根据读取的数据判断这个读数据是否为32’hFFFF_FFFF,先判断整个保护区域的写操作,如果是32’hFFFF_FFFF,则这个地址没有被写过,则全区域能够执行写操作,Embedded Flash控制器可以执行写操作;如果不是32’hFFFF_FFFF,则这个地址中的存在地址之前已经被写过,Embedded Flash控制器不继续执行改写操作;

发送中断将word的误写操作通知CPU, 并产生AHB bus error response,(AHB总线错误响应), 同时记录误写信息,包括写地址、写数据以及读数据,用来debug调试。

若根据背景技术中所述的常规技术手段通过划定一块区域,地址在这个区域内的写操作就是误操作,这样可导致这个区域内每一个word 内没有被写过的bytes都不能写,本发明以word为颗粒度判断完word地址后,再以byte为颗粒度对word内每一个byte判断是否能够写操作,具体步骤为:

由于一个word包含4个bytes,Embedded Flash 控制器继续读word中的每一个byte值,并判断是否有8’hFF, 则分为两种情况:

(1)Embedded Flash 控制器读数据word中有bytes的值为8’hFF,则所述bytes可以写操作,且只执行所述word中的bytes值为8’hFF的写操作,并记录非8’hFF值的bytes的误写信息包括:写地址,写数据以及读数据;

例如,按一个word 包括4 bytes保护为实施例,如果这4bytes中有3bytes没有被写过的,只有一个byte被写过,若根据背景技术中所述的划定一定区域进行保护的方法,word中的4 个bytes都不能写操作,但是本发明通过对word中的每一个byte的地址做判断,使得没有被写过的3bytes可以继续写操作,只有一个byte不执行写操作,需要记录该byte的误写信息包括:写地址,写数据以及读数据,用于debug调试。

(2)若word中读取的bytes值没有8’hFF,则整个word的地址已经被写过,不执行写操作;

例如,按一个word 包括4 bytes保护为实施例,如果这4bytes都被写过,则说明该word 地址全部被写过,所以不执行写操作。

本实施例的技术方案有效的提高了Embedded Flash 误写保护的灵活性和保护范围,实现了对Flash全区域的误写保护,不需要更改设计来增加写保护区域,减少误写概率,颗粒度由一个word(4 bytes)到1个byte,保护的颗粒度减小,并根据误写操作后记录的信息,能很好的指导软件进行debug调试,准确定位误写错误发生的地址。

尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号