一种微控制器及防止微控制器Flash误擦写的方法技术

技术编号:38731328 阅读:26 留言:0更新日期:2023-09-08 23:20
本申请涉及一种微控制器及防止微控制器Flash误擦写的方法,属于微控制器领域,解决现有技术中由于干扰或攻击造成的Flash误擦写问题。本申请的微控制器,内置Flash存储器或外置Flash存储器,所述微控制器配置为:内置Flash存储器或外置Flash存储器通过Flash擦写流程进行擦写;其中,所述Flash擦写流程被拆分成多个操作函数,并分别存储在不同的存储位置中。本申请的微控制器和方法,可以避免微控制器内置或外置的Flash存储器由于干扰或攻击造成的误擦写。误擦写。误擦写。

【技术实现步骤摘要】
一种微控制器及防止微控制器Flash误擦写的方法


[0001]本申请涉及微控制器领域,具体涉及一种微控制器及防止微控制器Flash误擦写的方法。

技术介绍

[0002]主流MCU(微控制器)一般都支持嵌入式Flash(内置)或者外挂Flash存储器。Flash存储器保存的内容掉电后不会丢失,支持多次擦写,一般用于存储用户程序和数据等信息。按照特定的访问时序可以实现对Flash存储器的读取、擦除和写入等操作。
[0003]用户通常通过MCU支持的在系统编程(ISP)、在应用编程(IAP)等技术可以方便的实现对MCU的Flash的擦除和写入。这些技术通常都需要通过软件调用底层的Flash擦除、写入函数来实现。
[0004]上述技术极大程度的方便了用户对产品中微控制器的Flash程序和数据的擦除和写入,但与此同时也带来了安全隐患。比如,某些环境下,误操作、干扰或者某些恶意攻击都可能造成不期望的对Flash关键信息的擦写。
[0005]现有技术一般通过在MCU中增加Flash的擦写保护配置和相应的硬件电路,并且只有满足特定的配置、授权、协议或操作流程的情况下,用户才能进行对Flash的擦写。当MCU在正常工作条件下,上述现有技术可以很好的防止Flash中的关键信息被误擦写或者恶意篡改。但当MCU受到某些干扰或者黑客攻击时,MCU的程序计数器(PC)可能会不按照既定流程跳转,这会影响程序的执行顺序,比如,有可能导致程序执行时误跳转到Flash的擦写函数,造成关键程序和数据被误擦写或者恶意篡改。
[0006]另外,外部干扰或者黑客攻击还可能影响MCU内部硬件对数据运算处理的过程和结果的正确性,可能导致错误的数据被写入Flash中,造成关键程序和数据被写入错误值或者被恶意篡改。
[0007]上述问题成为亟需解决的问题。

技术实现思路

