CN110032085A - 一种适用于专用处理器的多调试模式电路及其监测仿真方法 - Google Patents

一种适用于专用处理器的多调试模式电路及其监测仿真方法 Download PDF

Info

Publication number
CN110032085A
CN110032085A CN201910244565.7A CN201910244565A CN110032085A CN 110032085 A CN110032085 A CN 110032085A CN 201910244565 A CN201910244565 A CN 201910244565A CN 110032085 A CN110032085 A CN 110032085A
Authority
CN
China
Prior art keywords
address
data
state machine
circuit
debugging
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910244565.7A
Other languages
English (en)
Other versions
CN110032085B (zh
Inventor
程军
于鹤杰
徐祗聪
梅魁志
李倩
李亚飞
常蕃
张向楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201910244565.7A priority Critical patent/CN110032085B/zh
Publication of CN110032085A publication Critical patent/CN110032085A/zh
Application granted granted Critical
Publication of CN110032085B publication Critical patent/CN110032085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种适用于专用处理器的多调试模式电路及其监测仿真方法,设计时基于嵌套功能状态机实现,包括用于命令包解析的主状态机电路以及程序执行子状态机电路和数据反馈子状态机电路,电路结构简单,具有较好的实用拓展性。程序执行子状态机电路通过地址判断电路和状态机指令产生电路将单步执行、断点执行、完全执行和寄存器值监测四种调试功能集成在一起,解析命令包中的关键地址后,实现多种调试模式;数据反馈子状态机电路根据地址监测电路记录的存储器起止地址,提供了两种数据反馈方式,可以满足不同的仿真需求。

Description

一种适用于专用处理器的多调试模式电路及其监测仿真方法
技术领域
本发明属于嵌入式系统硬件领域,具体涉及一种适用于专用处理器的多调试模式电路及其监测仿真方法。
背景技术
现有一款专用处理器,采用了改进型的哈佛结构,包括两个独立的存储器模块FLASH和SRAM,以及独立的地址总线和数据总线。FLASH和SRAM分别存储指令和数据,处理器工作时,两条总线由程序存储器和数据存储器分时共用,由处理器的存储器片选信号和读写使能信号协同控制,利用公用地址总线访问两个存储器,而公用数据总线则被用来完成程序存储器或数据存储器与CPU之间的数据传输。
对于处理器的仿真,现有的仿真技术主要包括五种:商用CPU仿真技术、基于专有仿真特性的Bondout和HOOKS仿真技术、基于内部仿真电路的嵌入式仿真技术和基于定制开发板的ROM监测仿真技术。而该16位处理器的特点是采用了RISC精简指令集架构,内部包括主辅寄存器,没有特殊的仿真构造,且不具备嵌入仿真电路,因此只能利用基于定制开发板的ROM监测仿真技术进行仿真,但现有ROM监测仿真技术都是基于专用处理器芯片的参考原型设计,为了满足不同调试模式的需求,电路设计较为复杂,实现成本高,实用拓展性较差。
发明内容
本发明的目的在于提供一种适用于专用处理器的多调试模式电路及其监测仿真方法,以克服现有技术存在的问题,本发明电路将调试功能进行了简化集成,能够方便高效地完成对处理器的数据监测和功能仿真。
为达到上述目的,本发明采用如下技术方案:
一种适用于专用处理器的多调试模式电路,所述多调试模式电路由嵌套功能状态机实现,嵌套功能状态机包括用于命令包解析的主状态机电路以及程序执行子状态机电路和数据反馈子状态机电路;所述程序执行子状态机电路将单步执行、断点执行、完全执行和寄存器值监测四种调试功能集成在一起,用于控制处理器执行程序,包括用于控制多调试模式程序执行的地址判断电路、用于记录存储器起止地址的地址监测电路以及用于检测寄存器值的状态机指令产生电路;所述数据反馈子状态机电路用于选择返回方式,并反馈程序执行结果及监测数据;
多调试模式电路工作时,下位机连接处理器,上位机为PC端集成开发环境,上位机通过USB通信电路发送命令包至主状态机电路,主状态机电路完成解析后,启动程序执行子状态机电路控制处理器执行程序,最后通过数据反馈子状态机电路将程序执行结果及监测数据反馈至上位机。
一种适用于专用处理器的多调试模式监测仿真方法,包括以下步骤:
步骤1、上位机发送单步执行、断点执行、完全执行的调试模式命令包,主状态机电路接收命令包后进行解析,跳转进入程序执行子状态机电路;
步骤2、程序执行子状态机电路在识别命令包中关键地址后,将不区分调试模式,利用地址判断电路实时检测存储器片选信号和地址总线信号,进行指令运行地址和终止地址的比较,进而控制处理器运行调试指令程序;同时地址监测电路实时比较并记录下存储器的起止地址,确定处理器运行过程中数据变化的地址段;调试程序指令执行完成后,状态机指令产生电路启动,生成附加的通用汇编指令机器码,将寄存器值存储在指定地址中,所述通用汇编指令机器码包括数据传送指令机器码和交换指令机器码;
步骤3、数据反馈子状态机电路识别命令包中控制字节,选择全数据返回或分段数据返回的方式,根据地址监测电路记录下的存储器起止地址,将寄存器值和程序执行结果反馈回上位机。
进一步地,所述命令包通过数据再编码实现,每个命令包由四个字节组成:第一个字节为控制字节即包头,主要控制功能实现,包括程序调试模式和数据反馈方式;中间两个字节为数据字节,为三种不同调试模式下指定的指令运行结束地址;最后一个字节为校验字节即包尾,进行奇偶校验和状态指示。
进一步地,所述状态机指令产生电路基于处理器常用的汇编指令实现,用来监测处理器主辅寄存器的值,具体步骤为:
1)在地址判断电路检测到调试指令结束地址后,FLASH使能无效,开始监测寄存器的值;
2)状态机指令产生电路产生数据传送指令机器码,将主寄存器R0值存储在指定地址;
3)产生交换指令机器码,交换主寄存器R0和辅助寄存器R1的值;
4)重复产生数据传送指令机器码,将辅助寄存器R1值存储在指定地址;
5)最后产生交换指令机器码,将主寄存器R0值和辅助寄存器R1值恢复。
进一步地,所述的存储器起止地址包括四个地址:当前断点和上一断点的FLASH读指令地址BP_addr_now以及BP_addr_pre、程序运行过程中的SRAM写数据地址的最大值SRAM_addr_max和最小值SRAM_addr_min。
进一步地,所述的全数据返回或分段数据返回的方式具体为:
全数据返回:每次固定返回全部数据,由SRAM数据容量决定,反馈顺序为主寄存器R0值和辅寄存器R1值、SRAM全地址的数据、初始地址0、全返回结束标志数据包;
分段数据返回:每次只返回发生变化地址段范围内的数据,反馈顺序为主寄存器R0值和辅寄存器R1值、SRAM变化地址的数据、SRAM_addr_min、分段返回结束标志数据包。
与现有技术相比,本发明具有以下有益的技术效果:
本发明所述的适用于专用处理器的多调试模式电路基于嵌套功能状态机设计,电路结构简单,具有良好的实用性。程序执行子状态机电路利用地址判断电路和状态机指令产生电路将单步执行、断点执行、完全执行和寄存器值监测四种调试功能集成在一起,大大简化了仿真电路;数据反馈子状态机电路结合地址监测电路,提供了两种数据反馈方式,可以满足不同的仿真需求。
本发明所述的适用于专用处理器的多调试模式监测仿真方法,采用所述的适用于专用处理器的多调试模式电路实现,基于此方法设计仿真器成本低且周期短,对于专用处理器具有较好的实用拓展性。命令包的数据再编码由自定义通信协议实现,通讯模式简单且便于功能配置。监测仿真时充分利用了处理器的改进型哈佛结构的特点和通用汇编指令,通过简化的仿真电路将四种主要的调试功能集成在一起,降低了资源消耗率。针对仿真条件的多样性,适用于专用处理器的多调试模式监测仿真方法提供了两种可供选择的数据反馈方式,不但可以满足RAM容量和仿真速度的要求,而且还便于上位机对监测结果的查看和处理。
附图说明
图1为处理器的模型结构示意图;
图2为多调试模式的监测仿真电路的功能结构示意图;
图3为通讯命令包的封装组成示意图;
图4为程序执行状态机流程示意图;
图5为数据反馈状态机流程示意图。
具体实施方式
下面结合附图对本发明作进一步详细描述:
参考图1,处理器采用改进的哈佛结构,FLASH和SRAM分别存储指令和数据,地址总线和数据总线由两个存储器分时共用,控制总线(包括片选信号和读写使能信号)控制完成程序或数据存储模块与CPU之间的数据传输。在具体设计时,仿真监测电路依托FPGA平台实现,由例化RAM来代替FLASH和SRAM。
参考图2,适用于专用处理器的多调试模式电路及其监测仿真方法是基于嵌套功能状态机实现,嵌套功能状态机包括用于命令包解析的主状态机电路以及程序执行子状态机电路和数据反馈子状态机电路。多调试模式电路工作时,下位机连接处理器,上位机为PC端集成开发环境,程序执行的具体步骤为:
首先,指令下载完成后,上位机选择仿真器的调试模式,发送单步执行、断点执行、完全执行的调试命令包。主状态机电路接收命令包后进行解析,跳转进入程序执行子状态机电路;
参考图3,命令包通过再编码数据包实现,处理器的指令数据为双字节,而重定义的命令包由四个字节组成:第一个字节为控制字节即包头,主要控制功能实现,包括程序调试模式和数据反馈方式,并且数据位还有所保留可进行后续开发和补充;中间两个字节为数据字节,为三种不同调试模式下指定的指令运行结束地址;最后一个字节为校验字节即包尾,与控制字节一起,进行奇偶校验和状态指示。
其次,程序执行子状态机电路识别命令包中关键地址,将不区分调试模式,统一地实时检测存储器片选信号和地址总线信号,利用地址判断电路进行指令运行地址和终止地址的比较,控制处理器调试程序的运行状态;
最后,调试指令执行完成后,状态机指令产生电路启动,生成附加的汇编指令:数据传送指令和交换指令,将主寄存器R0和辅助寄存器R1的值存储在指定地址中,实现寄存器值监测。
多调试模式的监测仿真电路核心为程序执行子状态机电路,由地址判断电路、地址监测电路和状态机指令产生电路构成,将单步执行、断点执行、完全执行和寄存器值监测等四种功能集成在一起。参考图4,程序执行子状态机电路启动,处理器取指运行,同时地址判断电路实时进行循环比较,判断是否达到指定的指令结束地址。这样将仿真器三大调试模式:单步执行、断点执行和完全执行简化成一个控制电路,大大减轻了工程资源复杂度,这也是本发明相较现有仿真电路的主要优化点。调试程序运行结束后,状态机指令产生电路将执行监测寄存器值功能,具体步骤为:
1)检测调试指令结束地址后,FLASH使能无效,进入寄存器监测态;
2)状态机指令产生电路产生数据传送指令ST机器码,将主寄存器R0值存储在指定地址;
3)产生交换指令XCHG机器码,交换主寄存器R0和辅助寄存器R1值;
4)重复产生数据传送指令ST机器码,将辅助寄存器R1的值存储在指定地址;
5)最后产生交换指令XCHG机器码,将主寄存器R0和辅助寄存器R1值恢复。
程序执行结束后,数据反馈子状态机电路将监测结果返回给上位机软件处理,具体步骤为:
首先,程序执行子状态机电路运行过程中,地址监测电路将会实时比较并记录下存储器的起止地址,确定处理器运行过程中数据变化的地址段;
为了便于数据反馈子状态机电路运行时,返回数据段的地址选择,尤其是断点运行时起止地址的判断,程序执行子状态机电路运行时,地址监测电路将配合地址判断电路,实时比较并记录对应地址,具体包括:
BP_addr_pre:上一个断点时,指令存储的FLASH地址;
BP_addr_now:当前断点时,指令存储的FLASH地址;
SRAM_addr_min:返回SRAM数据的地址最小值;
SRAM_addr_max:返回SRAM数据的地址最大值。
地址监测电路在执行断点间的程序时,即FLASH读指令地址在BP_addr_pre和BP_addr_now之间,通过实时比较记录下SRAM写数据的地址最大值SRAM_addr_max和最小值SRAM_addr_min,由此确定处理器运行过程中变化数据的地址范围。
然后,数据反馈子状态机电路识别命令包中控制字节,选择全数据返回或分段数据返回的方式,将寄存器值和程序执行结果反馈回上位机。
参考图5,数据反馈子状态机电路将首先根据命令包,选择数据返回模式,包括全数据返回和分段数据返回两种模式。全数据返回为固定地址模式,每次固定返回全部数据,返回数据的起始地址为0,终止地址为例化SRAM的容量;而分段数据返回为浮动地址模式,每次只返回发生变化地址范围内的数据,返回数据的起始地址为SRAM变化数据的地址最小值,返回数据的终止地址为SRAM变化数据地址最大值。起止地址确定后,将依次返回主寄存器R0和辅助寄存器R1值、SRAM地址数据、起始SRAM地址(SRAM_addr_min或者初始地址0)及返回结束标志。

