掌桥专利:专业的专利平台
掌桥专利
首页

一种MCU读写保护的测试方法、装置及系统

文献发布时间:2023-06-19 09:27:35


一种MCU读写保护的测试方法、装置及系统

技术领域

本发明涉及微控制器技术领域,尤其涉及一种MCU读写保护的测试方法、一种MCU读写保护的测试装置及一种MCU读写保护的测试系统。

背景技术

现在MCU设计中,为了保护已烧录至MCU的 FLASH中程序不被他人非法读取或恶意破坏,一般会在MCU内部增加数据读写保护机制的设计。如果设计的数据读写操作保护机制在设计阶段未能被有效验证,那很有可能该设计的读写保护机制存在某个或某些功能上的缺陷,导致该读写操作保护机制无法有效起到保护作用,造成存储在FLASH模块中的程序被非法窃取以及恶意破坏,最终造成量产的产品报废以及品牌形象受损。

现有的MCU 应用中对FLASH中数据的读写操作主要包括以下几种模式:1)从eFlash(嵌入式闪存,FLASH的一种,非掉电性)启动读写;2)从SRAM(静态随机存取存储器,掉电性)启动读写;3)调试接口SWD(串行调试,标准协议)模式读写;4)ICP(在电路编程,自定义编程协议)模式读写等。每种操作模式的权限不一、用途不一以及应用环境也不一致。其中SWD模式和ICP模式为通过外部接口对目标MCU的FLASH进行读写操作。而从eFlash启动、从SRAM启动模式为通过已烧录至FLASH、SRAM的程序在内部对FLASH进行读写操作,可将原FLASH中已存在的代码或者数据进行读取或者修改,也可将代码、数据从指定接口传送至外部。

这些操作模式都有将FLASH中代码或数据进行非法读取或者篡改破坏的风险,因此需要根据实际需求对这些操作设置读写保护机制,而该读写保护机制的测试和验证工作就显得尤为重要。而现有MCU设计过程中,暂无合适的装置及方法对能对上述多种模式下对存储单元数据读写保护机制进行合理、有效、高覆盖率的验证。

发明内容

本发明提供了一种MCU读写保护的测试方法、一种MCU读写保护的测试装置及一种MCU读写保护的测试系统,解决相关技术中存在的无法实现对MCU的读写保护机制进行测试的问题。

作为本发明的第一个方面,提供一种MCU读写保护的测试方法,其中,包括:

根据上位机的测试指令选择测试模式;

根据选择的测试模式对目标MCU进行读保护和/或写保护测试;

根据目标MCU的读保护和/或写保护的测试结果判断所述目标MCU是否存在读和/或写保护机制;

将所述目标MCU是否存在读写保护机制的判定结果反馈至所述上位机进行显示。

进一步地,所述根据上位机的测试指令选择测试模式,包括:

若上位机的测试指令为单项模式测试指令,则选择单项模式测试;

若上位机的测试指令为多项模式测试指令,则选择多项模式测试。

进一步地,所述根据选择的测试模式对目标MCU进行读保护和/或写保护测试,包括:

当选择的测试模式为单项模式测试时,对eFlash启动模式下是否进行读保护测试进行判断;

若在eFlash启动模式下进行读保护测试,则根据eFlash启动模式下的读保护测试程序对eFlash启动模式下的读保护进行测试,并得到eFlash启动模式下的读保护测试结果;

若在eFlash启动模式下不进行读保护测试,则对SRAM启动模式下是否进行读保护测试进行判断;

若在SRAM启动模式下进行读保护测试,则根据SRAM启动模式下的读保护测试程序对SRAM启动模式下的读保护进行测试,并得到SRAM启动模式下的读保护测试结果;

若在SRAM启动模式下不进行读保护测试,则对SWD调试模式下是否进行读保护测试进行判断;

若在SWD调试模式下进行读保护测试,则根据SWD调试模式下的读保护测试程序对SWD调试模式下的读保护进行测试,并得到SWD调试模式下的读保护测试结果;

若在SWD调试模式下不进行读保护测试,则对ICP模式下是否进行读保护测试进行判断;

若在ICP模式下进行读保护测试,则根据ICP模式下的读保护测试程序对ICP模式下的读保护进行测试,并得到ICP模式下的读保护测试结果;

若在ICP模式下不进行读保护测试,则对目标MCU的写保护进行测试,并得到目标MCU的写保护测试结果。