[0008]本申请的目的在于克服现有技术的不足,提供一种微控制器及防止微控制器Flash误擦写的方法,以克服现有技术中微控制器内置或外置的Flash存储器误擦写的问题。
[0009]本申请第一方面提供一种微控制器,所述微控制器内置Flash存储器或外置Flash存储器;所述内置Flash存储器或外置Flash存储器通过Flash擦写流程进行擦写;其中,所述Flash擦写流程的关键步骤被拆分到多个操作函数中,并分别存储在不同的存储位置中。
[0010]可选地,所述多个操作函数存储在不相邻的存储位置中。
[0011]可选地,所述多个操作函数包括Flash扇区擦除、Flash写操作;或,所述多个操作函数包括Flash配置寄存器解锁、Flash扇区擦除、Flash写操作。
[0012]可选地,包括计时模块,用于对操作函数进行执行时间检查,若所述操作函数的执
行时间在预设范围以外,则进入异常处理程序。
[0013]可选地,所述微控制器被配置为:在判断前一操作函数被执行后,才会执行下一操作函数。
[0014]可选地,在执行到前一操作函数时进行计数,并且在执行下一操作函数之前判断计数值是否等于预期计数值,若不等于,则进入异常处理流程。
[0015]可选地,所述微控制器还被配置为:在所述Flash擦写流程的部分或全部相邻的操作函数之间增加冗余步骤;当检查出所述冗余步骤的数据运算结果不正确时,进入异常处理流程。
[0016]可选地,所述冗余步骤对预设数据进行预设运算,或,所述冗余步骤对上一冗余步骤的计算结果进行预设运算。
[0017]本申请的第二方面提供一种防止微控制器Flash误擦写的方法,包括:将Flash擦写流程的关键步骤拆分到多个操作函数;依次执行所述多个操作函数;其中,所述多个操作函数分别存储在不同的存储位置中。
[0018]可选地,所述多个操作函数存储在不相邻的存储位置中。
[0019]可选地,所述多个操作函数包括Flash扇区擦除操作函数、Flash写操作操作函数;或,所述多个操作函数包括Flash配置寄存器解锁操作函数、Flash扇区擦除操作函数、Flash写操作操作函数。
[0020]可选地,在执行所述多个操作函数中的一个或多个操作函数时,对所述一个或多个操作函数进行执行时间计时,若计时时间在预设范围以外,则进入异常处理程序。
[0021]可选地,部分或全部相邻的操作函数之间增加冗余步骤和冗余步骤结果判断步骤;其中,所述冗余步骤,用于对预设数据进行预设运算,或对上一冗余步骤的计算结果进行预设运算;所述冗余步骤结果判断步骤,用于判断所述冗余步骤的数据运算结果是否正确,若结果不正确,则进入异常处理流程。
[0022]可选地,在执行到前一操作函数时进行计数,并且在执行下一操作函数之前判断计数值是否等于预期计数值,若不等于,则进入异常处理流程。
[0023]本申请的有益效果是:和现有技术相比,本申请提供了一种微控制器及防止微控制器Flash误擦写的方法,通过将Flash擦写流程的多个关键步骤拆分出来并放在不同的操作函数中,且前述不同的操作函数(多个操作函数)存储在不同的位置,本申请可以解决MCU的Flash误擦写的问题;通过Flash操作执行顺序检查、Flash操作执行时间检测等,同样可以解决当MCU受到某些干扰或者黑客攻击导致其程序计数器(PC)不按照既定流程跳转进而可能导致的关键程序和数据被误擦写或者恶意篡改的问题;通过Flash擦写流程插冗余步骤,可以解决外部干扰或者黑客攻击导致的MCU内部硬件对数据运算处理的过程和结果错误,进而可能导致的错误数据被写入Flash中,造成关键程序和数据被写入错误值或者被恶意篡改的问题。
附图说明
[0024]图1为寄存器到寄存器的采样电路结构示意图;图2为图1中的采样电路受到干扰或黑客攻击导致采样错误的示意图;图3为MCU的程序计数器(PC)电路结构示意图;图4为本申请一实施方式提供的MCU的操作函数存储示意图;图5为本申请一实施方式提供的MCU的Flash操作流程的拆分示意图一;图6为本申请一实施方式提供的MCU的Flash操作流程的拆分示意图二;图7为本申请一实施方式提供的MCU的操作函数时间检查流程示意图;图8为本申请一实施方式提供的MCU的操作函数执行顺序检查示意图一;图9为本申请一实施方式提供的MCU的操作函数执行顺序检查示意图二;图10为本申请一实施方式提供的MCU的冗余步骤示意图;图11为本申请一实施方式提供的MCU的硬件电路示意图;图12为本申请一实施方式提供的防止微控制器Flash误擦写的流程图。
具体实施方式
[0025]下面结合具体实施例进一步详细描述本申请的技术方案,但本申请的保护范围不局限于以下所述。
[0026]当MCU受到干扰或者黑客攻击时,可能导致其内部的数字电路出现采样错误。
[0027]图1示出了寄存器到寄存器的采样电路结构示意图。寄存器FF1的数据输出端Q与寄存器FF2的数据输入端D电连接。
[0028]如图2展示了图1中的采样本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微控制器,其特征在于,所述微控制器内置Flash存储器或外置Flash存储器;所述内置Flash存储器或外置Flash存储器通过Flash擦写流程进行擦写;其中,所述Flash擦写流程的关键步骤被拆分到多个操作函数中,并分别存储在不同的存储位置。2.根据权利要求1所述的一种微控制器,其特征在于,所述多个操作函数存储在不相邻的存储位置中。3.根据权利要求2所述的一种微控制器,其特征在于,所述多个操作函数包括Flash扇区擦除函数、Flash写操作函数;或,所述多个操作函数包括Flash配置寄存器解锁函数、Flash扇区擦除函数、Flash写操作函数。4.根据权利要求2所述的一种微控制器,其特征在于,还包括:计时模块,用于对操作函数进行执行时间检查,若所述操作函数的执行时间在预设范围以外,则进入异常处理程序。5.根据权利要求1

4任一项所述的一种微控制器,其特征在于,所述微控制器被配置为:在判断前一操作函数被执行后,才会执行下一操作函数。6.根据权利要求5所述的一种微控制器,其特征在于,在执行到前一操作函数时进行计数,并且在执行下一操作函数之前判断计数值是否等于预期计数值,若不等于,则进入异常处理流程。7.根据权利要求1

4任一项所述的一种微控制器,其特征...

【专利技术属性】
技术研发人员:芦世雄赛斌杨东旭
申请(专利权)人:成都利普芯微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1