首页> 中国专利> 一种MCU及MCU调试接口控制方法

一种MCU及MCU调试接口控制方法

摘要

发明公开了一种MCU及MCU调试接口控制方法,以所述方法:判断所述调试接口禁止关键字存储位是否被写入;若所述调试接口禁止关键字存储位没被写入,允许对存储模块发起的访问;若所述调试接口禁止关键字存储位已被写入,判断对所述存储模块发起访问的来源;若对所述存储模块发起访问的来源不是调试接口,允许对所述存储模块发起的访问;若对所述存储模块发起访问的来源是所述调试接口,且擦除标志位有效,允许对所述存储模块发起的访问;所述擦除标志位有效意味着在发起访问前,对所述存储模块进行过片擦除操作;采用本发明实施例,在物理层面保持了调试接口的联通性同时,可以对芯片进行嵌入式软件进行二次开发,又保护了芯片中数据的安全。

著录项

  • 公开/公告号CN111968693B

    专利类型发明专利

  • 公开/公告日2022-08-05

    原文格式PDF

  • 申请/专利权人 广芯微电子(广州)股份有限公司;

    申请/专利号CN202010851566.0

  • 申请日2020-08-21

  • 分类号G06F13/12(2006.01);G06F13/00(2006.01);G11C16/10(2006.01);G11C16/26(2006.01);

  • 代理机构广州三环专利商标代理有限公司 44202;广州三环专利商标代理有限公司 44202;

  • 代理人郭浩辉;麦小婵

  • 地址 510000 广东省广州市中新广州知识城九佛建设路333号378房

  • 入库时间 2022-09-06 00:40:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-04-07

    专利权质押合同登记的生效 IPC(主分类):G06F13/12 专利号:ZL2020108515660 登记号:Y2023980035757 登记生效日:20230322 出质人:广芯微电子(广州)股份有限公司 质权人:上海浦东发展银行股份有限公司广州分行 发明名称:一种MCU及MCU调试接口控制方法 申请日:20200821 授权公告日:20220805

    专利权质押合同登记的生效、变更及注销

  • 2022-08-05

    授权

    发明专利权授予

说明书

技术领域

本发明涉及嵌入式开发领域,尤其涉及一种MCU及MCU调试接口控制方法。

背景技术

在MCU(Micro Control Unit,微控制单元)嵌入式开发的过程中,软件工程师由于对芯片硬件电路理解的偏差,难免在开发过程中出现一些软件错误。而调试接口的引入,是解决此问题非常有效的手段。现阶段,绝大多数的MCU芯片中都保留了调试接口,供嵌入式工程师在嵌入式软件开发过程中下载软件程序和定位软件错误。MCU的在线调试接口,目前主要有JTAG、SWD、OCDS单线接口等等。这些接口各有特点,适合不同的软件开发调试场景。

MCU中的调试接口和仿真器(如u-Link、J-link等)配合使用,可以使得调试环境具有下载应用软件的功能,并且可以有效的定位出嵌入式软件中的错误,大大节省嵌入式软件的开发时间。但是,在MCU芯片设计中,由于调试接口的权限往往会大于CPU的读写权限,这使带来数据安全的问题。例如,通过调试接口可以很方便的将产品中别人已经开发好的应用程序读走盗取,并用于自己的产品中。因此,在嵌入式软件开发完成后,对调试接口的功能进行禁止也是非常重要的。

MCU中调试接口禁止的通常做法,是将调试接口的信号线在物理层上进行隔离。如图1所示,现有的MCU的含有CPU、总线、外设、NVM存储器和在线调试Debug接口。NVM存储器用来存放调试接口禁止字和系统软件程序,MCU通过DbgDisable信号来控制调试接口的禁止。当软件开发结束后,CPU向NVM中写入Debug接口禁止字,则DbgDisable为1,其通过选择器将MCU外部的Debug接口旁路,从而达到调试接口禁止的功能。这种方法虽然能够完全禁止掉调试接口,保证芯片针对调试接口的数据安全,但是由于从物理层上隔离了调试接口,使得调试接口被禁止后将无法再次被开启,这给芯片的二次软件开发引入很大的问题。

发明内容

本发明实施例提供一种MCU及MCU调试接口控制方法,能有效解决现有技术中MCU的调试接口被禁止后将无法再次被开启的问题。

本发明一实施例提供了一种MCU,所述MCU包括非易失性存储器控制器;所述非易失性存储器控制器包括存储模块、擦除标志模块和访问控制模块;所述存储模块含有调试接口禁止关键字存储位;所述擦除标志模块含有擦除标志位;

所述访问控制模块用于:

判断所述调试接口禁止关键字存储位是否被写入;