进一步地,所述根据eFlash启动模式下的读保护测试程序对eFlash启动模式下的读保护进行测试,并得到eFlash启动模式下的读保护测试结果,包括:

在目标MCU的非读保护状态下通过ICP接口进行读数据操作,得到非读保护状态下的读数据结果;

在目标MCU的读保护状态下通过ICP接口进行读数据操作,得到读保护状态下的读数据结果;

根据所述非读数据保护状态下的读数据结果和所述读保护状态下的读数据结果进行比较,得到eFlash启动模式下的读保护测试结果。

进一步地,所述根据目标MCU的读保护和/或写保护的测试结果判断所述目标MCU是否存在读和/或写保护机制,包括:

若所述非读数据保护状态下的读数据结果与所述读保护状态下的读数据结果一致,则判定目标MCU在eFlash启动模式下不存在读保护机制;

若所述非读数据保护状态下的读数据结果与所述读保护状态下的读数据结果不一致,则判定目标MCU在eFlash启动模式下存在读保护机制。

进一步地,所述根据SRAM启动模式下的读保护测试程序对SRAM启动模式下的读保护进行测试,并得到SRAM启动模式下的读保护测试结果,根据SWD调试模式下的读保护测试程序对SWD调试模式下的读保护进行测试,并得到SWD调试模式下的读保护测试结果,以及根据ICP模式下的读保护测试程序对ICP模式下的读保护进行测试,并得到ICP模式下的读保护测试结果,均包括:

在目标MCU的非读保护状态下进行读数据操作,得到非读保护状态下的读数据结果;

在目标MCU的非读保护与读保护的切换状态下进行读数据操作,得到非读保护与读保护的切换状态下的读数据结果;

在目标MCU的读保护状态下进行读数据操作,得到读保护状态下的读数据结果;

在目标MCU的读保护与非读保护的切换状态下进行读数据操作,得到读保护与非读保护的切换状态下的读数据结果;

根据非读保护状态下的读数据结果、非读保护与读保护的切换状态下的读数据结果、读保护状态下的读数据结果以及读保护与非读保护的切换状态下的读数据结果进行比较,分别得到SRAM启动模式下的读保护测试结果、SWD调试模式下的读保护测试结果以及ICP模式下的读保护测试结果。

进一步地,所述对目标MCU的写保护进行测试,并得到目标MCU的写保护测试结果,包括:

在目标MCU的非写保护状态下进行写数据操作,得到非写保护状态下的写数据结果;

在目标MCU的写保护状态下进行写数据操作,得到写保护状态下的写数据结果;

根据非写保护状态下的写数据结果以及写保护状态下的写数据结果进行比较,得到目标MCU的写保护测试结果。

作为本发明的另一个方面,提供一种MCU读写保护的测试装置,其中,包括:

选择模块,用于根据上位机的测试指令选择测试模式;

测试模块,用于根据选择的测试模式对目标MCU进行读保护和/或写保护测试;

判断模块,用于根据目标MCU的读保护和/或写保护的测试结果判断所述目标MCU是否存在读和/或写保护机制;

反馈模块,用于将所述目标MCU是否存在读写保护机制的判定结果反馈至所述上位机进行显示。

作为本发明的另一个方面,提供一种MCU读写保护的测试系统,其中,包括:SPIFLASH、指示灯、显示屏、模式选择开关和前文所述的MCU读写保护的测试装置,所述SPIFLASH、指示灯、显示屏和模式选择开关均与所述MCU读写保护的测试装置通信连接,所述MCU读写保护的测试装置包括多个通用型输入输出接口,所述MCU读写保护的测试装置通过通用型输入输出接口与目标MCU进行通信连接。

进一步地,所述MCU读写保护的测试系统还包括上位机,所述上位机与所述MCU读写保护的测试装置通信连接。

本发明提供的MCU读写保护的测试方法,能够根据上位机的测试指令实现对目标MCU进行多种模式下的读写保护机制的验证,且该MCU读写保护的测试方法可应用于MCU设计的验证、测试阶段,针对MCU设计的数据读写操作保护机制进行全面有效的验证、测试,从而确保设计的数据读写操作保护机制能真正起到正确的保护作用。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。

图1为本发明提供的MCU读写保护的测试方法的流程图。

图2为本发明提供的MCU读写保护的测试方法的具体实施方式流程图。

图3为本发明提供的eFlash启动读保护的具体操作流程图。