Claims (6)

1.一种适用于专用处理器的多调试模式电路,其特征在于,所述多调试模式电路由嵌套功能状态机实现,嵌套功能状态机包括用于命令包解析的主状态机电路以及程序执行子状态机电路和数据反馈子状态机电路;所述程序执行子状态机电路将单步执行、断点执行、完全执行和寄存器值监测四种调试功能集成在一起,用于控制处理器执行程序,包括用于控制多调试模式程序执行的地址判断电路、用于记录存储器起止地址的地址监测电路以及用于检测寄存器值的状态机指令产生电路;所述数据反馈子状态机电路用于选择返回方式,并反馈程序执行结果及监测数据;
多调试模式电路工作时,下位机连接处理器,上位机为PC端集成开发环境,上位机通过USB通信电路发送命令包至主状态机电路,主状态机电路完成解析后,启动程序执行子状态机电路控制处理器执行程序,最后通过数据反馈子状态机电路将程序执行结果及监测数据反馈至上位机。
2.一种适用于专用处理器的多调试模式监测仿真方法,采用权利要求1所述的一种适用于专用处理器的多调试模式电路,其特征在于,包括以下步骤:
步骤1、上位机发送单步执行、断点执行、完全执行的调试模式命令包,主状态机电路接收命令包后进行解析,跳转进入程序执行子状态机电路;
步骤2、程序执行子状态机电路在识别命令包中关键地址后,将不区分调试模式,利用地址判断电路实时检测存储器片选信号和地址总线信号,进行指令运行地址和终止地址的比较,进而控制处理器运行调试指令程序;同时地址监测电路实时比较并记录下存储器的起止地址,确定处理器运行过程中数据变化的地址段;调试程序指令执行完成后,状态机指令产生电路启动,生成附加的通用汇编指令机器码,将寄存器值存储在指定地址中,所述通用汇编指令机器码包括数据传送指令机器码和交换指令机器码;
步骤3、数据反馈子状态机电路识别命令包中控制字节,选择全数据返回或分段数据返回的方式,根据地址监测电路记录下的存储器起止地址,将寄存器值和程序执行结果反馈回上位机。
3.根据权利要求2所述的一种适用于专用处理器的多调试模式监测仿真方法,其特征在于,所述命令包通过数据再编码实现,每个命令包由四个字节组成:第一个字节为控制字节即包头,主要控制功能实现,包括程序调试模式和数据反馈方式;中间两个字节为数据字节,为三种不同调试模式下指定的指令运行结束地址;最后一个字节为校验字节即包尾,进行奇偶校验和状态指示。
4.根据权利要求2所述的一种适用于专用处理器的多调试模式监测仿真方法,其特征在于,所述状态机指令产生电路基于处理器常用的汇编指令实现,用来监测处理器主辅寄存器的值,具体步骤为:
1)在地址判断电路检测到调试指令结束地址后,FLASH使能无效,开始监测寄存器的值;
2)状态机指令产生电路产生数据传送指令机器码,将主寄存器R0值存储在指定地址;
3)产生交换指令机器码,交换主寄存器R0和辅助寄存器R1的值;
4)重复产生数据传送指令机器码,将辅助寄存器R1值存储在指定地址;
5)最后产生交换指令机器码,将主寄存器R0值和辅助寄存器R1值恢复。
5.根据权利要求2所述的一种适用于专用处理器的多调试模式监测仿真方法,其特征在于,所述的存储器起止地址包括四个地址:当前断点和上一断点的FLASH读指令地址BP_addr_now以及BP_addr_pre、程序运行过程中的SRAM写数据地址的最大值SRAM_addr_max和最小值SRAM_addr_min。
6.根据权利要求5所述的一种适用于专用处理器的多调试模式监测仿真方法,其特征在于,所述的全数据返回或分段数据返回的方式具体为:
全数据返回:每次固定返回全部数据,由SRAM数据容量决定,反馈顺序为主寄存器R0值和辅寄存器R1值、SRAM全地址的数据、初始地址0、全返回结束标志数据包;
分段数据返回:每次只返回发生变化地址段范围内的数据,反馈顺序为主寄存器R0值和辅寄存器R1值、SRAM变化地址的数据、SRAM_addr_min、分段返回结束标志数据包。
CN201910244565.7A 2019-03-28 2019-03-28 一种适用于专用处理器的多调试模式电路及其监测仿真方法 Active CN110032085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910244565.7A CN110032085B (zh) 2019-03-28 2019-03-28 一种适用于专用处理器的多调试模式电路及其监测仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910244565.7A CN110032085B (zh) 2019-03-28 2019-03-28 一种适用于专用处理器的多调试模式电路及其监测仿真方法