若所述调试接口禁止关键字存储位没被写入,允许对所述存储模块发起的访问;

若所述调试接口禁止关键字存储位已被写入,判断对所述存储模块发起访问的来源;

若对所述存储模块发起访问的来源不是所述调试接口,允许对所述存储模块发起的访问;

若对所述存储模块发起访问的来源是所述调试接口,且所述擦除标志位有效,允许对所述存储模块发起的访问;所述擦除标志位有效意味着在发起访问前,对所述存储模块进行过片擦除操作。

作为上述方案的改进,所述MCU,还包括擦除模块;所述擦除模块与擦除标志模块相连,包括对进行片擦除操作的逻辑电路,所述逻辑电路用于对所述存储模块的片擦除操作。

作为上述方案的改进,所述擦除标志模块用于:生成擦除标志位的值;在所述存储模块中软件程序被片擦除后,所述擦除标志位的值设置为有效;在下载完应用程序后,所述擦除标志位的值设置为无效。

作为上述方案的改进,所述存储模块用于存放应用程序。

作为上述方案的改进,所述非易失性存储器控制器与所述MCU内部总线相连;所述擦除标志模块一端和擦除模块相连,另一端和所述访问控制模块一端相连;所述访问控制模块相连另一端和存储模块相连。

本发明另一实施例对应提供了一种MCU调试接口控制方法,其特征在于,包括:

判断所述调试接口禁止关键字存储位是否被写入;

若所述调试接口禁止关键字存储位没被写入,允许对存储模块发起的访问;

若所述调试接口禁止关键字存储位已被写入,判断对所述存储模块发起访问的来源;

若对所述存储模块发起访问的来源不是调试接口,允许对所述存储模块发起的访问;

若对所述存储模块发起访问的来源是所述调试接口,且擦除标志位有效,允许对所述存储模块发起的访问;所述擦除标志位有效意味着在发起访问前,对所述存储模块进行过片擦除操作。

作为上述方案的改进,所述若对所述存储模块发起访问的来源是所述调试接口,且所述擦除标志位有效,允许对所述存储模块发起的访问,具体包括:

在存储模块中软件程序被片擦除后,所述擦除标志位的值设置为有效;在下载完应用程序后,所述擦除标志位的值设置为无效;

若对所述存储模块发起访问的来源是所述调试接口,且所述擦除标志位有效,允许对所述存储模块发起的访问。

本发明另一实施例对应提供了一种MCU调试接口控制装置,用于接入现有MCU中;

所述存储模块用于存放应用程序;

所述擦除模块用于对所述存储模块的片擦除操作;

所述擦除标志模块用于:在存储模块中软件程序被片擦除后,所述擦除标志位的值设置为有效;在下载完应用程序后,所述擦除标志位的值设置为无效;

所述访问控制模块用于:

判断所述调试接口禁止关键字存储位是否被写入;

若所述调试接口禁止关键字存储位没被写入,允许对所述存储模块发起的访问;

若所述调试接口禁止关键字存储位已被写入,判断对所述存储模块发起访问的来源;

若对所述存储模块发起访问的来源不是所述调试接口,允许对所述存储模块发起的访问;

若对所述存储模块发起访问的来源是所述调试接口,且所述擦除标志位有效,允许对所述存储模块发起的访问;所述擦除标志位有效意味着在发起访问前,对所述存储模块进行过片擦除操作。

本发明另一实施例对应提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述MCU调试接口控制方法。

相比于现有技术,本发明实施例提供的一种MCU及MCU调试接口控制方法,当软件开发完成后,向存储模块中写入调试接口禁止关键字存储位。当软件程序发起对存储模块的读访问时,访问控制模块识别出此次访问是软件程序发起,同样不会对访问做出任何限制。当调试接口发起对存储模块的读访问时,访问控制模块识别出此次访问发起的源头是调试接口,其根据擦除标志模块的擦除生效标志位来判断是否对访问进行禁止。如果当前访问为调试接口发起,调试接口禁止关键字存储位已经写入,且擦除标志模块标志出存储模块未经过片擦除时,访问控制模块禁止本次访问。

综上所述,本发明实施例提供的一种MCU及MCU调试接口控制方法,通过对擦除生效标志位、调试接口禁止关键字存储位和访问来源三个判断条件对MCU的调试接口进行访问控制,能有效解决现有技术中MCU的调试接口被禁止后将无法再次被开启的问题,这方便了对芯片进行嵌入式软件进行二次开发,同时又保护了芯片中数据的安全,避免应用程序被其他人通过调试接口盗取。

附图说明

图1是现有MCU的结构示意图;

图2是本发明一实施例提供的一种含非易失性存储器控制器的MCU结构示意图;