图4为本发明提供的SRAM启动、SWD调试读保护、ICP模式的具体操作流程图。

图5为本发明提供的写保护的具体操作流程图。

图6为本发明提供的MCU读写保护的测试系统的结构框图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互结合。下面将参考附图并结合实施例来详细说明本发明。

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包括,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本实施例中提供了一种MCU读写保护的测试方法,图1是根据本发明实施例提供的MCU读写保护的测试方法的流程图,如图1所示,包括:

S110、根据上位机的测试指令选择测试模式;

S120、根据选择的测试模式对目标MCU进行读保护和/或写保护测试;

S130、根据目标MCU的读保护和/或写保护的测试结果判断所述目标MCU是否存在读和/或写保护机制;

S140、将所述目标MCU是否存在读写保护机制的判定结果反馈至所述上位机进行显示。

本发明实施例提供的MCU读写保护的测试方法,能够根据上位机的测试指令实现对目标MCU进行多种模式下的读写保护机制的验证,且该MCU读写保护的测试方法可应用于MCU设计的验证、测试阶段,针对MCU设计的数据读写操作保护机制进行全面有效的验证、测试,从而确保设计的数据读写操作保护机制能真正起到正确的保护作用。

下面结合图2对本发明提供的MCU读写保护的测试方法的具体实现过程进行详细描述。

具体地,所述根据上位机的测试指令选择测试模式,包括:

若上位机的测试指令为单项模式测试指令,则选择单项模式测试;

若上位机的测试指令为多项模式测试指令,则选择多项模式测试。

进一步具体地,所述根据选择的测试模式对目标MCU进行读保护和/或写保护测试,包括:

当选择的测试模式为单项模式测试时,对eFlash启动模式下是否进行读保护测试进行判断;

若在eFlash启动模式下进行读保护测试,则根据eFlash启动模式下的读保护测试程序对eFlash启动模式下的读保护进行测试,并得到eFlash启动模式下的读保护测试结果;

若在eFlash启动模式下不进行读保护测试,则对SRAM启动模式下是否进行读保护测试进行判断;

若在SRAM启动模式下进行读保护测试,则根据SRAM启动模式下的读保护测试程序对SRAM启动模式下的读保护进行测试,并得到SRAM启动模式下的读保护测试结果;

若在SRAM启动模式下不进行读保护测试,则对SWD调试模式下是否进行读保护测试进行判断;

若在SWD调试模式下进行读保护测试,则根据SWD调试模式下的读保护测试程序对SWD调试模式下的读保护进行测试,并得到SWD调试模式下的读保护测试结果;

若在SWD调试模式下不进行读保护测试,则对ICP模式下是否进行读保护测试进行判断;

若在ICP模式下进行读保护测试,则根据ICP模式下的读保护测试程序对ICP模式下的读保护进行测试,并得到ICP模式下的读保护测试结果;

若在ICP模式下不进行读保护测试,则对目标MCU的写保护进行测试,并得到目标MCU的写保护测试结果。

应当理解的是,本发明实施例提供的MCU读写保护的测试方法可以实现离线操作也可以实现在线操作。具体地,离线操作为,主控MCU上电后,主控MCU通过按键或拨码开关来识别当前的测试模式操作选择。识别对应的测试模式后,通过SPI接口从SPI FLASH调用对应的测试程序,根据不同测试模式需要,通过ICP或者SWD接口烧录至主控MCU的FLASH或SRAM中,再执行对应的测试操作。对测试结果进行判断,可通过LCD显示屏或LED指示灯来指示当前的测试结果。

具体地,在线操作为,主控MCU上电后,主控MCU通过USB接口信号识别到上位机连接,切换至由上位机控制状态。上位机通过USB将控制信号发送至下位机主控MCU,主控MCU对指令进行解析并执行相应的测试操作,并将测试过程中的测试数据、测试结果反馈至上位机,上位机将测试数据和测试结果处理分析并显示结果。

需要说明的是,各模式在实际应用中对FLASH进行数据读写操作的权限不一样。在实际验证测试过程中,我们根据不同模式数据读写操作权限不同,将不同模式下测试操作方法大体分为三种:其中eFlash启动读保护为第一种; SRAM启动、SWD调试读保护、ICP模式读保护为第二种;写保护为第三种。

具体地, 如图3所示为第一种的eFlash启动读保护的具体操作流程图,改操作流程对应图2中的测试操作1的流程,所述根据eFlash启动模式下的读保护测试程序对eFlash启动模式下的读保护进行测试,并得到eFlash启动模式下的读保护测试结果,包括:

在目标MCU的非读保护状态下通过ICP接口进行读数据操作,得到非读保护状态下的读数据结果;

在目标MCU的读保护状态下通过ICP接口进行读数据操作,得到读保护状态下的读数据结果;

根据所述非读数据保护状态下的读数据结果和所述读保护状态下的读数据结果进行比较,得到eFlash启动模式下的读保护测试结果。

进一步具体地,所述根据目标MCU的读保护和/或写保护的测试结果判断所述目标MCU是否存在读和/或写保护机制,包括:

若所述非读数据保护状态下的读数据结果与所述读保护状态下的读数据结果一致,则判定目标MCU在eFlash启动模式下不存在读保护机制;

若所述非读数据保护状态下的读数据结果与所述读保护状态下的读数据结果不一致,则判定目标MCU在eFlash启动模式下存在读保护机制。

具体地,如图4所示为第二种的SRAM启动、SWD调试读保护、ICP模式的具体操作流程图,该操作流程对应图2中的测试操作2、测试操作3和测试操作4的流程,所述根据SRAM启动模式下的读保护测试程序对SRAM启动模式下的读保护进行测试,并得到SRAM启动模式下的读保护测试结果,根据SWD调试模式下的读保护测试程序对SWD调试模式下的读保护进行测试,并得到SWD调试模式下的读保护测试结果,以及根据ICP模式下的读保护测试程序对ICP模式下的读保护进行测试,并得到ICP模式下的读保护测试结果,均包括:

在目标MCU的非读保护状态下进行读数据操作,得到非读保护状态下的读数据结果;

在目标MCU的非读保护与读保护的切换状态下进行读数据操作,得到非读保护与读保护的切换状态下的读数据结果;

在目标MCU的读保护状态下进行读数据操作,得到读保护状态下的读数据结果;

在目标MCU的读保护与非读保护的切换状态下进行读数据操作,得到读保护与非读保护的切换状态下的读数据结果;

根据非读保护状态下的读数据结果、非读保护与读保护的切换状态下的读数据结果、读保护状态下的读数据结果以及读保护与非读保护的切换状态下的读数据结果进行比较,分别得到SRAM启动模式下的读保护测试结果、SWD调试模式下的读保护测试结果以及ICP模式下的读保护测试结果。

具体地,如图5所示为第三种的写保护的具体操作流程图,该操作对应图2的测试操作5的流程,所述对目标MCU的写保护进行测试,并得到目标MCU的写保护测试结果,包括:

在目标MCU的非写保护状态下进行写数据操作,得到非写保护状态下的写数据结果;

在目标MCU的写保护状态下进行写数据操作,得到写保护状态下的写数据结果;

根据非写保护状态下的写数据结果以及写保护状态下的写数据结果进行比较,得到目标MCU的写保护测试结果。

作为本发明的另一实施例,提供一种MCU读写保护的测试装置,其中,包括:

选择模块,用于根据上位机的测试指令选择测试模式;

测试模块,用于根据选择的测试模式对目标MCU进行读保护和/或写保护测试;

判断模块,用于根据目标MCU的读保护和/或写保护的测试结果判断所述目标MCU是否存在读和/或写保护机制;

反馈模块,用于将所述目标MCU是否存在读写保护机制的判定结果反馈至所述上位机进行显示。

本发明实施例提供的MCU读写保护的测试装置,能够根据上位机的测试指令实现对目标MCU进行多种模式下的读写保护机制的验证,且该MCU读写保护的测试装置可应用于MCU设计的验证、测试阶段,针对MCU设计的数据读写操作保护机制进行全面有效的验证、测试,从而确保设计的数据读写操作保护机制能真正起到正确的保护作用。

作为本发明的另一实施例,提供一种MCU读写保护的测试系统,其中,如图6所示,包括:SPI FLASH、指示灯、显示屏、模式选择开关和前文所述的MCU读写保护的测试装置,所述SPI FLASH、指示灯、显示屏和模式选择开关均与所述MCU读写保护的测试装置通信连接,所述MCU读写保护的测试装置包括多个通用型输入输出接口,所述MCU读写保护的测试装置通过通用型输入输出接口与目标MCU进行通信连接。