Publications (2)

Publication Number Publication Date
CN110032085A true CN110032085A (zh) 2019-07-19
CN110032085B CN110032085B (zh) 2020-10-27

Family

ID=67236799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910244565.7A Active CN110032085B (zh) 2019-03-28 2019-03-28 一种适用于专用处理器的多调试模式电路及其监测仿真方法

Country Status (1)

Country Link
CN (1) CN110032085B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363974A (zh) * 2020-09-27 2021-02-12 青岛矽昌通信技术有限公司 一种可编程状态机的控制方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2776602B2 (ja) * 1989-02-10 1998-07-16 ヒューレット・パッカード・カンパニー 試験システムおよび命令実行シーケンス判定方法
CN101154183A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器嵌入式在线仿真调试系统
CN101458652A (zh) * 2007-12-14 2009-06-17 上海海尔集成电路有限公司 微控制器嵌入式在线仿真调试系统
CN101751492A (zh) * 2008-12-16 2010-06-23 无锡华润矽科微电子有限公司 一种微控制器和该微控制器的仿真系统
CN109684147A (zh) * 2019-01-09 2019-04-26 郑州云海信息技术有限公司 一种基于i2c的risc-v控制器调试方法与装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2776602B2 (ja) * 1989-02-10 1998-07-16 ヒューレット・パッカード・カンパニー 試験システムおよび命令実行シーケンス判定方法
CN101154183A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器嵌入式在线仿真调试系统
CN101458652A (zh) * 2007-12-14 2009-06-17 上海海尔集成电路有限公司 微控制器嵌入式在线仿真调试系统
CN101751492A (zh) * 2008-12-16 2010-06-23 无锡华润矽科微电子有限公司 一种微控制器和该微控制器的仿真系统
CN109684147A (zh) * 2019-01-09 2019-04-26 郑州云海信息技术有限公司 一种基于i2c的risc-v控制器调试方法与装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
江正斌等: "ICE中调试模块IP软核的设计与实现", 《电子科技》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363974A (zh) * 2020-09-27 2021-02-12 青岛矽昌通信技术有限公司 一种可编程状态机的控制方法及系统