图3是本发明一实施例提供的访问控制模块工作流程示意图。

具体实施方式

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

参见图2,本发明一实施例提供了一种MCU,包括存储模块10、访问控制模块11和擦除标志模块12;所述存储模块10含有调试接口禁止关键字存储位;所述擦除标志模块12含有擦除标志位;

所述访问控制模块11用于:

判断所述调试接口禁止关键字存储位是否被写入;

若所述调试接口禁止关键字存储位没被写入,允许对所述存储模块10发起的访问;

若所述调试接口禁止关键字存储位已被写入,判断对所述存储模块10发起访问的来源;

若对所述存储模块10发起访问的来源不是所述调试接口,允许对所述存储模块10发起的访问;

若对所述存储模块10发起访问的来源是所述调试接口,且所述擦除标志位有效,允许对所述存储模块10发起的访问;所述擦除标志位有效意味着在发起访问前,对所述存储模块10进行过片擦除操作。

在本发明实施例中,当软件程序还在开发过程中,调试接口关键字未被写入,此时调试接口对软件程序区的访问不会做任何的限制,此时软件工程师可以对软件程序通过调试接口进行调试。当软件开发完成后,向存储模块10中写入调试接口禁止关键字存储位。当软件程序发起对存储模块10的读访问时,访问控制模块11识别出此次访问是软件程序发起,同样不会对访问做出任何限制。参见图3,当Debug调试接口发起对存储模块10的读访问时,访问控制模块11识别出此次访问发起的源头是调试接口,其根据擦除标志模块12的擦除生效标志位来判断是否对访问进行禁止。如果当前访问为调试接口发起,调试接口禁止关键字存储位已经写入,且擦除标志模块12标志出存储模块10未经过片擦除时,访问控制模块11禁止本次访问。

访问源要访问存储模块10对嵌入式软件进行二次开发需要经过3次验证:第一次验证是调试接口禁止关键字存储位是否写入,这一次验证是为了判断嵌入式软件是否为第一次开发;第二次验证是访问来源验证,这一次验证是为了加快不同访问源的访问速度,若不是来自调试接口的访问,则无需经历第三次验证;第三次验证是擦除生效标志位的值是否有效,这一次验证是为了保护芯片中开发程序的安全。

本发明实施例提供的一种MCU,通过对擦除生效标志位、调试接口禁止关键字存储位和访问来源三个判断条件对MCU的调试接口进行访问控制,能有效解决现有技术中MCU的调试接口被禁止后将无法再次被开启的问题,这方便了对芯片进行嵌入式软件进行二次开发,同时又保护了芯片中数据的安全,避免应用程序被其他人通过调试接口盗取。

示例性地,所述的MCU还包括擦除模块13;所述擦除模块13与擦除标志模块12相连,包括对进行片擦除操作的逻辑电路,所述逻辑电路用于对所述存储模块10的片擦除操作。

擦除模块13对存储模块10进行片擦除操作的逻辑电路,其完成对存储模块10整个区域的片擦除操作,经过擦除的存储模块10内将不含有任何有意义的信息。

示例性地,所述擦除标志模块12用于:生成擦除标志位的值;在所述存储模块10中软件程序被片擦除后,所述擦除标志位的值设置为有效;在下载完应用程序后,所述擦除标志位的值设置为无效。

擦除标志模块12的设立是为了给所述存储模块10中存放的软件应用程序上一道安全锁。外部访问源想要通过调试接口对存储模块10进行访问时,会碰上这道安全锁。要解开这道安全锁就必须对存储模块10事先进行片擦除,而进行片擦除后的存储模块10将不含有原有嵌入式软件开发的资料,避免应用程序被其他人通过调试接口盗取。而只要解开安全锁,外部访问源可以通过对芯片进行嵌入式软件进行二次开发,因为在物理层面上调试接口一直是联通的,安全锁是一种软件上的访问控制手段。

示例性地,所述存储模块10用于存放应用程序。

存储模块10即为客户程序存放的存储区域,是一种非易失性存储器,其内部也同时含有调试接口禁止的关键字。作为MCU的软件存放仓库,调试接口对芯片进行嵌入式软件进行二次开发时,必需要调用该模块。

示例性地,所述非易失性存储器控制器与所述MCU内部总线相连;所述擦除标志模块12一端和擦除模块13相连,另一端和所述访问控制模块11一端相连;所述访问控制模块11相连另一端和存储模块10相连。

本发明一实施例提供的一种MCU调试接口控制方法,包括:

S20,判断所述调试接口禁止关键字存储位是否被写入;

S21,若所述调试接口禁止关键字存储位没被写入,允许对存储模块发起的访问;

S22,若所述调试接口禁止关键字存储位已被写入,判断对所述存储模块发起访问的来源;

S23,若对所述存储模块发起访问的来源不是调试接口,允许对所述存储模块发起的访问;

S24,若对所述存储模块发起访问的来源是所述调试接口,且擦除标志位有效,允许对所述存储模块发起的访问;所述擦除标志位有效意味着在发起访问前,对所述存储模块进行过片擦除操作。

当软件程序还在开发过程中,调试接口关键字未被写入,此时调试接口对软件程序区的访问不会做任何的限制,此时软件工程师可以对软件程序通过调试接口进行调试。当软件开发完成后,向存储模块中写入调试接口禁止关键字存储位。当软件程序发起对存储模块的读访问时,访问控制模块识别出此次访问是软件程序发起,同样不会对访问做出任何限制。当Debug调试接口发起对存储模块的读访问时,访问控制模块识别出此次访问发起的源头是调试接口,其根据擦除标志模块的擦除生效标志位来判断是否对访问进行禁止。如果当前访问为调试接口发起,调试接口禁止关键字存储位已经写入,且擦除标志模块标志出存储模块未经过片擦除时,访问控制模块禁止本次访问。

示例性地,步骤S24具体包括:

S240,在存储模块中软件程序被片擦除后,所述擦除标志位的值设置为有效;在下载完应用程序后,所述擦除标志位的值设置为无效;

S241,若对所述存储模块发起访问的来源是所述调试接口,且所述擦除标志位有效,允许对所述存储模块发起的访问。

擦除标志模块位设立是为了给所述存储模块中存放的软件应用程序上一道安全锁。外部访问源想要通过调试接口对存储模块进行访问时,会碰上这道安全锁。要解开这道安全锁就必须对存储模块事先进行片擦除,而进行片擦除后的存储模块将不含有原有嵌入式软件开发的资料,避免应用程序被其他人通过调试接口盗取。而只要解开安全锁,外部访问源可以通过对芯片进行嵌入式软件进行二次开发,因为在物理层面上调试接口一直是联通的,安全锁是一种软件上的访问控制手段。

本发明实施例提供的MCU调试接口控制方法,通过对擦除生效标志位、调试接口禁止关键字存储位和访问来源三个判断条件对MCU的调试接口进行访问控制,能有效解决现有技术中MCU的调试接口被禁止后将无法再次被开启的问题,这方便了对芯片进行嵌入式软件进行二次开发,同时又保护了芯片中数据的安全,避免应用程序被其他人通过调试接口盗取。

本发明一实施例提供的一种MCU调试接口控制装置,包括:

存储模块30、擦除模块31、擦除标志模块32和访问控制模块33,用于接入现有MCU中;

所述存储模块30用于存放应用程序;

所述擦除模块31用于对所述存储模块的片擦除操作;

所述擦除标志模块32用于:在存储模块中软件程序被片擦除后,所述擦除标志位的值设置为有效;在下载完应用程序后,所述擦除标志位的值设置为无效;

所述访问控制模块33用于:

判断所述调试接口禁止关键字存储位是否被写入;

若所述调试接口禁止关键字存储位没被写入,允许对所述存储模块30发起的访问;

若所述调试接口禁止关键字存储位已被写入,判断对所述存储模块30发起访问的来源;

若对所述存储模块30发起访问的来源不是所述调试接口,允许对所述存储模块30发起的访问;

若对所述存储模块30发起访问的来源是所述调试接口,且所述擦除标志位有效,允许对所述存储模块30发起的访问;所述擦除标志位有效意味着在发起访问前,对所述存储模块30进行过片擦除操作。

本发明实施例提供的MCU调试接口控制装置,在接入到现有的MCU中后,使得现有MCU可以通过对擦除生效标志位、调试接口禁止关键字存储位和访问来源三个判断条件对MCU的调试接口进行访问控制,能有效解决现有技术中MCU的调试接口被禁止后将无法再次被开启的问题,这方便了对芯片进行嵌入式软件进行二次开发,同时又保护了芯片中数据的安全,避免应用程序被其他人通过调试接口盗取。

本发明一实施例提供的一种计算机可读存储介质,包括存储的计算机程序,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成上述MCU调试接口控制方法。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在MCU中的执行过程。

所述MCU可以是CISC(Complex Instruction Set Computer,复杂指令集计算机)和RISC(Reduced Instruction Set Comuter,精简指令集计算机微控制器)。本领域技术人员可以理解,所述示意图仅仅是MCU的示例,并不构成对MCU的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述MCU还可以是无片内ROM型。

所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述无线通信设备的控制中心,利用各种接口和线路连接整个MCU的各个部分。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号