本发明实施例提供的MCU读写保护的测试系统,采用前文的MCU读写保护的测试装置,能够根据上位机的测试指令实现对目标MCU进行多种模式下的读写保护机制的验证,且该MCU读写保护的测试系统可应用于MCU设计的验证、测试阶段,针对MCU设计的数据读写操作保护机制进行全面有效的验证、测试,从而确保设计的数据读写操作保护机制能真正起到正确的保护作用。

在一些实施方式中,MCU读写保护的测试装置具体可以为下位机主控MCU,且一般为32位通用MCU。

在一些实施方式中,所述指示灯包括LED指示灯。

需要说明的是,LED指示灯用于指示当前测试操作的结果,连接至MCU的GPIO输出。

在一些实施方式中,所述显示屏包括LCD显示屏。

需要说明的是,所述LCD显示屏用于显示当前测试操作的状态以及测试结果,一般为SPI(串行外设接口)或者I2C(内部集成电路)等通用协议接口,连接至主控MCU对应的接口管脚。

在一些实施方式中,所述模式选择开关包括按键或拨码开关。

需要说明的是,SPI FLASH用于存放不同测试模式的多种测试程序代码以及测试数据,与主控MCU通过SPI接口进行数据传输。

需要说明的是,所述按键或拨码开关用于某种或者多种测试模式的选择,连接至MCU的GPIO输入。

在一些实施方式中,所述MCU读写保护的测试装置具体可以包括第一通用输入输出接口GPIO_1、第二通用输入输出接口GPIO_2和第三通用输入输出接口GPIO_3。

具体地,第一通用输入输出接口GPIO_1:MCU内部解析上位机测试操作指令,按照SWD标准协议对目标MCU进行数据读写操作。第二通用输入输出接口GPIO_2:用于接收监测目标MCU某特定IO管脚的状态,以此判断部分测试项下目标MCU测试结果。第三通用输入输出接口GPIO_3:用于自定义协议ICP的数据读写操作。由于ICP的传输速率一般为2Mbps以下,通用MCU的IO在传输速率能满足该ICP速率要求,因此可将IO来模拟ICP协议。

在一些实施方式中,所述MCU读写保护的测试系统还包括DC电源。

需要说明的是,所述DC电源可以用于测试MCU读写保护的测试系的供电,可以外接DC适配器也可以通过USB供电。

具体地,所述MCU读写保护的测试系统还包括上位机,所述上位机与所述MCU读写保护的测试装置通信连接。

上位机可用于测试模式控制、测试数据统计分析以及测试结果显示。也可按照SWD协议将测试代码或者数据通过下位机控制MCU传输至目标MCU中。与下位机MCU通过USB接口或者串口等通用接口进行通信和数据交互。

对于本发明实施例中的目标MCU应当理解的是待验证、测试的MCU或者实现MCU功能的FPGA等。

目标MCU中的FLASH为目标MCU内部的存储单元,用于存储程序和数据。

目标MCU内部的读写保护机制模块为待验证、测试的目标对象,用于对存储单元数据的读写(读取、擦除、写入)操作的保护作用。

目标MCU的SWD接口:SWD标准协议接口,用于目标MCU的SWD接口程序调试烧录接口。主要用于程序的调试。

目标MCU的GPIO口:用于已烧录至目标MCU的测试程序的状态监测管脚输出。

目标MCU的ICP接口:目标MCU自行设计的数据读写操作接口,自定义协议,一般为串行数据传输。主要用于量产程序的烧录。

综上,本发明实施例提供的MCU读写保护的测试方法、装置及系统具有以下优势:

(1)可用于MCU芯片的设计验证阶段,对MCU设计的数据读写保护机制进行充分的功能验证,确保该机制的功能正确以及完整,避免在后期芯片生产测试中再发现该读写保护机制功能缺陷而造成芯片整体设计失败。

(2)可用于MCU芯片的测试阶段,对MCU读写保护机制功能的进一步测试,避免已量产产品在市场应用中再发现该功能存在漏洞而造成无法挽回的损失。

(3)将数据读写操作保护机制的多种模式测试集成于一个装置上,可选择单一模式进行验证、测试,也可对多个模式按任意顺序进行验证、测试。

(4)可将测试结果通过显示屏或者指示灯实时显示。

(5)可通过上位机软件界面控制操作并在上位机显示验证、测试结果,也可实时显示测试数据,便于测试分析。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

相关技术
  • 一种MCU读写保护的测试方法、装置及系统
  • 一种分布式存储系统的小文件读写性能测试方法及装置
技术分类

06120112170739