Also Published As

Publication number Publication date
CN110032085B (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
CN105404538B (zh) 一种fpga的加载和升级目标代码的装置及方法
CN115841089A (zh) 一种基于uvm的系统级芯片验证平台及验证方法
CN107505932B (zh) 一种基于串行通信的dsp远程调试装置及方法
CN109254883B (zh) 一种片上存储器的调试装置及方法
CN109557460B (zh) 一种基于fpga的卷积神经网络算法的测试方法及设备
CN109783340B (zh) SoC的测试代码烧写方法、IP测试方法及装置
CN105335548B (zh) 一种用于ice的mcu仿真方法
CN102955474A (zh) 一种汽车ecu的测控方法及其系统
CN103593271A (zh) 一种片上系统芯片追踪调试的方法及装置
CN114333962A (zh) 闪存芯片的测试方法、装置、系统、电子设备及存储介质
CN105654993A (zh) 用于ddr3 sdram控制器的功能验证方法及平台
CN109299530A (zh) 一种仿真测试案例生成方法、系统、存储介质和终端
CN111914501A (zh) 一种基于UVM验证方法学的FeRAM接口验证平台的实现方法
CN111752772A (zh) 存储设备仿真测试系统及方法
CN115562982A (zh) 参考模型调试方法、装置、电子设备和存储介质
CN109634256A (zh) 一种通用can控制器芯片的板级验证系统
CN102184290B (zh) 嵌入式微处理器的周期精确和位精确系统级模型构建方法
CN103793263B (zh) 一种基于PowerPC处理器的DMA事务级建模方法
CN110032085A (zh) 一种适用于专用处理器的多调试模式电路及其监测仿真方法
CN108153699A (zh) 一种ahb转axi协议转换控制器设计方法
CN113960391A (zh) 存储介质异常掉电测试装置及方法
CN106066822B (zh) 一种支持覆盖率统计功能的仿真器及方法
CN104468702B (zh) 一种通用虚拟试验实物设备接入系统
CN115221070A (zh) 基于NVMe盘的片上系统诊断方法
CN104679963A (zh) 一种基于tcl的仿真验证装置和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant